diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/BlockedPotionsListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/BlockedPotionsListener.java index af808213..1e3be110 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/BlockedPotionsListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/BlockedPotionsListener.java @@ -35,6 +35,10 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.PotionMeta; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; +import org.bukkit.potion.PotionType; + +import java.util.ArrayList; +import java.util.List; /** * Handles blocked potions. @@ -50,43 +54,50 @@ public class BlockedPotionsListener extends AbstractListener { super(plugin); } + private PotionEffectType getBlockedEffectByArrow(Arrow arrow, BukkitWorldConfiguration wcfg) { + List effects = new ArrayList<>(); + PotionType potionType = arrow.getBasePotionType(); + if (potionType != null) { + effects.addAll(potionType.getPotionEffects()); + } + effects.addAll(arrow.getCustomEffects()); + for (PotionEffect potionEffect : effects) { + if (wcfg.blockPotions.contains(potionEffect.getType())) { + return potionEffect.getType(); + } + } + return null; + } + + @EventHandler public void onProjectile(DamageEntityEvent event) { - if (event.getOriginalEvent() instanceof EntityDamageByEntityEvent) { - EntityDamageByEntityEvent originalEvent = (EntityDamageByEntityEvent) event.getOriginalEvent(); - if (Entities.isPotionArrow(originalEvent.getDamager())) { // should take care of backcompat - BukkitWorldConfiguration wcfg = getWorldConfig(event.getWorld()); - PotionEffectType blockedEffect = null; - if (originalEvent.getDamager() instanceof SpectralArrow) { - if (wcfg.blockPotions.contains(PotionEffectType.GLOWING)) { - blockedEffect = PotionEffectType.GLOWING; - } - } else if (originalEvent.getDamager() instanceof Arrow) { - Arrow tippedArrow = (Arrow) originalEvent.getDamager(); - PotionEffectType baseEffect = tippedArrow.getBasePotionData().getType().getEffectType(); - if (wcfg.blockPotions.contains(baseEffect)) { - blockedEffect = baseEffect; - } else { - for (PotionEffect potionEffect : tippedArrow.getCustomEffects()) { - if (wcfg.blockPotions.contains(potionEffect.getType())) { - blockedEffect = potionEffect.getType(); - break; - } - } - } - } - if (blockedEffect != null) { - Player player = event.getCause().getFirstPlayer(); - if (player != null) { - if (getPlugin().hasPermission(player, "worldguard.override.potions")) { - return; - } - player.sendMessage(ChatColor.RED + "Sorry, arrows with " - + blockedEffect.getName() + " are presently disabled."); - } - event.setCancelled(true); - } + if (!(event.getOriginalEvent() instanceof EntityDamageByEntityEvent originalEvent)) { + return; + } + if (!Entities.isPotionArrow(originalEvent.getDamager())) { + return; + } + + BukkitWorldConfiguration wcfg = getWorldConfig(event.getWorld()); + PotionEffectType blockedEffect = null; + if (originalEvent.getDamager() instanceof SpectralArrow) { + if (wcfg.blockPotions.contains(PotionEffectType.GLOWING)) { + blockedEffect = PotionEffectType.GLOWING; } + } else if (originalEvent.getDamager() instanceof Arrow arrow) { + blockedEffect = getBlockedEffectByArrow(arrow, wcfg); + } + if (blockedEffect != null) { + Player player = event.getCause().getFirstPlayer(); + if (player != null) { + if (getPlugin().hasPermission(player, "worldguard.override.potions")) { + return; + } + player.sendMessage(ChatColor.RED + "Sorry, arrows with " + + blockedEffect.getName() + " are presently disabled."); + } + event.setCancelled(true); } } @@ -104,25 +115,20 @@ public class BlockedPotionsListener extends AbstractListener { if (!wcfg.blockPotions.isEmpty()) { PotionEffectType blockedEffect = null; - PotionMeta meta; - if (item.getItemMeta() instanceof PotionMeta) { - meta = ((PotionMeta) item.getItemMeta()); - } else { - return; // ok...? + if (!(item.getItemMeta() instanceof PotionMeta meta)) { + return; } // Find the first blocked effect - PotionEffectType baseEffect = meta.getBasePotionData().getType().getEffectType(); - if (wcfg.blockPotions.contains(baseEffect)) { - blockedEffect = baseEffect; + List effects = new ArrayList<>(); + if (meta.getBasePotionType() != null) { + effects.addAll(meta.getBasePotionType().getPotionEffects()); } - - if (blockedEffect == null && meta.hasCustomEffects()) { - for (PotionEffect effect : meta.getCustomEffects()) { - if (wcfg.blockPotions.contains(effect.getType())) { - blockedEffect = effect.getType(); - break; - } + effects.addAll(meta.getCustomEffects()); + for (PotionEffect potionEffect : effects) { + if (wcfg.blockPotions.contains(potionEffect.getType())) { + blockedEffect = potionEffect.getType(); + break; } } diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java index f16c4b98..e39a4c3c 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java @@ -146,7 +146,6 @@ import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.PluginManager; import org.bukkit.potion.PotionEffect; -import org.bukkit.potion.PotionEffectType; import org.bukkit.projectiles.ProjectileSource; import org.bukkit.util.Vector; @@ -1087,9 +1086,9 @@ public class EventAbstractionListener extends AbstractListener { public void onLingeringApply(AreaEffectCloudApplyEvent event) { AreaEffectCloud entity = event.getEntity(); List effects = new ArrayList<>(); - PotionEffectType baseEffectType = entity.getBasePotionData().getType().getEffectType(); - if (baseEffectType != null) { - effects.add(new PotionEffect(baseEffectType, 0, 0)); + List baseEffectTypes = entity.getBasePotionType() == null ? null : entity.getBasePotionType().getPotionEffects(); + if (baseEffectTypes != null) { + effects.addAll(baseEffectTypes); } if (entity.hasCustomEffects()) { effects.addAll(entity.getCustomEffects()); @@ -1174,7 +1173,7 @@ public class EventAbstractionListener extends AbstractListener { if (item != null && item.getType() == Material.END_CRYSTAL) { /*&& placed.getType() == Material.BEDROCK) {*/ // in vanilla you can only place them on bedrock but who knows what plugins will add // may be overprotective as a result, but better than being underprotective - Events.fireToCancel(event, new SpawnEntityEvent(event, cause, placed.getLocation().add(0.5, 0, 0.5), EntityType.ENDER_CRYSTAL)); + Events.fireToCancel(event, new SpawnEntityEvent(event, cause, placed.getLocation().add(0.5, 0, 0.5), EntityType.END_CRYSTAL)); return; } diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java index 11c5631c..7b95a574 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java @@ -25,7 +25,6 @@ import com.sk89q.worldguard.WorldGuard; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.session.MoveType; import com.sk89q.worldguard.session.Session; -import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.AbstractHorse; @@ -34,14 +33,13 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityMountEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.plugin.PluginManager; import org.bukkit.util.Vector; -import org.spigotmc.event.entity.EntityMountEvent; public class PlayerMoveListener extends AbstractListener { @@ -54,9 +52,6 @@ public class PlayerMoveListener extends AbstractListener { if (WorldGuard.getInstance().getPlatform().getGlobalStateManager().usePlayerMove) { PluginManager pm = getPlugin().getServer().getPluginManager(); pm.registerEvents(this, getPlugin()); - if (PaperLib.isSpigot()) { - pm.registerEvents(new EntityMountListener(), getPlugin()); - } } } @@ -152,16 +147,14 @@ public class PlayerMoveListener extends AbstractListener { session.uninitialize(localPlayer); } - private class EntityMountListener implements Listener { - @EventHandler - public void onEntityMount(EntityMountEvent event) { - Entity entity = event.getEntity(); - if (entity instanceof Player) { - LocalPlayer player = getPlugin().wrapPlayer((Player) entity); - Session session = WorldGuard.getInstance().getPlatform().getSessionManager().get(player); - if (null != session.testMoveTo(player, BukkitAdapter.adapt(event.getMount().getLocation()), MoveType.EMBARK, true)) { - event.setCancelled(true); - } + @EventHandler + public void onEntityMount(EntityMountEvent event) { + Entity entity = event.getEntity(); + if (entity instanceof Player) { + LocalPlayer player = getPlugin().wrapPlayer((Player) entity); + Session session = WorldGuard.getInstance().getPlatform().getSessionManager().get(player); + if (null != session.testMoveTo(player, BukkitAdapter.adapt(event.getMount().getLocation()), MoveType.EMBARK, true)) { + event.setCancelled(true); } } } diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionFlagsListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionFlagsListener.java index 3cc05170..99aff23d 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionFlagsListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionFlagsListener.java @@ -69,7 +69,7 @@ public class RegionFlagsListener extends AbstractListener { } } - if (event.getCause().find(EntityType.SNOWMAN) != null) { + if (event.getCause().find(EntityType.SNOW_GOLEM) != null) { event.filter(testState(query, Flags.SNOWMAN_TRAILS), false); } @@ -100,7 +100,7 @@ public class RegionFlagsListener extends AbstractListener { event.filter(testState(query, Flags.ENDERDRAGON_BLOCK_DAMAGE), config.explosionFlagCancellation); } - if (event.getCause().find(EntityType.ENDER_CRYSTAL) != null) { // EnderCrystal + if (event.getCause().find(EntityType.END_CRYSTAL) != null) { // EnderCrystal event.filter(testState(query, Flags.OTHER_EXPLOSION), config.explosionFlagCancellation); } diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java index 5e9ed126..9ec21272 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java @@ -218,7 +218,7 @@ public class RegionProtectionListener extends AbstractListener { String what; /* TNT */ - if (event.getCause().find(EntityType.PRIMED_TNT, EntityType.MINECART_TNT) != null) { + if (event.getCause().find(EntityType.TNT, EntityType.TNT_MINECART) != null) { canBreak = query.testBuild(BukkitAdapter.adapt(target), associable, combine(event, Flags.BLOCK_BREAK, Flags.TNT)); what = "use dynamite"; diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Entities.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Entities.java index e106b659..8a89e7a7 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Entities.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Entities.java @@ -127,8 +127,8 @@ public final class Entities { */ public static boolean isMinecart(EntityType type) { return switch(type) { - case MINECART, MINECART_CHEST, MINECART_COMMAND, MINECART_FURNACE, - MINECART_HOPPER, MINECART_MOB_SPAWNER, MINECART_TNT -> true; + case MINECART, CHEST_MINECART, COMMAND_BLOCK_MINECART, FURNACE_MINECART, + HOPPER_MINECART, SPAWNER_MINECART, TNT_MINECART -> true; default -> false; }; } diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java index 49f783f8..6cdd4924 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java @@ -56,7 +56,6 @@ public final class Materials { if (tag == null) return; tag.getValues().forEach(mat -> MATERIAL_FLAGS.put(mat, value)); } - private static Tag SIGNS_TAG = Tag.SIGNS; static { ENTITY_ITEMS.put(EntityType.PAINTING, Material.PAINTING); @@ -64,22 +63,22 @@ public final class Materials { ENTITY_ITEMS.put(EntityType.SNOWBALL, Material.SNOWBALL); ENTITY_ITEMS.put(EntityType.FIREBALL, Material.FIRE_CHARGE); ENTITY_ITEMS.put(EntityType.ENDER_PEARL, Material.ENDER_PEARL); - ENTITY_ITEMS.put(EntityType.THROWN_EXP_BOTTLE, Material.EXPERIENCE_BOTTLE); + ENTITY_ITEMS.put(EntityType.EXPERIENCE_BOTTLE, Material.EXPERIENCE_BOTTLE); ENTITY_ITEMS.put(EntityType.ITEM_FRAME, Material.ITEM_FRAME); ENTITY_ITEMS.put(EntityType.GLOW_ITEM_FRAME, Material.GLOW_ITEM_FRAME); - ENTITY_ITEMS.put(EntityType.PRIMED_TNT, Material.TNT); - ENTITY_ITEMS.put(EntityType.FIREWORK, Material.FIREWORK_ROCKET); - ENTITY_ITEMS.put(EntityType.MINECART_COMMAND, Material.COMMAND_BLOCK_MINECART); + ENTITY_ITEMS.put(EntityType.TNT, Material.TNT); + ENTITY_ITEMS.put(EntityType.FIREWORK_ROCKET, Material.FIREWORK_ROCKET); + ENTITY_ITEMS.put(EntityType.COMMAND_BLOCK_MINECART, Material.COMMAND_BLOCK_MINECART); ENTITY_ITEMS.put(EntityType.BOAT, Material.OAK_BOAT); ENTITY_ITEMS.put(EntityType.MINECART, Material.MINECART); - ENTITY_ITEMS.put(EntityType.MINECART_CHEST, Material.CHEST_MINECART); - ENTITY_ITEMS.put(EntityType.MINECART_FURNACE, Material.FURNACE_MINECART); - ENTITY_ITEMS.put(EntityType.MINECART_TNT, Material.TNT_MINECART); - ENTITY_ITEMS.put(EntityType.MINECART_HOPPER, Material.HOPPER_MINECART); - ENTITY_ITEMS.put(EntityType.SPLASH_POTION, Material.POTION); + ENTITY_ITEMS.put(EntityType.CHEST_MINECART, Material.CHEST_MINECART); + ENTITY_ITEMS.put(EntityType.FURNACE_MINECART, Material.FURNACE_MINECART); + ENTITY_ITEMS.put(EntityType.TNT_MINECART, Material.TNT_MINECART); + ENTITY_ITEMS.put(EntityType.HOPPER_MINECART, Material.HOPPER_MINECART); + ENTITY_ITEMS.put(EntityType.POTION, Material.POTION); ENTITY_ITEMS.put(EntityType.EGG, Material.EGG); ENTITY_ITEMS.put(EntityType.ARMOR_STAND, Material.ARMOR_STAND); - ENTITY_ITEMS.put(EntityType.ENDER_CRYSTAL, Material.END_CRYSTAL); + ENTITY_ITEMS.put(EntityType.END_CRYSTAL, Material.END_CRYSTAL); MATERIAL_FLAGS.put(Material.AIR, 0); MATERIAL_FLAGS.put(Material.STONE, 0); @@ -642,7 +641,7 @@ public final class Materials { MATERIAL_FLAGS.put(Material.PUFFERFISH_BUCKET, 0); MATERIAL_FLAGS.put(Material.SALMON, 0); MATERIAL_FLAGS.put(Material.SALMON_BUCKET, 0); - MATERIAL_FLAGS.put(Material.SCUTE, 0); + MATERIAL_FLAGS.put(Material.TURTLE_SCUTE, 0); MATERIAL_FLAGS.put(Material.SPLASH_POTION, 0); MATERIAL_FLAGS.put(Material.TURTLE_HELMET, 0); MATERIAL_FLAGS.put(Material.TRIDENT, 0); @@ -821,31 +820,28 @@ public final class Materials { MATERIAL_FLAGS.put(Material.ECHO_SHARD, 0); MATERIAL_FLAGS.put(Material.REINFORCED_DEEPSLATE, 0); - // 1.20 - try { - SIGNS_TAG = Tag.ALL_SIGNS; + MATERIAL_FLAGS.put(Material.BAMBOO_MOSAIC, 0); + MATERIAL_FLAGS.put(Material.BAMBOO_BLOCK, 0); + MATERIAL_FLAGS.put(Material.STRIPPED_BAMBOO_BLOCK, 0); + MATERIAL_FLAGS.put(Material.SUSPICIOUS_SAND, 0); + MATERIAL_FLAGS.put(Material.SUSPICIOUS_GRAVEL, 0); + MATERIAL_FLAGS.put(Material.PITCHER_PLANT, 0); + MATERIAL_FLAGS.put(Material.CHISELED_BOOKSHELF, MODIFIED_ON_RIGHT); + MATERIAL_FLAGS.put(Material.DECORATED_POT, MODIFIED_ON_RIGHT); + MATERIAL_FLAGS.put(Material.BRUSH, 0); + MATERIAL_FLAGS.put(Material.SNIFFER_EGG, 0); + MATERIAL_FLAGS.put(Material.CALIBRATED_SCULK_SENSOR, 0); + MATERIAL_FLAGS.put(Material.PIGLIN_HEAD, 0); + MATERIAL_FLAGS.put(Material.PIGLIN_WALL_HEAD, 0); + MATERIAL_FLAGS.put(Material.TORCHFLOWER_SEEDS, 0); + MATERIAL_FLAGS.put(Material.TORCHFLOWER_CROP, 0); + MATERIAL_FLAGS.put(Material.PITCHER_CROP, 0); + MATERIAL_FLAGS.put(Material.PINK_PETALS, 0); + MATERIAL_FLAGS.put(Material.PITCHER_POD, 0); + MATERIAL_FLAGS.put(Material.NETHERITE_UPGRADE_SMITHING_TEMPLATE, 0); - MATERIAL_FLAGS.put(Material.BAMBOO_MOSAIC, 0); - MATERIAL_FLAGS.put(Material.BAMBOO_BLOCK, 0); - MATERIAL_FLAGS.put(Material.STRIPPED_BAMBOO_BLOCK, 0); - MATERIAL_FLAGS.put(Material.SUSPICIOUS_SAND, 0); - MATERIAL_FLAGS.put(Material.SUSPICIOUS_GRAVEL, 0); - MATERIAL_FLAGS.put(Material.PITCHER_PLANT, 0); - MATERIAL_FLAGS.put(Material.CHISELED_BOOKSHELF, MODIFIED_ON_RIGHT); - MATERIAL_FLAGS.put(Material.DECORATED_POT, MODIFIED_ON_RIGHT); - MATERIAL_FLAGS.put(Material.BRUSH, 0); - MATERIAL_FLAGS.put(Material.SNIFFER_EGG, 0); - MATERIAL_FLAGS.put(Material.CALIBRATED_SCULK_SENSOR, 0); - MATERIAL_FLAGS.put(Material.PIGLIN_HEAD, 0); - MATERIAL_FLAGS.put(Material.PIGLIN_WALL_HEAD, 0); - MATERIAL_FLAGS.put(Material.TORCHFLOWER_SEEDS, 0); - MATERIAL_FLAGS.put(Material.TORCHFLOWER_CROP, 0); - MATERIAL_FLAGS.put(Material.PITCHER_CROP, 0); - MATERIAL_FLAGS.put(Material.PINK_PETALS, 0); - MATERIAL_FLAGS.put(Material.PITCHER_POD, 0); - MATERIAL_FLAGS.put(Material.NETHERITE_UPGRADE_SMITHING_TEMPLATE, 0); - } catch (NoSuchFieldError ignored) { - } + MATERIAL_FLAGS.put(Material.ARMADILLO_SCUTE, 0); + MATERIAL_FLAGS.put(Material.WOLF_ARMOR, 0); // Generated via tag putMaterialTag(Tag.WOODEN_DOORS, MODIFIED_ON_RIGHT); @@ -865,7 +861,7 @@ public final class Materials { putMaterialTag(Tag.BUTTONS, MODIFIED_ON_RIGHT); putMaterialTag(Tag.FLOWER_POTS, MODIFIED_ON_RIGHT); putMaterialTag(Tag.WALLS, 0); - putMaterialTag(SIGNS_TAG, 0); + putMaterialTag(Tag.ALL_SIGNS, 0); putMaterialTag(Tag.SMALL_FLOWERS, 0); putMaterialTag(Tag.BEDS, MODIFIED_ON_RIGHT); putMaterialTag(Tag.ITEMS_MUSIC_DISCS, 0); @@ -884,12 +880,10 @@ public final class Materials { putMaterialTag(Tag.CANDLES, MODIFIED_ON_RIGHT); putMaterialTag(Tag.CANDLE_CAKES, MODIFIED_ON_RIGHT); putMaterialTag(Tag.CAULDRONS, MODIFIED_ON_RIGHT); - try { - // 1.20 - putMaterialTag(Tag.ITEMS_TRIM_TEMPLATES, 0); - putMaterialTag(Tag.ITEMS_DECORATED_POT_SHERDS, 0); - } catch (NoSuchFieldError ignored) { - } + + // 1.20 + putMaterialTag(Tag.ITEMS_TRIM_TEMPLATES, 0); + putMaterialTag(Tag.ITEMS_DECORATED_POT_SHERDS, 0); Stream.concat(Stream.concat( Tag.CORAL_BLOCKS.getValues().stream(), @@ -915,14 +909,14 @@ public final class Materials { } // DAMAGE_EFFECTS.add(PotionEffectType.SPEED); - DAMAGE_EFFECTS.add(PotionEffectType.SLOW); + DAMAGE_EFFECTS.add(PotionEffectType.SLOWNESS); // DAMAGE_EFFECTS.add(PotionEffectType.FAST_DIGGING); - DAMAGE_EFFECTS.add(PotionEffectType.SLOW_DIGGING); + DAMAGE_EFFECTS.add(PotionEffectType.MINING_FATIGUE); // DAMAGE_EFFECTS.add(PotionEffectType.INCREASE_DAMAGE); // DAMAGE_EFFECTS.add(PotionEffectType.HEAL); - DAMAGE_EFFECTS.add(PotionEffectType.HARM); + DAMAGE_EFFECTS.add(PotionEffectType.INSTANT_DAMAGE); // DAMAGE_EFFECTS.add(PotionEffectType.JUMP); - DAMAGE_EFFECTS.add(PotionEffectType.CONFUSION); + DAMAGE_EFFECTS.add(PotionEffectType.NAUSEA); // DAMAGE_EFFECTS.add(PotionEffectType.REGENERATION); // DAMAGE_EFFECTS.add(PotionEffectType.DAMAGE_RESISTANCE); // DAMAGE_EFFECTS.add(PotionEffectType.FIRE_RESISTANCE); @@ -988,13 +982,11 @@ public final class Materials { * @return the block material */ public static Material getBucketBlockMaterial(Material type) { - switch (type) { - case LAVA_BUCKET: - return Material.LAVA; - case WATER_BUCKET: - default: - return Material.WATER; - } + return switch (type) { + case LAVA_BUCKET -> Material.LAVA; + case WATER_BUCKET -> Material.WATER; + default -> Material.WATER; + }; } /** @@ -1146,6 +1138,7 @@ public final class Materials { public static EntityType getEntitySpawnEgg(Material material) { return switch (material) { case ALLAY_SPAWN_EGG -> EntityType.ALLAY; + case ARMADILLO_SPAWN_EGG -> EntityType.ARMADILLO; case AXOLOTL_SPAWN_EGG -> EntityType.AXOLOTL; case SPIDER_SPAWN_EGG -> EntityType.SPIDER; case BAT_SPAWN_EGG -> EntityType.BAT; @@ -1178,7 +1171,7 @@ public final class Materials { case IRON_GOLEM_SPAWN_EGG -> EntityType.IRON_GOLEM; case LLAMA_SPAWN_EGG -> EntityType.LLAMA; case MAGMA_CUBE_SPAWN_EGG -> EntityType.MAGMA_CUBE; - case MOOSHROOM_SPAWN_EGG -> EntityType.MUSHROOM_COW; + case MOOSHROOM_SPAWN_EGG -> EntityType.MOOSHROOM; case MULE_SPAWN_EGG -> EntityType.MULE; case OCELOT_SPAWN_EGG -> EntityType.OCELOT; case PANDA_SPAWN_EGG -> EntityType.PANDA; @@ -1199,7 +1192,7 @@ public final class Materials { case SKELETON_SPAWN_EGG -> EntityType.SKELETON; case SLIME_SPAWN_EGG -> EntityType.SLIME; case SNIFFER_SPAWN_EGG -> EntityType.SNIFFER; - case SNOW_GOLEM_SPAWN_EGG -> EntityType.SNOWMAN; + case SNOW_GOLEM_SPAWN_EGG -> EntityType.SNOW_GOLEM; case SQUID_SPAWN_EGG -> EntityType.SQUID; case STRAY_SPAWN_EGG -> EntityType.STRAY; case STRIDER_SPAWN_EGG -> EntityType.STRIDER; @@ -1457,9 +1450,9 @@ public final class Materials { case YELLOW_DYE: case GLOW_INK_SAC: case INK_SAC: - return SIGNS_TAG.isTagged(targetMaterial); + return Tag.ALL_SIGNS.isTagged(targetMaterial); case HONEYCOMB: - return isUnwaxedCopper(targetMaterial) || SIGNS_TAG.isTagged(targetMaterial); + return isUnwaxedCopper(targetMaterial) || Tag.ALL_SIGNS.isTagged(targetMaterial); case BRUSH: return switch (targetMaterial) { case SUSPICIOUS_GRAVEL, SUSPICIOUS_SAND -> true;