diff --git a/pom.xml b/pom.xml index 3d624ef..e5eb1ad 100644 --- a/pom.xml +++ b/pom.xml @@ -34,8 +34,8 @@ maven-compiler-plugin 3.13.0 - 17 - 17 + 21 + 21 @@ -96,7 +96,7 @@ io.papermc.paper paper-api - 1.19.4-R0.1-SNAPSHOT + 1.21-R0.1-SNAPSHOT provided diff --git a/src/main/java/com/kicas/rp/event/EntityEventHandler.java b/src/main/java/com/kicas/rp/event/EntityEventHandler.java index d997952..371529f 100644 --- a/src/main/java/com/kicas/rp/event/EntityEventHandler.java +++ b/src/main/java/com/kicas/rp/event/EntityEventHandler.java @@ -132,7 +132,7 @@ public void onEntityFormBlock(EntityBlockFormEvent event) { if (flags == null) return; - if ((event.getEntity().getType() == EntityType.SNOWMAN && !flags.isAllowed(RegionFlag.ANIMAL_GRIEF_BLOCKS))) + if ((event.getEntity().getType() == EntityType.SNOW_GOLEM && !flags.isAllowed(RegionFlag.ANIMAL_GRIEF_BLOCKS))) event.setCancelled(true); else if (event.getEntity().getType() == EntityType.PLAYER) { if (!flags.isAllowed(RegionFlag.ICE_CHANGE)) @@ -151,7 +151,7 @@ else if (!flags.getFlagMeta(RegionFlag.TRUST).hasTrust((Player) event */ @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onEntityExplosion(EntityExplodeEvent event) { - if (EntityType.PRIMED_TNT.equals(event.getEntityType())) { + if (EntityType.TNT.equals(event.getEntityType())) { // If the explosion occurs in a location where tnt is not allowed, cancel the event altogether FlagContainer flags = RegionProtection.getDataManager().getFlagsAt(event.getLocation()); if (flags != null && !flags.isAllowed(RegionFlag.TNT)) { diff --git a/src/main/java/com/kicas/rp/event/PlayerEventHandler.java b/src/main/java/com/kicas/rp/event/PlayerEventHandler.java index 1a9d899..3eb72f5 100644 --- a/src/main/java/com/kicas/rp/event/PlayerEventHandler.java +++ b/src/main/java/com/kicas/rp/event/PlayerEventHandler.java @@ -444,7 +444,7 @@ public void onPlayerInteractEntity(PlayerInteractEntityEvent event) { } // Handle breaking leash hitches - if (event.getRightClicked().getType() == EntityType.LEASH_HITCH) { + if (event.getRightClicked().getType() == EntityType.LEASH_KNOT) { if (flags.getFlagMeta(RegionFlag.DENY_BREAK).isBlocked(Material.LEAD)) { if (EquipmentSlot.HAND == event.getHand()) event.getPlayer().sendMessage(ChatColor.RED + "You cannot break that here."); @@ -464,7 +464,7 @@ public void onPlayerInteractEntity(PlayerInteractEntityEvent event) { Material heldItem = Materials.stackType(Materials.heldItem(event.getPlayer(), event.getHand())); if ((heldItem == Material.NAME_TAG || - (heldItem == Material.SHEARS && event.getRightClicked().getType() == EntityType.MUSHROOM_COW)) && + (heldItem == Material.SHEARS && event.getRightClicked().getType() == EntityType.MOOSHROOM)) && !flags.getFlagMeta(RegionFlag.TRUST).hasTrust(event.getPlayer(), TrustLevel.BUILD, flags)) { if (EquipmentSlot.HAND == event.getHand()) event.getPlayer().sendMessage(ChatColor.RED + "This belongs to " + flags.getOwnerName() + "."); @@ -971,7 +971,7 @@ private void onPlayerTranslocate(PlayerMoveEvent event, boolean isTeleport) { if (!allowFlight && (player.isFlying() || player.getFallDistance() > 3)) { player.addPotionEffect(new PotionEffect( - PotionEffectType.DAMAGE_RESISTANCE, + PotionEffectType.RESISTANCE, 200, 4,false, false, false )); } diff --git a/src/main/java/com/kicas/rp/util/Entities.java b/src/main/java/com/kicas/rp/util/Entities.java index 9086f6c..b9c06e3 100644 --- a/src/main/java/com/kicas/rp/util/Entities.java +++ b/src/main/java/com/kicas/rp/util/Entities.java @@ -18,16 +18,16 @@ public final class Entities { private static final List CHEST_HOLDERS = Arrays.asList(MULE, DONKEY, LLAMA); private static final List INVENTORY_HOLDERS = Arrays.asList(ARMOR_STAND, ITEM_FRAME, TRADER_LLAMA, - MINECART_CHEST, MINECART_FURNACE, MINECART_HOPPER, HORSE, SKELETON_HORSE, ZOMBIE_HORSE); - private static final List INTERACTABLES = Arrays.asList(SHEEP, COW, MUSHROOM_COW, VILLAGER, BEE, + CHEST_MINECART, FURNACE_MINECART, HOPPER_MINECART, HORSE, SKELETON_HORSE, ZOMBIE_HORSE); + private static final List INTERACTABLES = Arrays.asList(SHEEP, COW, MOOSHROOM, VILLAGER, BEE, WANDERING_TRADER, TRADER_LLAMA, TURTLE, CHICKEN, CAT, FOX, OCELOT, PANDA, PARROT, PIG, RABBIT, WOLF); private static final List HOSTILES = Arrays.asList(WITHER_SKELETON, WITHER, SILVERFISH, ENDERMAN, CAVE_SPIDER, SPIDER, VINDICATOR, WITCH, SLIME, CREEPER, BLAZE, ZOMBIE, SKELETON, EntityType.DROWNED, ELDER_GUARDIAN, ENDER_DRAGON, ENDERMITE, EVOKER, GHAST, GIANT, GUARDIAN, HUSK, ILLUSIONER, MAGMA_CUBE, PHANTOM, PILLAGER, RAVAGER, SHULKER, STRAY, VEX, ZOMBIE_VILLAGER, ZOMBIFIED_PIGLIN, ZOGLIN, HOGLIN); - private static final List AGGERABLES = Arrays.asList(POLAR_BEAR, IRON_GOLEM, PIGLIN, WOLF, SNOWMAN, BEE); + private static final List AGGERABLES = Arrays.asList(POLAR_BEAR, IRON_GOLEM, PIGLIN, WOLF, SNOW_GOLEM, BEE); private static final List PASSIVES = Arrays.asList(CAT, CHICKEN, COW, DONKEY, DOLPHIN, FOX, HORSE, - LLAMA, MUSHROOM_COW, MULE, OCELOT, PANDA, PARROT, PIG, RABBIT, SHEEP, TURTLE, + LLAMA, MOOSHROOM, MULE, OCELOT, PANDA, PARROT, PIG, RABBIT, SHEEP, TURTLE, WANDERING_TRADER, TRADER_LLAMA, VILLAGER, STRIDER); private static final List ARTIFICIAL_SPAWN_REASONS = Arrays.asList(SPAWNER, SPAWNER_EGG, BUILD_SNOWMAN, BUILD_IRONGOLEM, BUILD_WITHER, BREEDING, DISPENSE_EGG, CUSTOM, DEFAULT); diff --git a/src/main/java/com/kicas/rp/util/Materials.java b/src/main/java/com/kicas/rp/util/Materials.java index 8bbdda6..0eb191a 100644 --- a/src/main/java/com/kicas/rp/util/Materials.java +++ b/src/main/java/com/kicas/rp/util/Materials.java @@ -77,8 +77,8 @@ public static List materialsEndingWith(String with) { */ @SuppressWarnings("deprecation") public static List materialsEndingWith(String with, List except) { - return Arrays.stream(Material.values()).filter(material -> !material.isLegacy() && - material.name().endsWith(with) && !except.contains(material)).collect(Collectors.toList()); + return Arrays.stream(values()).filter(material -> !material.isLegacy() && + material.name().endsWith(with) && !except.contains(material)).collect(Collectors.toList()); } /** @@ -196,28 +196,39 @@ public static boolean hasRecipe(Material material) { * @return the material associated with the given entity, or AIR if not material is associated. */ public static Material forEntity(Entity entity) { - if (entity instanceof Boat) { - switch (((Boat) entity).getWoodType()) { - case GENERIC: - return Material.OAK_BOAT; - case REDWOOD: - return Material.SPRUCE_BOAT; - default: - return Material.valueOf(((Boat) entity).getWoodType().name() + "_BOAT"); - } + if (entity instanceof ChestBoat boat) { + return switch (boat.getBoatType()) { + case OAK -> OAK_CHEST_BOAT; + case SPRUCE -> SPRUCE_CHEST_BOAT; + case BIRCH -> BIRCH_CHEST_BOAT; + case JUNGLE -> JUNGLE_CHEST_BOAT; + case ACACIA -> ACACIA_CHEST_BOAT; + case CHERRY -> CHERRY_CHEST_BOAT; + case DARK_OAK -> DARK_OAK_CHEST_BOAT; + case MANGROVE -> MANGROVE_CHEST_BOAT; + case BAMBOO -> BAMBOO_CHEST_RAFT; + }; } - switch (entity.getType()) { - case MINECART_COMMAND: return COMMAND_BLOCK_MINECART; - case MINECART_CHEST: return CHEST_MINECART; - case MINECART_TNT: return TNT_MINECART; - case MINECART_FURNACE: return FURNACE_MINECART; - case MINECART_HOPPER: return HOPPER_MINECART; - case LEASH_HITCH: return LEAD; - default: - { - Material mat = Utils.safeValueOf(Material::valueOf, entity.getType().name()); - return mat == null ? AIR : mat; - } + else if (entity instanceof Boat boat) { + return switch (boat.getBoatType()) { + case OAK -> OAK_BOAT; + case SPRUCE -> SPRUCE_BOAT; + case BIRCH -> BIRCH_BOAT; + case JUNGLE -> JUNGLE_BOAT; + case ACACIA -> ACACIA_BOAT; + case CHERRY -> CHERRY_BOAT; + case DARK_OAK -> DARK_OAK_BOAT; + case MANGROVE -> MANGROVE_BOAT; + case BAMBOO -> BAMBOO_RAFT; + }; + } else { + return switch (entity.getType()) { + case LEASH_KNOT -> LEAD; + default -> { + Material mat = Utils.safeValueOf(Material::valueOf, entity.getType().name()); + yield mat == null ? AIR : mat; + } + }; } }