Compare commits

..

2 Commits

Author SHA1 Message Date
9de1ea8232 add world-specific variant 2024-02-10 18:52:50 +01:00
2f64af7ebb Introduce base plot count placeholder 2024-02-10 18:32:33 +01:00
5 changed files with 30 additions and 21 deletions

View File

@ -779,8 +779,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
Iterator<Entity> iterator = entities.iterator(); Iterator<Entity> iterator = entities.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
Entity entity = iterator.next(); Entity entity = iterator.next();
//noinspection ConstantValue - getEntitySpawnReason annotated as NotNull, but is not NotNull. lol. if (PaperLib.isPaper() && "CUSTOM".equals(entity.getEntitySpawnReason().name())) {
if (PaperLib.isPaper() && entity.getEntitySpawnReason() != null && "CUSTOM".equals(entity.getEntitySpawnReason().name())) {
continue; continue;
} }
// Fallback for Spigot not having Entity#getEntitySpawnReason // Fallback for Spigot not having Entity#getEntitySpawnReason

View File

@ -56,7 +56,6 @@ import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile; import org.bukkit.entity.Projectile;
import org.bukkit.entity.TNTPrimed; import org.bukkit.entity.TNTPrimed;
import org.bukkit.entity.Vehicle; import org.bukkit.entity.Vehicle;
import org.bukkit.event.Cancellable;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@ -99,25 +98,37 @@ public class EntityEventListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
public void onEntityCombustByEntity(EntityCombustByEntityEvent event) { public void onEntityCombustByEntity(EntityCombustByEntityEvent event) {
onEntityDamageByEntityCommon(event.getCombuster(), event.getEntity(), EntityDamageEvent.DamageCause.FIRE_TICK, event); EntityDamageByEntityEvent eventChange =
new EntityDamageByEntityEvent(
event.getCombuster(),
event.getEntity(),
EntityDamageEvent.DamageCause.FIRE_TICK,
event.getDuration()
);
onEntityDamageByEntityEvent(eventChange);
if (eventChange.isCancelled()) {
event.setCancelled(true);
}
} }
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent event) { public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent event) {
onEntityDamageByEntityCommon(event.getDamager(), event.getEntity(), event.getCause(), event); Entity damager = event.getDamager();
}
private void onEntityDamageByEntityCommon(
final Entity damager,
final Entity victim,
final EntityDamageEvent.DamageCause cause,
final Cancellable event
) {
Location location = BukkitUtil.adapt(damager.getLocation()); Location location = BukkitUtil.adapt(damager.getLocation());
if (!this.plotAreaManager.hasPlotArea(location.getWorldName())) { if (!this.plotAreaManager.hasPlotArea(location.getWorldName())) {
return; return;
} }
if (!BukkitEntityUtil.entityDamage(damager, victim, cause)) { Entity victim = event.getEntity();
/*
if (victim.getType().equals(EntityType.ITEM_FRAME)) {
Plot plot = BukkitUtil.getLocation(victim).getPlot();
if (plot != null && !plot.isAdded(damager.getUniqueId())) {
event.setCancelled(true);
return;
}
}
*/
if (!BukkitEntityUtil.entityDamage(damager, victim, event.getCause())) {
if (event.isCancelled()) { if (event.isCancelled()) {
if (victim instanceof Ageable ageable) { if (victim instanceof Ageable ageable) {
if (ageable.getAge() == -24000) { if (ageable.getAge() == -24000) {
@ -152,13 +163,13 @@ public class EntityEventListener implements Listener {
} }
case "REINFORCEMENTS", "NATURAL", "MOUNT", "PATROL", "RAID", "SHEARED", "SILVERFISH_BLOCK", "ENDER_PEARL", case "REINFORCEMENTS", "NATURAL", "MOUNT", "PATROL", "RAID", "SHEARED", "SILVERFISH_BLOCK", "ENDER_PEARL",
"TRAP", "VILLAGE_DEFENSE", "VILLAGE_INVASION", "BEEHIVE", "CHUNK_GEN", "NETHER_PORTAL", "TRAP", "VILLAGE_DEFENSE", "VILLAGE_INVASION", "BEEHIVE", "CHUNK_GEN", "NETHER_PORTAL",
"FROZEN", "SPELL", "DEFAULT" -> { "DUPLICATION", "FROZEN", "SPELL", "DEFAULT" -> {
if (!area.isMobSpawning()) { if (!area.isMobSpawning()) {
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
} }
case "BREEDING", "DUPLICATION" -> { case "BREEDING" -> {
if (!area.isSpawnBreeding()) { if (!area.isSpawnBreeding()) {
event.setCancelled(true); event.setCancelled(true);
return; return;

View File

@ -124,8 +124,7 @@ public class EntitySpawnListener implements Listener {
return; return;
} }
if (PaperLib.isPaper()) { if (PaperLib.isPaper()) {
//noinspection ConstantValue - getEntitySpawnReason annotated as NotNull, but is not NotNull. lol. if (area.isSpawnCustom() && "CUSTOM".equals(entity.getEntitySpawnReason().name())) {
if (area.isSpawnCustom() && entity.getEntitySpawnReason() != null && "CUSTOM".equals(entity.getEntitySpawnReason().name())) {
return; return;
} }
} }

View File

@ -1455,7 +1455,7 @@ public abstract class PlotArea implements ComponentLike {
/** /**
* Get the maximum height that changes to plot components (wall filling, air, all etc.) may operate to * Get the maximum height that changes to plot components (wall filling, air, all etc.) may operate to
* *
* @since 7.3.4 * @since TODO
*/ */
public int getMaxComponentHeight() { public int getMaxComponentHeight() {
return this.maxBuildHeight; return this.maxBuildHeight;
@ -1464,7 +1464,7 @@ public abstract class PlotArea implements ComponentLike {
/** /**
* Get the minimum height that changes to plot components (wall filling, air, all etc.) may operate to * Get the minimum height that changes to plot components (wall filling, air, all etc.) may operate to
* *
* @since 7.3.4 * @since TODO
*/ */
public int getMinComponentHeight() { public int getMinComponentHeight() {
return this.minBuildHeight; return this.minBuildHeight;

View File

@ -22,7 +22,7 @@ plugins {
} }
group = "com.intellectualsites.plotsquared" group = "com.intellectualsites.plotsquared"
version = "7.3.4" version = "7.3.4-SNAPSHOT"
if (!File("$rootDir/.git").exists()) { if (!File("$rootDir/.git").exists()) {
logger.lifecycle(""" logger.lifecycle("""