From 579019fc1eb05753b10b9aae3718095b83b073fc Mon Sep 17 00:00:00 2001 From: amy <144570677+amyavi@users.noreply.github.com> Date: Wed, 12 Aug 2026 00:49:48 -0300 Subject: [PATCH 1/2] refactor: cleanup spawner checking in EntitySpawn --- .../extras/modules/entity/EntitySpawn.java | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java b/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java index f1fa6c4..54dc701 100644 --- a/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java +++ b/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java @@ -127,6 +127,9 @@ private void limitCubeSize(final AbstractCubeMob cube) { private void limitSpawner(final CreatureSpawner spawner) { if (EntityType.SPAWNER_MINECART.equals(spawner.getSpawnedType())) { spawner.setSpawnedType(EntityType.MINECART); + } else if (spawner.getSpawnedEntity() instanceof final FallingBlock block + && block.getBlockData().getMaterial().equals(Material.SPAWNER)) { + spawner.setSpawnedType(EntityType.FALLING_BLOCK); } if (spawner.getMinSpawnDelay() < 1000) { @@ -220,20 +223,6 @@ void onPreSpawnerSpawn(final PreSpawnerSpawnEvent event) { } } - @EventHandler - void onSpawnerSpawn(final SpawnerSpawnEvent event) { - if (EntityType.FALLING_BLOCK.equals(event.getEntityType())) { - final FallingBlock block = (FallingBlock) event.getEntity(); - - if (!block.getBlockData().getMaterial().equals(Material.SPAWNER)) return; - event.setCancelled(true); - - if (event.getSpawner() != null) { - event.getSpawner().setSpawnedType(EntityType.FALLING_BLOCK); - } - } - } - @EventHandler void onTNTPrime(final TNTPrimeEvent event) { if (event.getBlock() From e619b4571299172f8bd5c9206eea5b6094e6e1f3 Mon Sep 17 00:00:00 2001 From: amy <144570677+amyavi@users.noreply.github.com> Date: Wed, 12 Aug 2026 00:59:41 -0300 Subject: [PATCH 2/2] refactor: use guard clauses in EntitySpawn --- .../extras/modules/entity/EntitySpawn.java | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java b/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java index 54dc701..254f1bd 100644 --- a/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java +++ b/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java @@ -51,27 +51,26 @@ private void applyEntityChanges(final Entity entity) { } private boolean checkShouldRemoveEntities(final World world) { - final int worldEntityCount = world.getEntities().size(); - - if (worldEntityCount > MAX_ENTITIES_PER_WORLD) { - for (Entity entity : world.getEntities()) { - if (!EntityType.PLAYER.equals(entity.getType())) { - try { - entity.remove(); - } catch (Exception ignored) { - // Broken entity - continue; - } - } + if (world.getEntityCount() <= MAX_ENTITIES_PER_CHUNK) return false; + + for (final Entity entity : world.getEntities()) { + if (EntityType.PLAYER.equals(entity.getType())) continue; + + try { + entity.remove(); + } catch (final Exception ignored) { + // Broken entity } - return true; } - return false; + + return true; } private boolean isEntityLimitReached(final EntityType entityType, final Chunk chunk, final World world) { switch (entityType) { + case PLAYER: + break; case ENDER_DRAGON: final int worldDragonCount = world.getEntitiesByClass(EnderDragon.class).size(); final int worldDragonCountLimit = 24; @@ -88,12 +87,10 @@ private boolean isEntityLimitReached(final EntityType entityType, final Chunk ch } break; default: - if (!EntityType.PLAYER.equals(entityType)) { - final int chunkEntityCount = chunk.getEntities().length; + final int chunkEntityCount = chunk.getEntities().length; - if (chunkEntityCount >= MAX_ENTITIES_PER_CHUNK) { - return true; - } + if (chunkEntityCount >= MAX_ENTITIES_PER_CHUNK) { + return true; } break; }