diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java index cb1aa63e7..88e97a047 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java @@ -124,7 +124,7 @@ public class BukkitCompatibilityManager implements CompatibilityManager { private void initSlimeWorldHook() { WorldManager worldManager = this.plugin.worldManager(); - if (VersionHelper.isVersionNewerThan1_21_4()) { + if (VersionHelper.isOrAbove1_21_4()) { try { Class.forName("com.infernalsuite.asp.api.AdvancedSlimePaperAPI"); SlimeFormatStorageAdaptor adaptor = new SlimeFormatStorageAdaptor(worldManager); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java index 50a73ee79..6b4dcd633 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java @@ -51,7 +51,7 @@ public class BlockEventListener implements Listener { @EventHandler(ignoreCancelled = true) public void onPlayerAttack(EntityDamageByEntityEvent event) { - if (!VersionHelper.isVersionNewerThan1_20_5()) { + if (!VersionHelper.isOrAbove1_20_5()) { if (event.getDamager() instanceof Player player) { BukkitServerPlayer serverPlayer = plugin.adapt(player); serverPlayer.setClientSideCanBreakBlock(true); @@ -306,7 +306,7 @@ public class BlockEventListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onEntityExplode(EntityExplodeEvent event) { - if (VersionHelper.isVersionNewerThan1_21()) { + if (VersionHelper.isOrAbove1_21()) { if (!ExplosionUtils.isDroppingItems(event)) return; } handleExplodeEvent(event.blockList(), new BukkitWorld(event.getEntity().getWorld()), event.getYield()); @@ -314,7 +314,7 @@ public class BlockEventListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onBlockExplode(BlockExplodeEvent event) { - if (VersionHelper.isVersionNewerThan1_21()) { + if (VersionHelper.isOrAbove1_21()) { if (!ExplosionUtils.isDroppingItems(event)) return; } handleExplodeEvent(event.blockList(), new BukkitWorld(event.getBlock().getWorld()), event.getYield()); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitBlockManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitBlockManager.java index 31c1b8006..807b57514 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitBlockManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitBlockManager.java @@ -107,7 +107,7 @@ public class BukkitBlockManager extends AbstractBlockManager { if (enableNoteBlocks) { this.recordVanillaNoteBlocks(); } - if (VersionHelper.isVersionNewerThan1_20_3()) { + if (VersionHelper.isOrAbove1_20_3()) { this.fallingBlockRemoveListener = new FallingBlockRemoveListener(); } else this.fallingBlockRemoveListener = null; this.stateId2ImmutableBlockStates = new ImmutableBlockState[customBlockCount]; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitCustomBlock.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitCustomBlock.java index 154a947b2..2bb530a75 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitCustomBlock.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitCustomBlock.java @@ -107,7 +107,7 @@ public class BukkitCustomBlock extends CustomBlock { Reflections.method$BlockStateBase$initCache.invoke(mcBlockState); // set block light if (settings.blockLight() != -1) { - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { Reflections.field$BlockStateBase$lightBlock.set(mcBlockState, settings.blockLight()); } else { Object cache = Reflections.field$BlockStateBase$cache.get(mcBlockState); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BushBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BushBlockBehavior.java index 9f626c36e..b19b7bdbf 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BushBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BushBlockBehavior.java @@ -56,7 +56,7 @@ public class BushBlockBehavior extends BukkitBlockBehavior { Object level; Object blockPos; Object state = args[0]; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { level = args[1]; blockPos = args[3]; } else { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ConcretePowderBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ConcretePowderBlockBehavior.java index 99ec57099..6f8cd8f8b 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ConcretePowderBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ConcretePowderBlockBehavior.java @@ -99,7 +99,7 @@ public class ConcretePowderBlockBehavior extends FallingBlockBehavior { public Object updateShape(Object thisBlock, Object[] args, Callable superMethod) throws Exception { Object level; Object pos; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { level = args[1]; pos = args[3]; } else { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java index 8b2813ea9..07874400a 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java @@ -42,7 +42,7 @@ public class FallingBlockBehavior extends BukkitBlockBehavior { public Object updateShape(Object thisBlock, Object[] args, Callable superMethod) throws Exception { Object world; Object blockPos; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { world = args[1]; blockPos = args[3]; } else { @@ -81,7 +81,7 @@ public class FallingBlockBehavior extends BukkitBlockBehavior { @Override public void onBrokenAfterFall(Object thisBlock, Object[] args) throws Exception { // Use EntityRemoveEvent for 1.20.3+ - if (VersionHelper.isVersionNewerThan1_20_3()) return; + if (VersionHelper.isOrAbove1_20_3()) return; Object level = args[0]; Object fallingBlockEntity = args[2]; boolean cancelDrop = (boolean) Reflections.field$FallingBlockEntity$cancelDrop.get(fallingBlockEntity); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LeavesBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LeavesBlockBehavior.java index 5c4ec7e41..9982700fa 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LeavesBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LeavesBlockBehavior.java @@ -66,7 +66,7 @@ public class LeavesBlockBehavior extends WaterLoggedBlockBehavior { Object blockPos; Object neighborState; Object blockState = args[0]; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { world = args[1]; neighborState = args[6]; blockPos = args[3]; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SugarCaneBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SugarCaneBlockBehavior.java index 051a0f296..4a504d371 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SugarCaneBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SugarCaneBlockBehavior.java @@ -79,7 +79,7 @@ public class SugarCaneBlockBehavior extends BushBlockBehavior { public Object updateShape(Object thisBlock, Object[] args, Callable superMethod) throws Exception { Object world; Object blockPos; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { world = args[1]; blockPos = args[3]; } else { @@ -120,7 +120,7 @@ public class SugarCaneBlockBehavior extends BushBlockBehavior { int age = currentState.get(ageProperty); if (age >= this.ageProperty.max || RandomUtils.generateRandomFloat(0, 1) < this.growSpeed) { Object abovePos = LocationUtils.above(blockPos); - if (VersionHelper.isVersionNewerThan1_21_5()) { + if (VersionHelper.isOrAbove1_21_5()) { Reflections.method$CraftEventFactory$handleBlockGrowEvent.invoke(null, level, abovePos, super.customBlock.defaultState().customBlockState().handle(), UpdateOption.UPDATE_ALL.flags()); } else { Reflections.method$CraftEventFactory$handleBlockGrowEvent.invoke(null, level, abovePos, super.customBlock.defaultState().customBlockState().handle()); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/DisplayEntityData.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/DisplayEntityData.java index c206727cb..ec2f06cf3 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/DisplayEntityData.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/DisplayEntityData.java @@ -38,6 +38,6 @@ public class DisplayEntityData extends BaseEntityData { } public DisplayEntityData(int id, Object serializer, T defaultValue) { - super(!VersionHelper.isVersionNewerThan1_20_2() && id >= 11 ? id - 1 : id, serializer, defaultValue); + super(!VersionHelper.isOrAbove1_20_2() && id >= 11 ? id - 1 : id, serializer, defaultValue); } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/EntityDataValue.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/EntityDataValue.java index bb4c0c782..e747c74c0 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/EntityDataValue.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/EntityDataValue.java @@ -60,15 +60,15 @@ public class EntityDataValue { Serializers$OPTIONAL_BLOCK_STATE = initSerializersByName("OPTIONAL_BLOCK_STATE"); Serializers$BOOLEAN = initSerializersByName("BOOLEAN"); Serializers$PARTICLE = initSerializersByName("PARTICLE"); - if (VersionHelper.isVersionNewerThan1_20_5()) Serializers$PARTICLES = initSerializersByName("PARTICLES"); + if (VersionHelper.isOrAbove1_20_5()) Serializers$PARTICLES = initSerializersByName("PARTICLES"); else Serializers$PARTICLES = null; Serializers$ROTATIONS = initSerializersByName("ROTATIONS"); Serializers$BLOCK_POS = initSerializersByName("BLOCK_POS"); Serializers$OPTIONAL_BLOCK_POS = initSerializersByName("OPTIONAL_BLOCK_POS"); Serializers$DIRECTION = initSerializersByName("DIRECTION"); - if (!VersionHelper.isVersionNewerThan1_21_5()) Serializers$OPTIONAL_UUID = initSerializersByName("OPTIONAL_UUID"); + if (!VersionHelper.isOrAbove1_21_5()) Serializers$OPTIONAL_UUID = initSerializersByName("OPTIONAL_UUID"); else Serializers$OPTIONAL_UUID = null; - if (VersionHelper.isVersionNewerThan1_21_5()) Serializers$OPTIONAL_LIVING_ENTITY_REFERENCE = initSerializersByName("OPTIONAL_LIVING_ENTITY_REFERENCE"); + if (VersionHelper.isOrAbove1_21_5()) Serializers$OPTIONAL_LIVING_ENTITY_REFERENCE = initSerializersByName("OPTIONAL_LIVING_ENTITY_REFERENCE"); else Serializers$OPTIONAL_LIVING_ENTITY_REFERENCE = null; Serializers$OPTIONAL_GLOBAL_POS = initSerializersByName("OPTIONAL_GLOBAL_POS"); Serializers$COMPOUND_TAG = initSerializersByName("COMPOUND_TAG"); @@ -76,11 +76,11 @@ public class EntityDataValue { Serializers$OPTIONAL_UNSIGNED_INT = initSerializersByName("OPTIONAL_UNSIGNED_INT"); Serializers$POSE = initSerializersByName("POSE"); Serializers$CAT_VARIANT = initSerializersByName("CAT_VARIANT"); - if (VersionHelper.isVersionNewerThan1_20_5()) Serializers$WOLF_VARIANT = initSerializersByName("WOLF_VARIANT"); + if (VersionHelper.isOrAbove1_20_5()) Serializers$WOLF_VARIANT = initSerializersByName("WOLF_VARIANT"); else Serializers$WOLF_VARIANT = null; Serializers$FROG_VARIANT = initSerializersByName("FROG_VARIANT"); Serializers$PAINTING_VARIANT = initSerializersByName("PAINTING_VARIANT"); - if (VersionHelper.isVersionNewerThan1_20_5()) Serializers$ARMADILLO_STATE = initSerializersByName("ARMADILLO_STATE"); + if (VersionHelper.isOrAbove1_20_5()) Serializers$ARMADILLO_STATE = initSerializersByName("ARMADILLO_STATE"); else Serializers$ARMADILLO_STATE = null; Serializers$SNIFFER_STATE = initSerializersByName("SNIFFER_STATE"); Serializers$VECTOR3 = initSerializersByName("VECTOR3"); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/InteractionEntityData.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/InteractionEntityData.java index 9819e3550..250f58909 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/InteractionEntityData.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/InteractionEntityData.java @@ -13,6 +13,6 @@ public class InteractionEntityData extends BaseEntityData { } public InteractionEntityData(int id, Object serializer, T defaultValue) { - super(!VersionHelper.isVersionNewerThan1_20_2() && id >= 11 ? id - 1 : id, serializer, defaultValue); + super(!VersionHelper.isOrAbove1_20_2() && id >= 11 ? id - 1 : id, serializer, defaultValue); } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java index 7b1359d3d..29ee90605 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java @@ -58,7 +58,7 @@ public class BukkitFurnitureManager extends AbstractFurnitureManager { this.plugin = plugin; this.furnitureParser = new FurnitureParser(); this.furnitureEventListener = new FurnitureEventListener(this); - this.dismountListener = VersionHelper.isVersionNewerThan1_20_3() ? new DismountListener1_20_3(this) : new DismountListener1_20(this::handleDismount); + this.dismountListener = VersionHelper.isOrAbove1_20_3() ? new DismountListener1_20_3(this) : new DismountListener1_20(this::handleDismount); } @Override @@ -292,7 +292,7 @@ public class BukkitFurnitureManager extends AbstractFurnitureManager { if (previous != null) return; Location location = display.getLocation(); - boolean above1_20_1 = VersionHelper.isVersionNewerThan1_20_2(); + boolean above1_20_1 = VersionHelper.isOrAbove1_20_2(); boolean preventChange = FastNMS.INSTANCE.isPreventingStatusUpdates(location.getWorld(), location.getBlockX() >> 4, location.getBlockZ() >> 4); if (above1_20_1) { if (!preventChange) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/LoadedFurniture.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/LoadedFurniture.java index 264fa2b6e..40505ab8d 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/LoadedFurniture.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/LoadedFurniture.java @@ -297,9 +297,9 @@ public class LoadedFurniture implements Furniture { public void spawnSeatEntityForPlayer(org.bukkit.entity.Player player, Seat seat) { Location location = this.calculateSeatLocation(seat); Entity seatEntity = seat.limitPlayerRotation() ? - EntityUtils.spawnEntity(player.getWorld(), VersionHelper.isVersionNewerThan1_20_2() ? location.subtract(0,0.9875,0) : location.subtract(0,0.990625,0), EntityType.ARMOR_STAND, entity -> { + EntityUtils.spawnEntity(player.getWorld(), VersionHelper.isOrAbove1_20_2() ? location.subtract(0,0.9875,0) : location.subtract(0,0.990625,0), EntityType.ARMOR_STAND, entity -> { ArmorStand armorStand = (ArmorStand) entity; - if (VersionHelper.isVersionNewerThan1_21_3()) { + if (VersionHelper.isOrAbove1_21_3()) { Objects.requireNonNull(armorStand.getAttribute(Attribute.MAX_HEALTH)).setBaseValue(0.01); } else { LegacyAttributeUtils.setMaxHealth(armorStand); @@ -316,7 +316,7 @@ public class LoadedFurniture implements Furniture { armorStand.getPersistentDataContainer().set(BukkitFurnitureManager.FURNITURE_SEAT_BASE_ENTITY_KEY, PersistentDataType.INTEGER, this.baseEntityId()); armorStand.getPersistentDataContainer().set(BukkitFurnitureManager.FURNITURE_SEAT_VECTOR_3F_KEY, PersistentDataType.STRING, seat.offset().x + ", " + seat.offset().y + ", " + seat.offset().z); }) : - EntityUtils.spawnEntity(player.getWorld(), VersionHelper.isVersionNewerThan1_20_2() ? location : location.subtract(0,0.25,0), EntityType.ITEM_DISPLAY, entity -> { + EntityUtils.spawnEntity(player.getWorld(), VersionHelper.isOrAbove1_20_2() ? location : location.subtract(0,0.25,0), EntityType.ITEM_DISPLAY, entity -> { ItemDisplay itemDisplay = (ItemDisplay) entity; itemDisplay.setPersistent(false); itemDisplay.getPersistentDataContainer().set(BukkitFurnitureManager.FURNITURE_SEAT_BASE_ENTITY_KEY, PersistentDataType.INTEGER, this.baseEntityId()); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/CustomHitBox.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/CustomHitBox.java index 08126740d..9b00dc4fc 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/CustomHitBox.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/CustomHitBox.java @@ -57,7 +57,7 @@ public class CustomHitBox extends AbstractHitBox { FastNMS.INSTANCE.toNMSEntityType(this.entityType), 0, Reflections.instance$Vec3$Zero, 0 ), true); packets.accept(FastNMS.INSTANCE.constructor$ClientboundSetEntityDataPacket(entityId[0], List.copyOf(this.cachedValues)), true); - if (VersionHelper.isVersionNewerThan1_20_5() && this.scale != 1) { + if (VersionHelper.isOrAbove1_20_5() && this.scale != 1) { Object attributeInstance = Reflections.constructor$AttributeInstance.newInstance(Reflections.instance$Holder$Attribute$scale, (Consumer) (o) -> {}); Reflections.method$AttributeInstance$setBaseValue.invoke(attributeInstance, this.scale); packets.accept(Reflections.constructor$ClientboundUpdateAttributesPacket0.newInstance(entityId[0], Collections.singletonList(attributeInstance)), false); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerHitBox.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerHitBox.java index 130a9bd36..0dd717463 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerHitBox.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerHitBox.java @@ -223,7 +223,7 @@ public class ShulkerHitBox extends AbstractHitBox { ), false); } // set shulker scale - if (VersionHelper.isVersionNewerThan1_20_5() && this.scale != 1) { + if (VersionHelper.isOrAbove1_20_5() && this.scale != 1) { Object attributeInstance = Reflections.constructor$AttributeInstance.newInstance(Reflections.instance$Holder$Attribute$scale, (Consumer) (o) -> {}); Reflections.method$AttributeInstance$setBaseValue.invoke(attributeInstance, this.scale); packets.accept(Reflections.constructor$ClientboundUpdateAttributesPacket0.newInstance(entityIds[1], Collections.singletonList(attributeInstance)), false); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/font/BukkitFontManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/font/BukkitFontManager.java index 3e70bd381..c0b332ec6 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/font/BukkitFontManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/font/BukkitFontManager.java @@ -131,14 +131,14 @@ public class BukkitFontManager extends AbstractFontManager implements Listener { if (result == null) return; Player player; try { - player = (Player) Reflections.method$InventoryView$getPlayer.invoke(VersionHelper.isVersionNewerThan1_21() ? event.getView() : LegacyInventoryUtils.getView(event)); + player = (Player) Reflections.method$InventoryView$getPlayer.invoke(VersionHelper.isOrAbove1_21() ? event.getView() : LegacyInventoryUtils.getView(event)); } catch (ReflectiveOperationException e) { this.plugin.logger().warn("Failed to get inventory viewer", e); return; } String renameText; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { AnvilView anvilView = event.getView(); renameText = anvilView.getRenameText(); } else { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/BukkitItemManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/BukkitItemManager.java index cb2a68e39..01ccba6fe 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/BukkitItemManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/BukkitItemManager.java @@ -277,7 +277,7 @@ public class BukkitItemManager extends AbstractItemManager { itemBuilder.dataModifier(new CustomModelDataModifier<>(customModelData)); } // Requires the item to have model before apply item-model - else if (!hasItemModelSection && section.containsKey("model") && VersionHelper.isVersionNewerThan1_21_2()) { + else if (!hasItemModelSection && section.containsKey("model") && VersionHelper.isOrAbove1_21_2()) { // check server version here because components require 1.21.2+ // customize or use the id itemModelKey = Key.from(section.getOrDefault("item-model", id.toString()).toString()); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/ComponentTypes.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/ComponentTypes.java index 30bb289e1..904cac448 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/ComponentTypes.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/ComponentTypes.java @@ -29,7 +29,7 @@ public class ComponentTypes { private ComponentTypes() {} private static Object getComponentType(Key key) { - if (!VersionHelper.isVersionNewerThan1_20_5()) return null; + if (!VersionHelper.isOrAbove1_20_5()) return null; return FastNMS.INSTANCE.getComponentType(key.namespace(), key.value()); } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/AxeItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/AxeItemBehavior.java index 5b85ac0fc..47b466610 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/AxeItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/AxeItemBehavior.java @@ -96,7 +96,7 @@ public class AxeItemBehavior extends ItemBehavior { player.swingHand(context.getHand()); } // shrink item amount - if (VersionHelper.isVersionNewerThan1_20_5()) { + if (VersionHelper.isOrAbove1_20_5()) { Object itemStack = item.getLiteralObject(); Object serverPlayer = player.serverPlayer(); Object equipmentSlot = context.getHand() == InteractionHand.MAIN_HAND ? Reflections.instance$EquipmentSlot$MAINHAND : Reflections.instance$EquipmentSlot$OFFHAND; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/BukkitRecipeManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/BukkitRecipeManager.java index 562f795a2..55eca0cda 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/BukkitRecipeManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/BukkitRecipeManager.java @@ -123,10 +123,10 @@ public class BukkitRecipeManager extends AbstractRecipeManager { MIXED_RECIPE_CONVERTORS.put(RecipeTypes.SMITHING_TRANSFORM, (BukkitRecipeConvertor>) (id, recipe) -> { try { Object nmsRecipe = createMinecraftSmithingTransformRecipe(recipe); - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { nmsRecipe = Reflections.constructor$RecipeHolder.newInstance( Reflections.method$CraftRecipe$toMinecraft.invoke(null, new NamespacedKey(id.namespace(), id.value())), nmsRecipe); - } else if (VersionHelper.isVersionNewerThan1_20_2()) { + } else if (VersionHelper.isOrAbove1_20_2()) { nmsRecipe = Reflections.constructor$RecipeHolder.newInstance(KeyUtils.toResourceLocation(id), nmsRecipe); } else { return () -> {}; @@ -255,7 +255,7 @@ public class BukkitRecipeManager extends AbstractRecipeManager { instance = this; this.plugin = plugin; this.recipeEventListener = new RecipeEventListener(plugin, this, plugin.itemManager()); - this.crafterEventListener = VersionHelper.isVersionNewerThan1_21() ? new CrafterEventListener(plugin, this, plugin.itemManager()) : null; + this.crafterEventListener = VersionHelper.isOrAbove1_21() ? new CrafterEventListener(plugin, this, plugin.itemManager()) : null; try { nmsRecipeManager = Reflections.method$MinecraftServer$getRecipeManager.invoke(Reflections.method$MinecraftServer$getServer.invoke(null)); } catch (ReflectiveOperationException e) { @@ -286,7 +286,7 @@ public class BukkitRecipeManager extends AbstractRecipeManager { @Override public void load() { if (!Config.enableRecipeSystem()) return; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { try { this.stolenFeatureFlagSet = Reflections.field$RecipeManager$featureflagset.get(nmsRecipeManager); Reflections.field$RecipeManager$featureflagset.set(nmsRecipeManager, null); @@ -301,7 +301,7 @@ public class BukkitRecipeManager extends AbstractRecipeManager { if (!Config.enableRecipeSystem()) return; super.unload(); try { - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { Reflections.method$RecipeManager$finalizeRecipeLoading.invoke(nmsRecipeManager); } } catch (ReflectiveOperationException e) { @@ -349,7 +349,7 @@ public class BukkitRecipeManager extends AbstractRecipeManager { private void unregisterNMSRecipe(NamespacedKey key) { try { - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { Object recipeMap = Reflections.field$RecipeManager$recipes.get(nmsRecipeManager); Reflections.method$RecipeMap$removeRecipe.invoke(recipeMap, Reflections.method$CraftRecipe$toMinecraft.invoke(null, key)); } else { @@ -363,7 +363,7 @@ public class BukkitRecipeManager extends AbstractRecipeManager { @SuppressWarnings("unchecked") private void injectDataPackRecipes() { try { - Object fileToIdConverter = Reflections.method$FileToIdConverter$json.invoke(null, VersionHelper.isVersionNewerThan1_21() ? "recipe" : "recipes"); + Object fileToIdConverter = Reflections.method$FileToIdConverter$json.invoke(null, VersionHelper.isOrAbove1_21() ? "recipe" : "recipes"); Object minecraftServer = Reflections.method$MinecraftServer$getServer.invoke(null); Object packRepository = Reflections.method$MinecraftServer$getPackRepository.invoke(minecraftServer); List selected = (List) Reflections.field$PackRepository$selected.get(packRepository); @@ -446,13 +446,13 @@ public class BukkitRecipeManager extends AbstractRecipeManager { this.delayedTasksOnMainThread.clear(); // give flags back on 1.21.2+ - if (VersionHelper.isVersionNewerThan1_21_2() && this.stolenFeatureFlagSet != null) { + if (VersionHelper.isOrAbove1_21_2() && this.stolenFeatureFlagSet != null) { Reflections.field$RecipeManager$featureflagset.set(nmsRecipeManager(), this.stolenFeatureFlagSet); this.stolenFeatureFlagSet = null; } // refresh recipes - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { Reflections.method$RecipeManager$finalizeRecipeLoading.invoke(nmsRecipeManager()); } @@ -460,11 +460,11 @@ public class BukkitRecipeManager extends AbstractRecipeManager { Reflections.method$DedicatedPlayerList$reloadRecipes.invoke(Reflections.field$CraftServer$playerList.get(Bukkit.getServer())); // now we need to remove the fake `exact` - if (VersionHelper.isVersionNewerThan1_21_4()) { + if (VersionHelper.isOrAbove1_21_4()) { for (Object ingredient : injectedIngredients) { Reflections.field$Ingredient$itemStacks1_21_4.set(ingredient, null); } - } else if (VersionHelper.isVersionNewerThan1_21_2()) { + } else if (VersionHelper.isOrAbove1_21_2()) { for (Object ingredient : injectedIngredients) { Reflections.field$Ingredient$itemStacks1_21_2.set(ingredient, null); } @@ -711,11 +711,11 @@ public class BukkitRecipeManager extends AbstractRecipeManager { Object shapedRecipe = getNMSRecipe(id); recipeToMcRecipeHolder.put(recipe, shapedRecipe); - if (VersionHelper.isVersionNewerThan1_20_2()) { + if (VersionHelper.isOrAbove1_20_2()) { shapedRecipe = Reflections.field$RecipeHolder$recipe.get(shapedRecipe); } - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { Reflections.field$ShapedRecipe$placementInfo.set(shapedRecipe, null); } @@ -732,11 +732,11 @@ public class BukkitRecipeManager extends AbstractRecipeManager { Object shapelessRecipe = getNMSRecipe(id); recipeToMcRecipeHolder.put(recipe, shapelessRecipe); - if (VersionHelper.isVersionNewerThan1_20_2()) { + if (VersionHelper.isOrAbove1_20_2()) { shapelessRecipe = Reflections.field$RecipeHolder$recipe.get(shapelessRecipe); } - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { Reflections.field$ShapelessRecipe$placementInfo.set(shapelessRecipe, null); } @SuppressWarnings("unchecked") @@ -752,12 +752,12 @@ public class BukkitRecipeManager extends AbstractRecipeManager { Ingredient actualIngredient = recipe.ingredient(); Object smeltingRecipe = getNMSRecipe(id); recipeToMcRecipeHolder.put(recipe, smeltingRecipe); - if (VersionHelper.isVersionNewerThan1_20_2()) { + if (VersionHelper.isOrAbove1_20_2()) { smeltingRecipe = Reflections.field$RecipeHolder$recipe.get(smeltingRecipe); } Object ingredient; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { ingredient = Reflections.field$SingleItemRecipe$input.get(smeltingRecipe); } else { ingredient = Reflections.field$AbstractCookingRecipe$input.get(smeltingRecipe); @@ -771,7 +771,7 @@ public class BukkitRecipeManager extends AbstractRecipeManager { // 获取nms配方,请注意1.20.1获取配方本身,而1.20.2+获取的是配方的holder // recipe on 1.20.1 and holder on 1.20.2+ private static Object getNMSRecipe(Key id) throws ReflectiveOperationException { - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { Object resourceKey = Reflections.method$CraftRecipe$toMinecraft.invoke(null, new NamespacedKey(id.namespace(), id.value())); @SuppressWarnings("unchecked") Optional optional = (Optional) Reflections.method$RecipeManager$byKey.invoke(nmsRecipeManager, resourceKey); @@ -800,9 +800,9 @@ public class BukkitRecipeManager extends AbstractRecipeManager { Object ingredient = fakeIngredients.get(i); Ingredient actualIngredient = actualIngredients.get(i); List items = getIngredientLooks(actualIngredient.items()); - if (VersionHelper.isVersionNewerThan1_21_4()) { + if (VersionHelper.isOrAbove1_21_4()) { Reflections.field$Ingredient$itemStacks1_21_4.set(ingredient, new HashSet<>(items)); - } else if (VersionHelper.isVersionNewerThan1_21_2()) { + } else if (VersionHelper.isOrAbove1_21_2()) { Reflections.field$Ingredient$itemStacks1_21_2.set(ingredient, items); } else { Object itemStackArray = Array.newInstance(Reflections.clazz$ItemStack, items.size()); @@ -845,21 +845,21 @@ public class BukkitRecipeManager extends AbstractRecipeManager { // create nms smithing recipe for different versions private static Object createMinecraftSmithingTransformRecipe(CustomSmithingTransformRecipe recipe) throws ReflectiveOperationException { - if (VersionHelper.isVersionNewerThan1_21_5()) { + if (VersionHelper.isOrAbove1_21_5()) { return Reflections.constructor$SmithingTransformRecipe.newInstance( toOptionalMinecraftIngredient(recipe.template()), toMinecraftIngredient(recipe.base()), toOptionalMinecraftIngredient(recipe.addition()), toTransmuteResult(recipe.result(ItemBuildContext.EMPTY)) ); - } else if (VersionHelper.isVersionNewerThan1_21_2()) { + } else if (VersionHelper.isOrAbove1_21_2()) { return Reflections.constructor$SmithingTransformRecipe.newInstance( toOptionalMinecraftIngredient(recipe.template()), toOptionalMinecraftIngredient(recipe.base()), toOptionalMinecraftIngredient(recipe.addition()), FastNMS.INSTANCE.method$CraftItemStack$asNMSCopy(recipe.result(ItemBuildContext.EMPTY)) ); - } else if (VersionHelper.isVersionNewerThan1_20_2()) { + } else if (VersionHelper.isOrAbove1_20_2()) { return Reflections.constructor$SmithingTransformRecipe.newInstance( toMinecraftIngredient(recipe.template()), toMinecraftIngredient(recipe.base()), diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java index 937eefbdb..7bc3042f3 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java @@ -279,7 +279,7 @@ public class RecipeEventListener implements Listener { @EventHandler(ignoreCancelled = true) public void onBlockIgnite(BlockIgniteEvent event) { if (!Config.enableRecipeSystem()) return; - if (VersionHelper.isVersionNewerThan1_21_2()) return; + if (VersionHelper.isOrAbove1_21_2()) return; Block block = event.getBlock(); Material material = block.getType(); if (material == Material.CAMPFIRE) { @@ -308,7 +308,7 @@ public class RecipeEventListener implements Listener { plugin.logger().warn("Failed to inject cooking block entity", e); } } - } else if (!VersionHelper.isVersionNewerThan1_21_2() && material == Material.CAMPFIRE) { + } else if (!VersionHelper.isOrAbove1_21_2() && material == Material.CAMPFIRE) { if (block.getState() instanceof Campfire campfire) { try { Object blockEntity = Reflections.field$CraftBlockEntityState$tileEntity.get(campfire); @@ -324,13 +324,13 @@ public class RecipeEventListener implements Listener { @EventHandler(ignoreCancelled = true) public void onPutItemOnCampfire(PlayerInteractEvent event) { if (!Config.enableRecipeSystem()) return; - if (!VersionHelper.isVersionNewerThan1_21_2()) return; + if (!VersionHelper.isOrAbove1_21_2()) return; if (event.getAction() != Action.RIGHT_CLICK_BLOCK) return; Block clicked = event.getClickedBlock(); if (clicked == null) return; Material type = clicked.getType(); if (type != Material.CAMPFIRE && type != Material.SOUL_CAMPFIRE) return; - if (!VersionHelper.isVersionNewerThan1_21_2()) { + if (!VersionHelper.isOrAbove1_21_2()) { if (clicked.getState() instanceof Campfire campfire) { try { Object blockEntity = Reflections.field$CraftBlockEntityState$tileEntity.get(campfire); @@ -375,7 +375,7 @@ public class RecipeEventListener implements Listener { @EventHandler(ignoreCancelled = true) public void onCampfireCook(CampfireStartEvent event) { if (!Config.enableRecipeSystem()) return; - if (!VersionHelper.isVersionNewerThan1_21_2()) return; + if (!VersionHelper.isOrAbove1_21_2()) return; CampfireRecipe recipe = event.getRecipe(); Key recipeId = new Key(recipe.getKey().namespace(), recipe.getKey().value()); @@ -406,7 +406,7 @@ public class RecipeEventListener implements Listener { @EventHandler(ignoreCancelled = true) public void onCampfireCook(BlockCookEvent event) { if (!Config.enableRecipeSystem()) return; - if (!VersionHelper.isVersionNewerThan1_21_2()) return; + if (!VersionHelper.isOrAbove1_21_2()) return; Material type = event.getBlock().getType(); if (type != Material.CAMPFIRE && type != Material.SOUL_CAMPFIRE) return; CampfireRecipe recipe = (CampfireRecipe) event.getRecipe(); @@ -563,7 +563,7 @@ public class RecipeEventListener implements Listener { String renameText; int maxRepairCost; //int previousCost; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { AnvilView anvilView = event.getView(); renameText = anvilView.getRenameText(); maxRepairCost = anvilView.getMaximumRepairCost(); @@ -588,10 +588,10 @@ public class RecipeEventListener implements Listener { } catch (ReflectiveOperationException e) { plugin.logger().warn("Failed to get hover name", e); } - } else if (VersionHelper.isVersionNewerThan1_20_5() && wrappedFirst.hasComponent(ComponentTypes.CUSTOM_NAME)) { + } else if (VersionHelper.isOrAbove1_20_5() && wrappedFirst.hasComponent(ComponentTypes.CUSTOM_NAME)) { repairCost += 1; wrappedFirst.customName(null); - } else if (!VersionHelper.isVersionNewerThan1_20_5() && wrappedFirst.hasTag("display", "Name")) { + } else if (!VersionHelper.isOrAbove1_20_5() && wrappedFirst.hasTag("display", "Name")) { repairCost += 1; wrappedFirst.customName(null); } @@ -601,7 +601,7 @@ public class RecipeEventListener implements Listener { // To fix some client side visual issues try { Object anvilMenu; - if (VersionHelper.isVersionNewerThan1_21()) { + if (VersionHelper.isOrAbove1_21()) { anvilMenu = Reflections.field$CraftInventoryView$container.get(event.getView()); } else { anvilMenu = Reflections.field$CraftInventoryAnvil$menu.get(inventory); @@ -611,7 +611,7 @@ public class RecipeEventListener implements Listener { this.plugin.logger().warn("Failed to broadcast changes", e); } - if (VersionHelper.isVersionNewerThan1_21()) { + if (VersionHelper.isOrAbove1_21()) { AnvilView anvilView = event.getView(); anvilView.setRepairCost(finalCost); anvilView.setRepairItemCountCost(actualConsumedAmount); @@ -622,7 +622,7 @@ public class RecipeEventListener implements Listener { Player player; try { - player = (Player) Reflections.method$InventoryView$getPlayer.invoke(VersionHelper.isVersionNewerThan1_21() ? event.getView() : LegacyInventoryUtils.getView(event)); + player = (Player) Reflections.method$InventoryView$getPlayer.invoke(VersionHelper.isOrAbove1_21() ? event.getView() : LegacyInventoryUtils.getView(event)); } catch (ReflectiveOperationException e) { plugin.logger().warn("Failed to get inventory viewer", e); return; @@ -659,7 +659,7 @@ public class RecipeEventListener implements Listener { wrappedFirst.getCustomItem().ifPresent(item -> { if (!item.settings().renameable()) { String renameText; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { AnvilView anvilView = event.getView(); renameText = anvilView.getRenameText(); } else { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/loot/BukkitVanillaLootManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/loot/BukkitVanillaLootManager.java index 6a36cca25..ef2800849 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/loot/BukkitVanillaLootManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/loot/BukkitVanillaLootManager.java @@ -72,7 +72,7 @@ public class BukkitVanillaLootManager extends AbstractVanillaLootManager impleme ContextHolder.Builder builder = ContextHolder.builder(); builder.withParameter(LootParameters.WORLD, world); builder.withParameter(LootParameters.LOCATION, vec3d); - if (VersionHelper.isVersionNewerThan1_20_5()) { + if (VersionHelper.isOrAbove1_20_5()) { if (event.getDamageSource().getCausingEntity() instanceof Player player) { BukkitServerPlayer serverPlayer = this.plugin.adapt(player); builder.withParameter(LootParameters.PLAYER, serverPlayer); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/pack/BukkitPackManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/pack/BukkitPackManager.java index 955264883..918953dee 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/pack/BukkitPackManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/pack/BukkitPackManager.java @@ -48,7 +48,7 @@ public class BukkitPackManager extends AbstractPackManager implements Listener { @EventHandler(priority = EventPriority.LOW) public void onPlayerJoin(PlayerJoinEvent event) { - if (Config.sendPackOnJoin() && !VersionHelper.isVersionNewerThan1_20_2()) { + if (Config.sendPackOnJoin() && !VersionHelper.isOrAbove1_20_2()) { Player player = plugin.adapt(event.getPlayer()); this.sendResourcePack(player); } @@ -58,7 +58,7 @@ public class BukkitPackManager extends AbstractPackManager implements Listener { public void load() { if (ReloadCommand.RELOAD_PACK_FLAG || CraftEngine.instance().isInitializing()) { super.load(); - if (Config.sendPackOnJoin() && VersionHelper.isVersionNewerThan1_20_2() && !(resourcePackHost() instanceof NoneHost)) { + if (Config.sendPackOnJoin() && VersionHelper.isOrAbove1_20_2() && !(resourcePackHost() instanceof NoneHost)) { this.modifyServerSettings(); } } @@ -69,7 +69,7 @@ public class BukkitPackManager extends AbstractPackManager implements Listener { Object settings = Reflections.field$DedicatedServer$settings.get(Reflections.method$MinecraftServer$getServer.invoke(null)); Object properties = Reflections.field$DedicatedServerSettings$properties.get(settings); Object info; - if (VersionHelper.isVersionNewerThan1_20_3()) { + if (VersionHelper.isOrAbove1_20_3()) { info = Reflections.constructor$ServerResourcePackInfo.newInstance(new UUID(0, 0), FAKE_URL, "", Config.kickOnDeclined(), ComponentUtils.adventureToMinecraft(Config.resourcePackPrompt())); } else { info = Reflections.constructor$ServerResourcePackInfo.newInstance(FAKE_URL, "", Config.kickOnDeclined(), ComponentUtils.adventureToMinecraft(Config.resourcePackPrompt())); @@ -84,7 +84,7 @@ public class BukkitPackManager extends AbstractPackManager implements Listener { public void unload() { super.unload(); if (ReloadCommand.RELOAD_PACK_FLAG) { - if (VersionHelper.isVersionNewerThan1_20_2()) { + if (VersionHelper.isOrAbove1_20_2()) { this.resetServerSettings(); } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/gui/BukkitGuiManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/gui/BukkitGuiManager.java index 8358b965b..2b6d78874 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/gui/BukkitGuiManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/gui/BukkitGuiManager.java @@ -43,7 +43,7 @@ public class BukkitGuiManager implements GuiManager, Listener { if (VersionHelper.isFolia()) { for (Player player : Bukkit.getOnlinePlayers()) { this.plugin.scheduler().sync().run(() -> { - org.bukkit.inventory.Inventory top = !VersionHelper.isVersionNewerThan1_21() ? LegacyInventoryUtils.getTopInventory(player) : player.getOpenInventory().getTopInventory(); + org.bukkit.inventory.Inventory top = !VersionHelper.isOrAbove1_21() ? LegacyInventoryUtils.getTopInventory(player) : player.getOpenInventory().getTopInventory(); if (top.getHolder() instanceof CraftEngineInventoryHolder holder) { holder.gui().onTimer(); } @@ -51,7 +51,7 @@ public class BukkitGuiManager implements GuiManager, Listener { } } else { for (Player player : Bukkit.getOnlinePlayers()) { - org.bukkit.inventory.Inventory top = !VersionHelper.isVersionNewerThan1_21() ? LegacyInventoryUtils.getTopInventory(player) : player.getOpenInventory().getTopInventory(); + org.bukkit.inventory.Inventory top = !VersionHelper.isOrAbove1_21() ? LegacyInventoryUtils.getTopInventory(player) : player.getOpenInventory().getTopInventory(); if (top.getHolder() instanceof CraftEngineInventoryHolder holder) { holder.gui().onTimer(); } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BukkitInjector.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BukkitInjector.java index 56c6b9734..157345804 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BukkitInjector.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BukkitInjector.java @@ -318,11 +318,11 @@ public class BukkitInjector { .intercept(FieldAccessor.ofField("lastCustomRecipe")) .method(ElementMatchers.named("getRecipeFor").or(ElementMatchers.named("a"))) .intercept(MethodDelegation.to( - VersionHelper.isVersionNewerThan1_21_2() ? + VersionHelper.isOrAbove1_21_2() ? GetRecipeForMethodInterceptor1_21_2.INSTANCE : - (VersionHelper.isVersionNewerThan1_21() ? + (VersionHelper.isOrAbove1_21() ? GetRecipeForMethodInterceptor1_21.INSTANCE : - VersionHelper.isVersionNewerThan1_20_5() ? + VersionHelper.isOrAbove1_20_5() ? GetRecipeForMethodInterceptor1_20_5.INSTANCE : GetRecipeForMethodInterceptor1_20.INSTANCE) )) @@ -346,7 +346,7 @@ public class BukkitInjector { InjectedCacheCheck injectedChecker = (InjectedCacheCheck) Reflections.UNSAFE.allocateInstance(clazz$InjectedCacheChecker); injectedChecker.recipeType(recipeType); Reflections.field$AbstractFurnaceBlockEntity$quickCheck.set(entity, injectedChecker); - } else if (!VersionHelper.isVersionNewerThan1_21_2() && Reflections.clazz$CampfireBlockEntity.isInstance(entity)) { + } else if (!VersionHelper.isOrAbove1_21_2() && Reflections.clazz$CampfireBlockEntity.isInstance(entity)) { Object quickCheck = Reflections.field$CampfireBlockEntity$quickCheck.get(entity); if (clazz$InjectedCacheChecker.isInstance(quickCheck)) return; // already injected InjectedCacheCheck injectedChecker = (InjectedCacheCheck) Reflections.UNSAFE.allocateInstance(clazz$InjectedCacheChecker); @@ -749,7 +749,7 @@ public class BukkitInjector { Object direction; Object serverLevel; Object blockPos; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { direction = args[4]; serverLevel = args[1]; blockPos = args[3]; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java index 3cc7ccda7..7eb2bc5e4 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java @@ -121,7 +121,7 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes } private PacketIds setupPacketIds() { - if (VersionHelper.isVersionNewerThan1_20_5()) { + if (VersionHelper.isOrAbove1_20_5()) { return new PacketIds1_20_5(); } else { return new PacketIds1_20(); @@ -154,18 +154,18 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes registerByteBufPacketConsumer(PacketConsumers.LEVEL_CHUNK_WITH_LIGHT, this.packetIds.clientboundLevelChunkWithLightPacket()); registerByteBufPacketConsumer(PacketConsumers.SECTION_BLOCK_UPDATE, this.packetIds.clientboundSectionBlocksUpdatePacket()); registerByteBufPacketConsumer(PacketConsumers.BLOCK_UPDATE, this.packetIds.clientboundBlockUpdatePacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_21_3() ? PacketConsumers.LEVEL_PARTICLE_1_21_3 : (VersionHelper.isVersionNewerThan1_20_5() ? PacketConsumers.LEVEL_PARTICLE_1_20_5 : PacketConsumers.LEVEL_PARTICLE_1_20), this.packetIds.clientboundLevelParticlesPacket()); + registerByteBufPacketConsumer(VersionHelper.isOrAbove1_21_3() ? PacketConsumers.LEVEL_PARTICLE_1_21_3 : (VersionHelper.isOrAbove1_20_5() ? PacketConsumers.LEVEL_PARTICLE_1_20_5 : PacketConsumers.LEVEL_PARTICLE_1_20), this.packetIds.clientboundLevelParticlesPacket()); registerByteBufPacketConsumer(PacketConsumers.LEVEL_EVENT, this.packetIds.clientboundLevelEventPacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.OPEN_SCREEN_1_20_3 : PacketConsumers.OPEN_SCREEN_1_20, this.packetIds.clientboundOpenScreenPacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.SET_TITLE_TEXT_1_20_3 : PacketConsumers.SET_TITLE_TEXT_1_20, this.packetIds.clientboundSetTitleTextPacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.SET_SUBTITLE_TEXT_1_20_3 : PacketConsumers.SET_SUBTITLE_TEXT_1_20, this.packetIds.clientboundSetSubtitleTextPacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.SET_ACTIONBAR_TEXT_1_20_3 : PacketConsumers.SET_ACTIONBAR_TEXT_1_20, this.packetIds.clientboundSetActionBarTextPacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.BOSS_EVENT_1_20_3 : PacketConsumers.BOSS_EVENT_1_20, this.packetIds.clientboundBossEventPacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.SYSTEM_CHAT_1_20_3 : PacketConsumers.SYSTEM_CHAT_1_20, this.packetIds.clientboundSystemChatPacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.TAB_LIST_1_20_3 : PacketConsumers.TAB_LIST_1_20, this.packetIds.clientboundTabListPacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.TEAM_1_20_3 : PacketConsumers.TEAM_1_20, this.packetIds.clientboundSetPlayerTeamPacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.SET_OBJECTIVE_1_20_3 : PacketConsumers.SET_OBJECTIVE_1_20, this.packetIds.clientboundSetObjectivePacket()); - registerByteBufPacketConsumer(PacketConsumers.SET_SCORE_1_20_3, VersionHelper.isVersionNewerThan1_20_3() ? this.packetIds.clientboundSetScorePacket() : -1); + registerByteBufPacketConsumer(VersionHelper.isOrAbove1_20_3() ? PacketConsumers.OPEN_SCREEN_1_20_3 : PacketConsumers.OPEN_SCREEN_1_20, this.packetIds.clientboundOpenScreenPacket()); + registerByteBufPacketConsumer(VersionHelper.isOrAbove1_20_3() ? PacketConsumers.SET_TITLE_TEXT_1_20_3 : PacketConsumers.SET_TITLE_TEXT_1_20, this.packetIds.clientboundSetTitleTextPacket()); + registerByteBufPacketConsumer(VersionHelper.isOrAbove1_20_3() ? PacketConsumers.SET_SUBTITLE_TEXT_1_20_3 : PacketConsumers.SET_SUBTITLE_TEXT_1_20, this.packetIds.clientboundSetSubtitleTextPacket()); + registerByteBufPacketConsumer(VersionHelper.isOrAbove1_20_3() ? PacketConsumers.SET_ACTIONBAR_TEXT_1_20_3 : PacketConsumers.SET_ACTIONBAR_TEXT_1_20, this.packetIds.clientboundSetActionBarTextPacket()); + registerByteBufPacketConsumer(VersionHelper.isOrAbove1_20_3() ? PacketConsumers.BOSS_EVENT_1_20_3 : PacketConsumers.BOSS_EVENT_1_20, this.packetIds.clientboundBossEventPacket()); + registerByteBufPacketConsumer(VersionHelper.isOrAbove1_20_3() ? PacketConsumers.SYSTEM_CHAT_1_20_3 : PacketConsumers.SYSTEM_CHAT_1_20, this.packetIds.clientboundSystemChatPacket()); + registerByteBufPacketConsumer(VersionHelper.isOrAbove1_20_3() ? PacketConsumers.TAB_LIST_1_20_3 : PacketConsumers.TAB_LIST_1_20, this.packetIds.clientboundTabListPacket()); + registerByteBufPacketConsumer(VersionHelper.isOrAbove1_20_3() ? PacketConsumers.TEAM_1_20_3 : PacketConsumers.TEAM_1_20, this.packetIds.clientboundSetPlayerTeamPacket()); + registerByteBufPacketConsumer(VersionHelper.isOrAbove1_20_3() ? PacketConsumers.SET_OBJECTIVE_1_20_3 : PacketConsumers.SET_OBJECTIVE_1_20, this.packetIds.clientboundSetObjectivePacket()); + registerByteBufPacketConsumer(PacketConsumers.SET_SCORE_1_20_3, VersionHelper.isOrAbove1_20_3() ? this.packetIds.clientboundSetScorePacket() : -1); registerByteBufPacketConsumer(PacketConsumers.REMOVE_ENTITY, this.packetIds.clientboundRemoveEntitiesPacket()); registerByteBufPacketConsumer(PacketConsumers.ADD_ENTITY_BYTEBUFFER, this.packetIds.clientboundAddEntityPacket()); registerByteBufPacketConsumer(PacketConsumers.SOUND, this.packetIds.clientboundSoundPacket()); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java index afd444347..13eab66b8 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java @@ -43,7 +43,6 @@ import net.momirealms.craftengine.core.world.chunk.PalettedContainer; import net.momirealms.craftengine.core.world.chunk.packet.BlockEntityData; import net.momirealms.craftengine.core.world.chunk.packet.MCSection; import net.momirealms.craftengine.core.world.collision.AABB; -import net.momirealms.sparrow.nbt.NBT; import net.momirealms.sparrow.nbt.Tag; import org.bukkit.*; import org.bukkit.block.Block; @@ -98,16 +97,15 @@ public class PacketConsumers { try { BukkitServerPlayer player = (BukkitServerPlayer) user; FriendlyByteBuf buf = event.getBuffer(); - // 这里是正片 int chunkX = buf.readInt(); int chunkZ = buf.readInt(); - - boolean named = !VersionHelper.isVersionNewerThan1_20_2(); + boolean named = !VersionHelper.isOrAbove1_20_2(); // ClientboundLevelChunkPacketData int heightmapsCount = 0; - Map heightmapsMap = new HashMap<>(); + Map heightmapsMap = null; Tag heightmaps = null; - if (VersionHelper.isVersionNewerThan1_21_5()) { + if (VersionHelper.isOrAbove1_21_5()) { + heightmapsMap = new HashMap<>(); heightmapsCount = buf.readVarInt(); for (int i = 0; i < heightmapsCount; i++) { int key = buf.readVarInt(); @@ -198,8 +196,9 @@ public class PacketConsumers { buf.writeVarInt(event.packetID()); buf.writeInt(chunkX); buf.writeInt(chunkZ); - if (VersionHelper.isVersionNewerThan1_21_5()) { + if (VersionHelper.isOrAbove1_21_5()) { buf.writeVarInt(heightmapsCount); + assert heightmapsMap != null; for (Map.Entry entry : heightmapsMap.entrySet()) { buf.writeVarInt(entry.getKey()); buf.writeLongArray(entry.getValue()); @@ -1239,7 +1238,7 @@ public class PacketConsumers { BukkitServerPlayer player = (BukkitServerPlayer) user; String name = (String) Reflections.field$ServerboundHelloPacket$name.get(packet); player.setName(name); - if (VersionHelper.isVersionNewerThan1_20_2()) { + if (VersionHelper.isOrAbove1_20_2()) { UUID uuid = (UUID) Reflections.field$ServerboundHelloPacket$uuid.get(packet); player.setUUID(uuid); } else { @@ -1287,7 +1286,7 @@ public class PacketConsumers { BukkitServerPlayer player = (BukkitServerPlayer) user; player.clearView(); Object dimensionKey; - if (!VersionHelper.isVersionNewerThan1_20_2()) { + if (!VersionHelper.isOrAbove1_20_2()) { dimensionKey = Reflections.field$ClientboundRespawnPacket$dimension.get(packet); } else { Object commonInfo = Reflections.field$ClientboundRespawnPacket$commonPlayerSpawnInfo.get(packet); @@ -1312,7 +1311,7 @@ public class PacketConsumers { BukkitServerPlayer player = (BukkitServerPlayer) user; player.setConnectionState(ConnectionState.PLAY); Object dimensionKey; - if (!VersionHelper.isVersionNewerThan1_20_2()) { + if (!VersionHelper.isOrAbove1_20_2()) { if (BukkitNetworkManager.hasViaVersion()) { user.setProtocolVersion(CraftEngine.instance().compatibilityManager().getPlayerProtocolVersion(player.uuid())); } @@ -1340,7 +1339,7 @@ public class PacketConsumers { // When the hotbar is full, the latest creative mode inventory can only be accessed when the player opens the inventory screen. Currently, it is not worth further handling this issue. public static final TriConsumer SET_CREATIVE_SLOT = (user, event, packet) -> { try { - if (VersionHelper.isVersionNewerThan1_21_4()) return; + if (VersionHelper.isOrAbove1_21_4()) return; if (!user.isOnline()) return; BukkitServerPlayer player = (BukkitServerPlayer) user; if (VersionHelper.isFolia()) { @@ -1363,7 +1362,7 @@ public class PacketConsumers { Player bukkitPlayer = player.platformPlayer(); if (bukkitPlayer == null) return; if (bukkitPlayer.getGameMode() != GameMode.CREATIVE) return; - int slot = VersionHelper.isVersionNewerThan1_20_5() ? Reflections.field$ServerboundSetCreativeModeSlotPacket$slotNum.getShort(packet) : Reflections.field$ServerboundSetCreativeModeSlotPacket$slotNum.getInt(packet); + int slot = VersionHelper.isOrAbove1_20_5() ? Reflections.field$ServerboundSetCreativeModeSlotPacket$slotNum.getShort(packet) : Reflections.field$ServerboundSetCreativeModeSlotPacket$slotNum.getInt(packet); if (slot < 36 || slot > 44) return; ItemStack item = FastNMS.INSTANCE.method$CraftItemStack$asCraftMirror(Reflections.field$ServerboundSetCreativeModeSlotPacket$itemStack.get(packet)); if (ItemUtils.isEmpty(item)) return; @@ -1935,7 +1934,7 @@ public class PacketConsumers { public static final TriConsumer CUSTOM_PAYLOAD = (user, event, packet) -> { try { - if (!VersionHelper.isVersionNewerThan1_20_5()) return; + if (!VersionHelper.isOrAbove1_20_5()) return; Object payload = Reflections.field$ServerboundCustomPayloadPacket$payload.get(packet); if (payload.getClass().equals(Reflections.clazz$DiscardedPayload)) { Object type = Reflections.method$CustomPacketPayload$type.invoke(payload); @@ -2217,7 +2216,7 @@ public class PacketConsumers { public static final TriConsumer RESOURCE_PACK_PUSH = (user, event, packet) -> { try { - if (!VersionHelper.isVersionNewerThan1_20_2()) return; + if (!VersionHelper.isOrAbove1_20_2()) return; // we should only handle fake urls String url = FastNMS.INSTANCE.field$ClientboundResourcePackPushPacket$url(packet); if (!url.equals(BukkitPackManager.FAKE_URL)) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/id/PacketIdFinder.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/id/PacketIdFinder.java index 489ea5d01..fc5594bfe 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/id/PacketIdFinder.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/id/PacketIdFinder.java @@ -15,7 +15,7 @@ public class PacketIdFinder { static { try { - if (VersionHelper.isVersionNewerThan1_21()) { + if (VersionHelper.isOrAbove1_21()) { Object packetReport = Reflections.constructor$PacketReport.newInstance((Object) null); JsonElement jsonElement = (JsonElement) Reflections.method$PacketReport$serializePackets.invoke(packetReport); var play = jsonElement.getAsJsonObject().get("play"); @@ -26,7 +26,7 @@ public class PacketIdFinder { ids.put(entry2.getKey(), entry2.getValue().getAsJsonObject().get("protocol_id").getAsInt()); } } - } else if (VersionHelper.isVersionNewerThan1_20_5()) { + } else if (VersionHelper.isOrAbove1_20_5()) { gamePacketIdsByName.putAll(FastNMS.INSTANCE.method$getGamePacketIdsByName()); } else { gamePacketIdsByClazz.putAll(FastNMS.INSTANCE.method$getGamePacketIdsByClazz()); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java index 48a7d88e7..13341b5b2 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java @@ -415,7 +415,7 @@ public class BukkitServerPlayer extends Player { } this.clientSideCanBreak = canBreak; if (canBreak) { - if (VersionHelper.isVersionNewerThan1_20_5()) { + if (VersionHelper.isOrAbove1_20_5()) { Object serverPlayer = serverPlayer(); Object attributeInstance = Reflections.method$ServerPlayer$getAttribute.invoke(serverPlayer, Reflections.instance$Holder$Attribute$block_break_speed); Object newPacket = Reflections.constructor$ClientboundUpdateAttributesPacket0.newInstance(entityID(), Lists.newArrayList(attributeInstance)); @@ -425,8 +425,8 @@ public class BukkitServerPlayer extends Player { resetEffect(Reflections.instance$MobEffecr$haste); } } else { - if (VersionHelper.isVersionNewerThan1_20_5()) { - Object attributeModifier = VersionHelper.isVersionNewerThan1_21() ? + if (VersionHelper.isOrAbove1_20_5()) { + Object attributeModifier = VersionHelper.isOrAbove1_21() ? Reflections.constructor$AttributeModifier.newInstance(KeyUtils.toResourceLocation("craftengine", "custom_hardness"), -9999d, Reflections.instance$AttributeModifier$Operation$ADD_VALUE) : Reflections.constructor$AttributeModifier.newInstance(UUID.randomUUID(), "craftengine:custom_hardness", -9999d, Reflections.instance$AttributeModifier$Operation$ADD_VALUE); Object attributeSnapshot = Reflections.constructor$ClientboundUpdateAttributesPacket$AttributeSnapshot.newInstance(Reflections.instance$Holder$Attribute$block_break_speed, 1d, Lists.newArrayList(attributeModifier)); @@ -520,7 +520,7 @@ public class BukkitServerPlayer extends Player { // creative mode + invalid item in hand if (canInstabuild() && (itemMaterial == Material.DEBUG_STICK || itemMaterial == Material.TRIDENT - || (VersionHelper.isVersionNewerThan1_20_5() && itemMaterial == MaterialUtils.MACE) + || (VersionHelper.isOrAbove1_20_5() && itemMaterial == MaterialUtils.MACE) || item.is(ItemTags.SWORDS))) { return; } @@ -757,7 +757,7 @@ public class BukkitServerPlayer extends Player { @Override public void addResourcePackUUID(UUID uuid) { - if (VersionHelper.isVersionNewerThan1_20_3()) { + if (VersionHelper.isOrAbove1_20_3()) { this.resourcePackUUID.add(uuid); } } @@ -790,7 +790,7 @@ public class BukkitServerPlayer extends Player { @Override public void unloadCurrentResourcePack() { - if (!VersionHelper.isVersionNewerThan1_20_3()) { + if (!VersionHelper.isOrAbove1_20_3()) { return; } if (decoderState() == ConnectionState.PLAY && !this.resourcePackUUID.isEmpty()) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/sound/BukkitSoundManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/sound/BukkitSoundManager.java index 1f9203366..bfab4bb0f 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/sound/BukkitSoundManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/sound/BukkitSoundManager.java @@ -33,7 +33,7 @@ public class BukkitSoundManager extends AbstractSoundManager { Object soundId = KeyUtils.toResourceLocation(jukeboxSong.sound()); Object song = Reflections.method$Registry$get.invoke(Reflections.instance$InternalRegistries$JUKEBOX_SONG, resourceLocation); - Object soundEvent = VersionHelper.isVersionNewerThan1_21_2() ? + Object soundEvent = VersionHelper.isOrAbove1_21_2() ? Reflections.constructor$SoundEvent.newInstance(soundId, Optional.of(jukeboxSong.range())) : Reflections.constructor$SoundEvent.newInstance(soundId, jukeboxSong.range(), false); Object soundHolder = Reflections.method$Holder$direct.invoke(null, soundEvent); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/EntityDataUtils.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/EntityDataUtils.java index 93b3b88c0..8c70d577f 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/EntityDataUtils.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/EntityDataUtils.java @@ -11,8 +11,8 @@ public class EntityDataUtils { private static final int USE_DEFAULT_BACKGROUND = 0x04; // 4 private static final int LEFT_ALIGNMENT = 0x08; // 8 private static final int RIGHT_ALIGNMENT = 0x10; // 16 - public static final int BLOCK_STATE_DATA_ID = VersionHelper.isVersionNewerThan1_20_2() ? 23 : 22; - public static final int TEXT_DATA_ID = VersionHelper.isVersionNewerThan1_20_2() ? 23 : 22; + public static final int BLOCK_STATE_DATA_ID = VersionHelper.isOrAbove1_20_2() ? 23 : 22; + public static final int TEXT_DATA_ID = VersionHelper.isOrAbove1_20_2() ? 23 : 22; public static final int CUSTOM_NAME_DATA_ID = 2; public static byte encodeTextDisplayMask(boolean hasShadow, boolean isSeeThrough, boolean useDefaultBackground, int alignment) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/EntityUtils.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/EntityUtils.java index 89f66906d..88e52d4b8 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/EntityUtils.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/EntityUtils.java @@ -27,7 +27,7 @@ public class EntityUtils { } public static Entity spawnEntity(World world, Location loc, EntityType type, Consumer function) { - if (VersionHelper.isVersionNewerThan1_20_2()) { + if (VersionHelper.isOrAbove1_20_2()) { return world.spawnEntity(loc, type, CreatureSpawnEvent.SpawnReason.CUSTOM, function); } else { return LegacyEntityUtils.spawnEntity(world, loc, type, function); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/RecipeUtils.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/RecipeUtils.java index dfff3fd0a..4c59ea3b3 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/RecipeUtils.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/RecipeUtils.java @@ -15,9 +15,9 @@ public class RecipeUtils { public static List getIngredientsFromShapedRecipe(Object recipe) { List ingredients = new ArrayList<>(); try { - if (VersionHelper.isVersionNewerThan1_20_3()) { + if (VersionHelper.isOrAbove1_20_3()) { Object pattern = Reflections.field$1_20_3$ShapedRecipe$pattern.get(recipe); - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { List> optionals = (List>) Reflections.field$ShapedRecipePattern$ingredients1_21_2.get(pattern); for (Optional optional : optionals) { optional.ifPresent(ingredients::add); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java index cc81efc7c..ef8cb7229 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java @@ -341,7 +341,7 @@ public class Reflections { ); public static final Constructor constructor$SoundEvent = requireNonNull( - VersionHelper.isVersionNewerThan1_21_2() ? + VersionHelper.isOrAbove1_21_2() ? ReflectionUtils.getConstructor( clazz$SoundEvent, clazz$ResourceLocation, Optional.class ) : @@ -377,7 +377,7 @@ public class Reflections { public static final Object instance$MinecraftRegistry; static { - if (VersionHelper.isVersionNewerThan1_20()) { + if (VersionHelper.isOrAbove1_20()) { try { Method method = requireNonNull(ReflectionUtils.getMethod(clazz$CraftRegistry, new String[]{"getMinecraftRegistry"})); instance$MinecraftRegistry = method.invoke(null); @@ -460,7 +460,7 @@ public class Reflections { ); public static final Field field$ServerCommonPacketListenerImpl$connection = requireNonNull( - VersionHelper.isVersionNewerThan1_20_2() ? + VersionHelper.isOrAbove1_20_2() ? ReflectionUtils.getDeclaredField( clazz$ServerCommonPacketListenerImpl, clazz$Connection, 0 ) : @@ -493,7 +493,7 @@ public class Reflections { ); public static final Method method$Connection$sendPacketImmediate = requireNonNull( - VersionHelper.isVersionNewerThan1_20_2() ? + VersionHelper.isOrAbove1_20_2() ? ReflectionUtils.getDeclaredMethod( clazz$Connection, void.class, new String[] {"sendPacket", "b"}, clazz$Packet, clazz$PacketSendListener, boolean.class ) : @@ -885,10 +885,10 @@ public class Reflections { } public static final Constructor constructor$AttributeModifier = requireNonNull( - !VersionHelper.isVersionNewerThan1_20_5() ? + !VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getConstructor(clazz$AttributeModifier, String.class, double.class, clazz$AttributeModifier$Operation): ( - !VersionHelper.isVersionNewerThan1_21() ? + !VersionHelper.isOrAbove1_21() ? ReflectionUtils.getConstructor(clazz$AttributeModifier, UUID.class, String.class, double.class, clazz$AttributeModifier$Operation) : ( ReflectionUtils.getConstructor(clazz$AttributeModifier, clazz$ResourceLocation, double.class, clazz$AttributeModifier$Operation) @@ -981,7 +981,7 @@ public class Reflections { ); public static final Constructor constructor$ClientboundUpdateAttributesPacket$AttributeSnapshot = requireNonNull( - VersionHelper.isVersionNewerThan1_20_5() ? + VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getConstructor( clazz$ClientboundUpdateAttributesPacket$AttributeSnapshot, clazz$Holder, double.class, Collection.class ) : @@ -1290,7 +1290,7 @@ public class Reflections { public static final Field field$ClientboundSetPlayerTeamPacket$Parameters$nametagVisibility = requireNonNull( ReflectionUtils.getInstanceDeclaredField( clazz$ClientboundSetPlayerTeamPacket$Parameters, - VersionHelper.isVersionNewerThan1_21_5() ? clazz$Team$Visibility : String.class, + VersionHelper.isOrAbove1_21_5() ? clazz$Team$Visibility : String.class, 0 ) ); @@ -2158,7 +2158,7 @@ public class Reflections { registries$Item = field.get(null); } else if (type == clazz$Fluid) { registries$Fluid = field.get(null); - } else if (VersionHelper.isVersionNewerThan1_21() && type == clazz$JukeboxSong) { + } else if (VersionHelper.isOrAbove1_21() && type == clazz$JukeboxSong) { registries$JukeboxSong = field.get(null); } } @@ -2586,7 +2586,7 @@ public class Reflections { ); public static final Constructor constructor$ClientboundLevelParticlesPacket = requireNonNull( - VersionHelper.isVersionNewerThan1_20_5() ? + VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getDeclaredConstructor(clazz$ClientboundLevelParticlesPacket, clazz$RegistryFriendlyByteBuf) : ReflectionUtils.getConstructor(clazz$ClientboundLevelParticlesPacket, clazz$FriendlyByteBuf) ); @@ -2821,7 +2821,7 @@ public class Reflections { } public static final Method method$ChunkHolder$sectionLightChanged = requireNonNull( - VersionHelper.isVersionNewerThan1_21_2() ? + VersionHelper.isOrAbove1_21_2() ? ReflectionUtils.getMethod(clazz$ChunkHolder, boolean.class, clazz$LightLayer, int.class) : ReflectionUtils.getMethod(clazz$ChunkHolder, void.class, clazz$LightLayer, int.class) ); @@ -2881,18 +2881,18 @@ public class Reflections { static { try { - if (VersionHelper.isVersionNewerThan1_20_5()) { - Object block_break_speed = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", VersionHelper.isVersionNewerThan1_21_2() ? "block_break_speed" : "player.block_break_speed"); + if (VersionHelper.isOrAbove1_20_5()) { + Object block_break_speed = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", VersionHelper.isOrAbove1_21_2() ? "block_break_speed" : "player.block_break_speed"); @SuppressWarnings("unchecked") Optional breakSpeedHolder = (Optional) method$Registry$getHolder0.invoke(instance$BuiltInRegistries$ATTRIBUTE, block_break_speed); instance$Holder$Attribute$block_break_speed = breakSpeedHolder.orElse(null); - Object block_interaction_range = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", VersionHelper.isVersionNewerThan1_21_2() ? "block_interaction_range" : "player.block_interaction_range"); + Object block_interaction_range = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", VersionHelper.isOrAbove1_21_2() ? "block_interaction_range" : "player.block_interaction_range"); @SuppressWarnings("unchecked") Optional blockInteractionRangeHolder = (Optional) method$Registry$getHolder0.invoke(instance$BuiltInRegistries$ATTRIBUTE, block_interaction_range); instance$Holder$Attribute$block_interaction_range = blockInteractionRangeHolder.orElse(null); - Object scale = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", VersionHelper.isVersionNewerThan1_21_2() ? "scale" : "generic.scale"); + Object scale = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", VersionHelper.isOrAbove1_21_2() ? "scale" : "generic.scale"); @SuppressWarnings("unchecked") Optional scaleHolder = (Optional) method$Registry$getHolder0.invoke(instance$BuiltInRegistries$ATTRIBUTE, scale); instance$Holder$Attribute$scale = scaleHolder.orElse(null); @@ -2907,7 +2907,7 @@ public class Reflections { } public static final Method method$ServerPlayer$getAttribute = requireNonNull( - VersionHelper.isVersionNewerThan1_20_5() ? + VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getMethod(clazz$ServerPlayer, clazz$AttributeInstance, clazz$Holder) : ReflectionUtils.getMethod(clazz$ServerPlayer, clazz$AttributeInstance, clazz$Attribute) ); @@ -3271,7 +3271,7 @@ public class Reflections { ); public static final Constructor constructor$ClientboundUpdateMobEffectPacket = requireNonNull( - !VersionHelper.isVersionNewerThan1_20_5() ? + !VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getConstructor( clazz$ClientboundUpdateMobEffectPacket, int.class, clazz$MobEffectInstance ) : @@ -3287,7 +3287,7 @@ public class Reflections { ); public static final Field field$ClientboundUpdateMobEffectPacket$effect = requireNonNull( - !VersionHelper.isVersionNewerThan1_20_5() ? + !VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getInstanceDeclaredField( clazz$ClientboundUpdateMobEffectPacket, clazz$MobEffect, 0 ) : @@ -3297,7 +3297,7 @@ public class Reflections { ); public static final Field field$ClientboundUpdateMobEffectPacket$amplifier = requireNonNull( - !VersionHelper.isVersionNewerThan1_20_5() ? + !VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getInstanceDeclaredField( clazz$ClientboundUpdateMobEffectPacket, byte.class, 0 ) : @@ -3307,7 +3307,7 @@ public class Reflections { ); public static final Field field$ClientboundUpdateMobEffectPacket$duration = requireNonNull( - !VersionHelper.isVersionNewerThan1_20_5() ? + !VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getInstanceDeclaredField( clazz$ClientboundUpdateMobEffectPacket, int.class, 1 ) : @@ -3317,7 +3317,7 @@ public class Reflections { ); public static final Field field$ClientboundUpdateMobEffectPacket$flags = requireNonNull( - !VersionHelper.isVersionNewerThan1_20_5() ? + !VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getInstanceDeclaredField( clazz$ClientboundUpdateMobEffectPacket, byte.class, 1 ) : @@ -3327,7 +3327,7 @@ public class Reflections { ); public static final Method method$ServerPlayer$getEffect = requireNonNull( - !VersionHelper.isVersionNewerThan1_20_5() ? + !VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getMethod( clazz$ServerPlayer, clazz$MobEffectInstance, clazz$MobEffect ) : @@ -3371,7 +3371,7 @@ public class Reflections { ); public static final Field field$ServerboundSetCreativeModeSlotPacket$slotNum = requireNonNull( - VersionHelper.isVersionNewerThan1_20_5() ? + VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getDeclaredField( clazz$ServerboundSetCreativeModeSlotPacket, short.class, 0 ) : @@ -3483,7 +3483,7 @@ public class Reflections { ); public static final Method method$BlockBehaviour$updateShape = requireNonNull( - VersionHelper.isVersionNewerThan1_21_2() ? + VersionHelper.isOrAbove1_21_2() ? ReflectionUtils.getDeclaredMethod( clazz$BlockBehaviour, clazz$BlockState, clazz$BlockState, clazz$LevelReader, clazz$ScheduledTickAccess, clazz$BlockPos, clazz$Direction, clazz$BlockPos, clazz$BlockState, clazz$RandomSource ) : @@ -3742,7 +3742,7 @@ public class Reflections { // 1.20.2+ public static final Field field$CommonPlayerSpawnInfo$dimension = Optional.ofNullable(clazz$CommonPlayerSpawnInfo) .map(it -> { - if (VersionHelper.isVersionNewerThan1_20_5()) { + if (VersionHelper.isOrAbove1_20_5()) { return ReflectionUtils.getDeclaredField(it, clazz$ResourceKey, 0); } else { return ReflectionUtils.getDeclaredField(it, clazz$ResourceKey, 1); @@ -3791,7 +3791,7 @@ public class Reflections { instance$EntityType$SHULKER = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ENTITY_TYPE, shulker); Object armorStand = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "armor_stand"); instance$EntityType$ARMOR_STAND = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ENTITY_TYPE, armorStand); - Object oakBoat = VersionHelper.isVersionNewerThan1_21_2() ? FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "oak_boat") : FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "boat"); + Object oakBoat = VersionHelper.isOrAbove1_21_2() ? FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "oak_boat") : FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "boat"); instance$EntityType$OAK_BOAT = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ENTITY_TYPE, oakBoat); } catch (ReflectiveOperationException e) { throw new RuntimeException(e); @@ -4077,7 +4077,7 @@ public class Reflections { ); public static final Method method$CraftEventFactory$callBlockPlaceEvent = requireNonNull( - VersionHelper.isVersionNewerThan1_21_5() + VersionHelper.isOrAbove1_21_5() ? ReflectionUtils.getStaticMethod(clazz$CraftEventFactory, BlockPlaceEvent.class, clazz$ServerLevel, clazz$Player, clazz$InteractionHand, BlockState.class, clazz$BlockPos) : ReflectionUtils.getStaticMethod(clazz$CraftEventFactory, BlockPlaceEvent.class, clazz$ServerLevel, clazz$Player, clazz$InteractionHand, BlockState.class, int.class, int.class, int.class) ); @@ -4602,7 +4602,7 @@ public class Reflections { static { Method method$RecipeManager$byKey0 = null; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { for (Method method : clazz$RecipeManager.getMethods()) { if (method.getParameterCount() == 1 && method.getParameterTypes()[0] == clazz$ResourceKey) { if (method.getReturnType() == Optional.class && method.getGenericReturnType() instanceof ParameterizedType type) { @@ -4613,7 +4613,7 @@ public class Reflections { } } } - } else if (VersionHelper.isVersionNewerThan1_20_2()) { + } else if (VersionHelper.isOrAbove1_20_2()) { for (Method method : clazz$RecipeManager.getMethods()) { if (method.getParameterCount() == 1 && method.getParameterTypes()[0] == clazz$ResourceLocation) { if (method.getReturnType() == Optional.class && method.getGenericReturnType() instanceof ParameterizedType type) { @@ -4924,7 +4924,7 @@ public class Reflections { ); public static final Method method$BonemealableBlock$isValidBonemealTarget = requireNonNull( - VersionHelper.isVersionNewerThan1_20_2() ? + VersionHelper.isOrAbove1_20_2() ? ReflectionUtils.getMethod( clazz$BonemealableBlock, boolean.class, clazz$LevelReader, clazz$BlockPos, clazz$BlockState ) : @@ -4977,7 +4977,7 @@ public class Reflections { ); public static final Method method$ServerLevel$levelEvent = requireNonNull( - VersionHelper.isVersionNewerThan1_21_5() + VersionHelper.isOrAbove1_21_5() ? ReflectionUtils.getMethod(clazz$ServerLevel, void.class, clazz$Entity, int.class, clazz$BlockPos, int.class) : ReflectionUtils.getMethod(clazz$ServerLevel, void.class, clazz$Player, int.class, clazz$BlockPos, int.class) ); @@ -5110,11 +5110,11 @@ public class Reflections { ); public static final Constructor constructor$ClientboundResourcePackPushPacket = requireNonNull( - VersionHelper.isVersionNewerThan1_20_5() ? + VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getConstructor( clazz$ClientboundResourcePackPushPacket, UUID.class, String.class, String.class, boolean.class, Optional.class ) : - VersionHelper.isVersionNewerThan1_20_3() ? + VersionHelper.isOrAbove1_20_3() ? ReflectionUtils.getConstructor( clazz$ClientboundResourcePackPushPacket, UUID.class, String.class, String.class, boolean.class, clazz$Component ) : @@ -5276,17 +5276,17 @@ public class Reflections { .orElse(null); public static final Constructor constructor$SmithingTransformRecipe = requireNonNull( - VersionHelper.isVersionNewerThan1_21_5() + VersionHelper.isOrAbove1_21_5() ? ReflectionUtils.getConstructor(clazz$SmithingTransformRecipe, Optional.class, clazz$Ingredient, Optional.class, clazz$TransmuteResult) - : VersionHelper.isVersionNewerThan1_21_2() + : VersionHelper.isOrAbove1_21_2() ? ReflectionUtils.getConstructor(clazz$SmithingTransformRecipe, Optional.class, Optional.class, Optional.class, clazz$ItemStack) - : VersionHelper.isVersionNewerThan1_20_2() + : VersionHelper.isOrAbove1_20_2() ? ReflectionUtils.getConstructor(clazz$SmithingTransformRecipe, clazz$Ingredient, clazz$Ingredient, clazz$Ingredient, clazz$ItemStack) : ReflectionUtils.getConstructor(clazz$SmithingTransformRecipe, clazz$ResourceLocation, clazz$Ingredient, clazz$Ingredient, clazz$Ingredient, clazz$ItemStack) ); public static final Method method$RecipeManager$addRecipe = requireNonNull( - VersionHelper.isVersionNewerThan1_20_2() ? + VersionHelper.isOrAbove1_20_2() ? ReflectionUtils.getMethod(clazz$RecipeManager, void.class, clazz$RecipeHolder) : ReflectionUtils.getMethod(clazz$RecipeManager, void.class, clazz$Recipe) ); @@ -5588,9 +5588,9 @@ public class Reflections { ); public static final Method method$SimpleWaterloggedBlock$canPlaceLiquid = requireNonNull( - VersionHelper.isVersionNewerThan1_21_5() + VersionHelper.isOrAbove1_21_5() ? ReflectionUtils.getMethod(clazz$SimpleWaterloggedBlock, boolean.class, clazz$LivingEntity, clazz$BlockGetter, clazz$BlockPos, clazz$BlockState, clazz$Fluid) - : VersionHelper.isVersionNewerThan1_20_2() + : VersionHelper.isOrAbove1_20_2() ? ReflectionUtils.getMethod(clazz$SimpleWaterloggedBlock, boolean.class, clazz$Player, clazz$BlockGetter, clazz$BlockPos, clazz$BlockState, clazz$Fluid) : ReflectionUtils.getMethod(clazz$SimpleWaterloggedBlock, boolean.class, clazz$BlockGetter, clazz$BlockPos, clazz$BlockState, clazz$Fluid) ); @@ -5602,9 +5602,9 @@ public class Reflections { ); public static final Method method$SimpleWaterloggedBlock$pickupBlock = requireNonNull( - VersionHelper.isVersionNewerThan1_21_5() + VersionHelper.isOrAbove1_21_5() ? ReflectionUtils.getMethod(clazz$SimpleWaterloggedBlock, clazz$ItemStack, clazz$LivingEntity, clazz$LevelAccessor, clazz$BlockPos, clazz$BlockState) - : VersionHelper.isVersionNewerThan1_20_2() + : VersionHelper.isOrAbove1_20_2() ? ReflectionUtils.getMethod(clazz$SimpleWaterloggedBlock, clazz$ItemStack, clazz$Player, clazz$LevelAccessor, clazz$BlockPos, clazz$BlockState) : ReflectionUtils.getMethod(clazz$SimpleWaterloggedBlock, clazz$ItemStack, clazz$LevelAccessor, clazz$BlockPos, clazz$BlockState) ); @@ -5797,7 +5797,7 @@ public class Reflections { ); public static final Method method$BlockBehaviour$getDescriptionId = requireNonNull( - VersionHelper.isVersionNewerThan1_21_2() + VersionHelper.isOrAbove1_21_2() ? ReflectionUtils.getMethod(clazz$BlockBehaviour, String.class) : ReflectionUtils.getMethod(clazz$Block, String.class) ); @@ -5869,7 +5869,7 @@ public class Reflections { ); public static final Method method$CraftEventFactory$handleBlockGrowEvent = requireNonNull( - VersionHelper.isVersionNewerThan1_21_5() ? + VersionHelper.isOrAbove1_21_5() ? ReflectionUtils.getStaticMethod( clazz$CraftEventFactory, boolean.class, clazz$Level, clazz$BlockPos, clazz$BlockState, int.class ) : @@ -5967,7 +5967,7 @@ public class Reflections { instance$Pose$SNIFFING = instance$Poses[12]; instance$Pose$EMERGING = instance$Poses[13]; instance$Pose$DIGGING = instance$Poses[14]; - if (VersionHelper.isVersionNewerThan1_20_3()) { + if (VersionHelper.isOrAbove1_20_3()) { instance$Pose$SLIDING = instance$Poses[15]; instance$Pose$SHOOTING = instance$Poses[16]; instance$Pose$INHALING = instance$Poses[17]; @@ -6019,13 +6019,13 @@ public class Reflections { // ); public static final Method method$Entity$canBeCollidedWith = requireNonNull( - VersionHelper.isVersionNewerThan1_20_5() + VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getMethod(clazz$Entity, boolean.class, new String[]{"canBeCollidedWith"}) - : VersionHelper.isVersionNewerThan1_20_3() + : VersionHelper.isOrAbove1_20_3() ? ReflectionUtils.getMethod(clazz$Entity, boolean.class, new String[]{"bz"}) - : VersionHelper.isVersionNewerThan1_20_2() + : VersionHelper.isOrAbove1_20_2() ? ReflectionUtils.getMethod(clazz$Entity, boolean.class, new String[]{"bx"}) - : VersionHelper.isVersionNewerThan1_20() + : VersionHelper.isOrAbove1_20() ? ReflectionUtils.getMethod(clazz$Entity, boolean.class, new String[]{"bu"}) : ReflectionUtils.getMethod(clazz$Entity, boolean.class, new String[]{"canBeCollidedWith", "bu", "bx", "bz"}) ); @@ -6039,13 +6039,13 @@ public class Reflections { @Deprecated public static final Method method$Entity$getId = requireNonNull( - VersionHelper.isVersionNewerThan1_20_5() + VersionHelper.isOrAbove1_20_5() ? ReflectionUtils.getMethod(clazz$Entity, int.class, new String[]{"getId"}) - : VersionHelper.isVersionNewerThan1_20_3() + : VersionHelper.isOrAbove1_20_3() ? ReflectionUtils.getMethod(clazz$Entity, int.class, new String[]{"aj"}) - : VersionHelper.isVersionNewerThan1_20_2() + : VersionHelper.isOrAbove1_20_2() ? ReflectionUtils.getMethod(clazz$Entity, int.class, new String[]{"ah"}) - : VersionHelper.isVersionNewerThan1_20() + : VersionHelper.isOrAbove1_20() ? ReflectionUtils.getMethod(clazz$Entity, int.class, new String[]{"af"}) : ReflectionUtils.getMethod(clazz$Entity, int.class, new String[]{"getId", "aj", "ah", "af"}) ); @@ -6204,7 +6204,7 @@ public class Reflections { public static final Method method$Level$moonrise$getEntityLookup = requireNonNull( ReflectionUtils.getMethod( - VersionHelper.isVersionNewerThan1_21() ? clazz$Level : clazz$ServerLevel, + VersionHelper.isOrAbove1_21() ? clazz$Level : clazz$ServerLevel, clazz$EntityLookup ) ); @@ -6329,7 +6329,7 @@ public class Reflections { // 1.21.2+ static { try { - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { Object[] values = (Object[]) method$ParticleStatus$values.invoke(null); instance$ParticleStatus$ALL = values[0]; instance$ParticleStatus$DECREASED = values[1]; @@ -6455,7 +6455,7 @@ public class Reflections { ); public static final Field field$ServerboundHelloPacket$uuid = requireNonNull( - VersionHelper.isVersionNewerThan1_20_2() ? + VersionHelper.isOrAbove1_20_2() ? ReflectionUtils.getDeclaredField( clazz$ServerboundHelloPacket, UUID.class, 0 ) : @@ -6472,7 +6472,7 @@ public class Reflections { public static final Field field$ClientboundResourcePackPushPacket$prompt = requireNonNull( ReflectionUtils.getDeclaredField( clazz$ClientboundResourcePackPushPacket, - VersionHelper.isVersionNewerThan1_20_5() ? Optional.class : clazz$Component, + VersionHelper.isOrAbove1_20_5() ? Optional.class : clazz$Component, 0 ) ); @@ -6515,7 +6515,7 @@ public class Reflections { instance$ServerboundResourcePackPacket$Action$DECLINED = values[1]; instance$ServerboundResourcePackPacket$Action$FAILED_DOWNLOAD = values[2]; instance$ServerboundResourcePackPacket$Action$ACCEPTED = values[3]; - if (VersionHelper.isVersionNewerThan1_20_3()) { + if (VersionHelper.isOrAbove1_20_3()) { instance$ServerboundResourcePackPacket$Action$DOWNLOADED = values[4]; instance$ServerboundResourcePackPacket$Action$INVALID_URL = values[5]; instance$ServerboundResourcePackPacket$Action$FAILED_RELOAD = values[6]; @@ -6552,7 +6552,7 @@ public class Reflections { public static final Field field$ClientIntentionPacket$protocolVersion = requireNonNull( ReflectionUtils.getDeclaredField( - clazz$ClientIntentionPacket, int.class, VersionHelper.isVersionNewerThan1_20_2() ? 0 : 1 + clazz$ClientIntentionPacket, int.class, VersionHelper.isOrAbove1_20_2() ? 0 : 1 ) ); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorld.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorld.java index 5e6aa6235..b63a851ac 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorld.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorld.java @@ -74,7 +74,7 @@ public class BukkitWorld implements World { public void dropItemNaturally(Vec3d location, Item item) { ItemStack itemStack = (ItemStack) item.load(); if (ItemUtils.isEmpty(itemStack)) return; - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { platformWorld().dropItemNaturally(new Location(null, location.x(), location.y(), location.z()), (ItemStack) item.getItem()); } else { platformWorld().dropItemNaturally(new Location(null, location.x() - 0.5, location.y() - 0.5, location.z() - 0.5), (ItemStack) item.getItem()); diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/AbstractItemManager.java b/core/src/main/java/net/momirealms/craftengine/core/item/AbstractItemManager.java index 242b39291..4548fadab 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/AbstractItemManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/AbstractItemManager.java @@ -229,7 +229,7 @@ public abstract class AbstractItemManager extends AbstractModelGenerator impl String pattern = data.get("pattern").toString().toLowerCase(Locale.ENGLISH); return new TrimModifier<>(material, pattern); }, "trim"); - if (VersionHelper.isVersionNewerThan1_20_5()) { + if (VersionHelper.isOrAbove1_20_5()) { registerDataFunction((obj) -> { Map data = MiscUtils.castToMap(obj, false); return new ComponentModifier<>(data); @@ -239,19 +239,19 @@ public abstract class AbstractItemManager extends AbstractModelGenerator impl return new RemoveComponentModifier<>(data); }, "remove-components", "remove-component"); } - if (VersionHelper.isVersionNewerThan1_21()) { + if (VersionHelper.isOrAbove1_21()) { registerDataFunction((obj) -> { String song = obj.toString(); return new JukeboxSongModifier<>(new JukeboxPlayable(song, true)); }, "jukebox-playable"); } - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { registerDataFunction((obj) -> { String id = obj.toString(); return new TooltipStyleModifier<>(Key.of(id)); }, "tooltip-style"); } - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { registerDataFunction((obj) -> { Map data = MiscUtils.castToMap(obj, false); return new EquippableModifier<>(EquipmentData.fromMap(data)); diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/EquipmentData.java b/core/src/main/java/net/momirealms/craftengine/core/item/EquipmentData.java index 25c10703f..2a33f07df 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/EquipmentData.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/EquipmentData.java @@ -104,7 +104,7 @@ public class EquipmentData { map.put("dispensable", this.dispensable); map.put("swappable", this.swappable); map.put("damage_on_hurt", this.damageOnHurt); - if (VersionHelper.isVersionNewerThan1_21_5()) { + if (VersionHelper.isOrAbove1_21_5()) { map.put("equip_on_interact", this.equipOnInteract); } if (this.cameraOverlay != null) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java b/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java index 3e5897b11..2e02df698 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java @@ -25,7 +25,7 @@ public class ItemSettings { public List> modifiers() { ArrayList> modifiers = new ArrayList<>(); - if (VersionHelper.isVersionNewerThan1_21_2() && this.equipment != null && this.equipment.modernData() != null) modifiers.add(new EquippableModifier<>(this.equipment.modernData())); + if (VersionHelper.isOrAbove1_21_2() && this.equipment != null && this.equipment.modernData() != null) modifiers.add(new EquippableModifier<>(this.equipment.modernData())); // TODO 1.20 leather armor return modifiers; } @@ -172,7 +172,7 @@ public class ItemSettings { registerFactory("equippable", (value -> { Map args = MiscUtils.castToMap(value, false); EquipmentData data; - if (VersionHelper.isVersionNewerThan1_21_2() && args.containsKey("slot")) data = EquipmentData.fromMap(args); + if (VersionHelper.isOrAbove1_21_2() && args.containsKey("slot")) data = EquipmentData.fromMap(args); else data = null; EquipmentGeneration equipment = new EquipmentGeneration( EquipmentGeneration.Layer.fromConfig(args.get("humanoid")), diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/AbstractRecipeManager.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/AbstractRecipeManager.java index 069a4c03f..6f55615cf 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/AbstractRecipeManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/AbstractRecipeManager.java @@ -40,9 +40,9 @@ public abstract class AbstractRecipeManager implements RecipeManager { } private VanillaRecipeReader initVanillaRecipeReader() { - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isOrAbove1_21_2()) { return new VanillaRecipeReader1_21_2(); - } else if (VersionHelper.isVersionNewerThan1_20_5()) { + } else if (VersionHelper.isOrAbove1_20_5()) { return new VanillaRecipeReader1_20_5(); } else { return new VanillaRecipeReader1_20(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java index 309a5e41f..51dabc68d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java @@ -161,7 +161,7 @@ public class CustomSmithingTransformRecipe implements Recipe { public static final Key KEEP_TAGS = Key.of("craftengine:keep_tags"); static { - if (VersionHelper.isVersionNewerThan1_20_5()) { + if (VersionHelper.isOrAbove1_20_5()) { register(KEEP_COMPONENTS, KeepComponents.FACTORY); } else { register(KEEP_TAGS, KeepTags.FACTORY); diff --git a/core/src/main/java/net/momirealms/craftengine/core/sound/AbstractSoundManager.java b/core/src/main/java/net/momirealms/craftengine/core/sound/AbstractSoundManager.java index 939968c01..38ce5197e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/sound/AbstractSoundManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/sound/AbstractSoundManager.java @@ -47,7 +47,7 @@ public abstract class AbstractSoundManager implements SoundManager { @Override public void runDelayedSyncTasks() { - if (!VersionHelper.isVersionNewerThan1_21()) return; + if (!VersionHelper.isOrAbove1_21()) return; this.registerSongs(this.songs); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/AdventureHelper.java b/core/src/main/java/net/momirealms/craftengine/core/util/AdventureHelper.java index 7d32c3fb6..1cfa6f2d4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/util/AdventureHelper.java +++ b/core/src/main/java/net/momirealms/craftengine/core/util/AdventureHelper.java @@ -30,7 +30,7 @@ public class AdventureHelper { this.miniMessageStrict = MiniMessage.builder().strict(true).build(); this.miniMessageCustom = MiniMessage.builder().tags(TagResolver.empty()).build(); GsonComponentSerializer.Builder builder = GsonComponentSerializer.builder(); - if (!VersionHelper.isVersionNewerThan1_20_5()) { + if (!VersionHelper.isOrAbove1_20_5()) { builder.legacyHoverEventSerializer(NBTLegacyHoverEventSerializer.get()); builder.editOptions((b) -> b.value(JSONOptions.EMIT_HOVER_SHOW_ENTITY_ID_AS_INT_ARRAY, false)); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/VersionHelper.java b/core/src/main/java/net/momirealms/craftengine/core/util/VersionHelper.java index 926c6ca90..e937a18ac 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/util/VersionHelper.java +++ b/core/src/main/java/net/momirealms/craftengine/core/util/VersionHelper.java @@ -6,12 +6,39 @@ public class VersionHelper { private static boolean folia; private static boolean paper; + private static boolean v1_20; + private static boolean v1_20_1; + private static boolean v1_20_2; + private static boolean v1_20_3; + private static boolean v1_20_4; + private static boolean v1_20_5; + private static boolean v1_20_6; + private static boolean v1_21; + private static boolean v1_21_1; + private static boolean v1_21_2; + private static boolean v1_21_3; + private static boolean v1_21_4; + private static boolean v1_21_5; + public static void init(String serverVersion) { String[] split = serverVersion.split("\\."); version = Float.parseFloat(split[1] + "." + (split.length == 3 ? split[2] : "0")); checkMojMap(); checkFolia(); checkPaper(); + v1_20 = version >= 20f; + v1_20_1 = version >= 20.1f; + v1_20_2 = version >= 20.2f; + v1_20_3 = version >= 20.3f; + v1_20_4 = version >= 20.4f; + v1_20_5 = version >= 20.5f; + v1_20_6 = version >= 20.6f; + v1_21 = version >= 21f; + v1_21_1 = version >= 21.1f; + v1_21_2 = version >= 21.2f; + v1_21_3 = version >= 21.3f; + v1_21_4 = version >= 21.4f; + v1_21_5 = version >= 21.5f; } public static float version() { @@ -55,43 +82,55 @@ public class VersionHelper { return mojmap; } - public static boolean isVersionNewerThan1_20() { - return version >= 20f; + public static boolean isOrAbove1_20() { + return v1_20; } - public static boolean isVersionNewerThan1_20_2() { - return version >= 20.19f; + public static boolean isOrAbove1_20_1() { + return v1_20_1; } - public static boolean isVersionNewerThan1_20_3() { - return version >= 20.29f; + public static boolean isOrAbove1_20_2() { + return v1_20_2; } - public static boolean isVersionNewerThan1_20_4() { - return version >= 20.39f; + public static boolean isOrAbove1_20_3() { + return v1_20_3; } - public static boolean isVersionNewerThan1_20_5() { - return version >= 20.49f; + public static boolean isOrAbove1_20_4() { + return v1_20_4; } - public static boolean isVersionNewerThan1_21() { - return version >= 21f; + public static boolean isOrAbove1_20_5() { + return v1_20_5; } - public static boolean isVersionNewerThan1_21_2() { - return version >= 21.19f; + public static boolean isOrAbove1_20_6() { + return v1_20_6; } - public static boolean isVersionNewerThan1_21_3() { - return version >= 21.29f; + public static boolean isOrAbove1_21() { + return v1_21; } - public static boolean isVersionNewerThan1_21_4() { - return version >= 21.39f; + public static boolean isOrAbove1_21_1() { + return v1_21_1; } - public static boolean isVersionNewerThan1_21_5() { - return version >= 21.49f; + public static boolean isOrAbove1_21_2() { + return v1_21_2; + } + + public static boolean isOrAbove1_21_3() { + return v1_21_3; + } + + public static boolean isOrAbove1_21_4() { + return v1_21_4; + } + + public static boolean isOrAbove1_21_5() { + return v1_21_5; } } \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/world/chunk/PalettedContainer.java b/core/src/main/java/net/momirealms/craftengine/core/world/chunk/PalettedContainer.java index 06cee4328..3a6fb0e5f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/world/chunk/PalettedContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/world/chunk/PalettedContainer.java @@ -23,9 +23,9 @@ import java.util.function.Predicate; import java.util.stream.LongStream; public class PalettedContainer implements PaletteResizeListener, ReadableContainer { - private static final BiConsumer RAW_DATA_WRITER = VersionHelper.isVersionNewerThan1_21_5() ? + private static final BiConsumer RAW_DATA_WRITER = VersionHelper.isOrAbove1_21_5() ? (FriendlyByteBuf::writeFixedSizeLongArray) : (FriendlyByteBuf::writeLongArray); - private static final BiConsumer RAW_DATA_READER = VersionHelper.isVersionNewerThan1_21_5() ? + private static final BiConsumer RAW_DATA_READER = VersionHelper.isOrAbove1_21_5() ? (FriendlyByteBuf::readFixedSizeLongArray) : (FriendlyByteBuf::readLongArray); private final PaletteResizeListener dummyListener = (newSize, added) -> 0; private final IndexedIterable idList;