From d91224879a1b0a468d01c60a0075ff51eaf8dfee Mon Sep 17 00:00:00 2001 From: PseudoKnight Date: Thu, 21 Sep 2023 20:46:59 -0700 Subject: [PATCH] Add support for Minecraft 1.20.2 --- .../bukkit/entities/BukkitMCPlayer.java | 28 +++++++++++-------- .../abstraction/enums/MCAttribute.java | 1 + .../abstraction/enums/MCGameRule.java | 1 + .../abstraction/enums/MCSound.java | 13 +++++++++ .../abstraction/enums/MCVersion.java | 1 + src/main/resources/docs/Compatibility | 2 +- 6 files changed, 33 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/laytonsmith/abstraction/bukkit/entities/BukkitMCPlayer.java b/src/main/java/com/laytonsmith/abstraction/bukkit/entities/BukkitMCPlayer.java index d32000280f..8faa98bf93 100644 --- a/src/main/java/com/laytonsmith/abstraction/bukkit/entities/BukkitMCPlayer.java +++ b/src/main/java/com/laytonsmith/abstraction/bukkit/entities/BukkitMCPlayer.java @@ -409,19 +409,23 @@ public void setTempOp(Boolean value) throws ClassNotFoundException, NoSuchFieldE // Get some version specific strings String nms = "net.minecraft.server"; String playersPackage = nms + ".players"; - String ops = "o"; + String ops = "p"; String getPlayerList = "ac"; - if(Static.getServer().getMinecraftVersion().equals(MCVersion.MC1_19_3)) { - getPlayerList = "ab"; - } else if(Static.getServer().getMinecraftVersion().lt(MCVersion.MC1_19_1)) { - ops = "n"; - if(Static.getServer().getMinecraftVersion().lt(MCVersion.MC1_18)) { - getPlayerList = "getPlayerList"; - if(Static.getServer().getMinecraftVersion().lt(MCVersion.MC1_17)) { - String version = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3]; - nms = "net.minecraft.server." + version; - playersPackage = nms; - ops = "operators"; + MCVersion mcversion = Static.getServer().getMinecraftVersion(); + if(mcversion.lt(MCVersion.MC1_20_X)) { + ops = "o"; + if(mcversion.equals(MCVersion.MC1_19_3)) { + getPlayerList = "ab"; + } else if(mcversion.lt(MCVersion.MC1_19_1)) { + ops = "n"; + if(mcversion.lt(MCVersion.MC1_18)) { + getPlayerList = "getPlayerList"; + if(mcversion.lt(MCVersion.MC1_17)) { + String version = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3]; + nms = "net.minecraft.server." + version; + playersPackage = nms; + ops = "operators"; + } } } } diff --git a/src/main/java/com/laytonsmith/abstraction/enums/MCAttribute.java b/src/main/java/com/laytonsmith/abstraction/enums/MCAttribute.java index 1d15ed7ea5..d7ba595551 100644 --- a/src/main/java/com/laytonsmith/abstraction/enums/MCAttribute.java +++ b/src/main/java/com/laytonsmith/abstraction/enums/MCAttribute.java @@ -16,5 +16,6 @@ public enum MCAttribute { GENERIC_MAX_HEALTH, GENERIC_MOVEMENT_SPEED, HORSE_JUMP_STRENGTH, + MAX_ABSORPTION, ZOMBIE_SPAWN_REINFORCEMENTS } diff --git a/src/main/java/com/laytonsmith/abstraction/enums/MCGameRule.java b/src/main/java/com/laytonsmith/abstraction/enums/MCGameRule.java index d331c3964a..a2cd1b5c9c 100644 --- a/src/main/java/com/laytonsmith/abstraction/enums/MCGameRule.java +++ b/src/main/java/com/laytonsmith/abstraction/enums/MCGameRule.java @@ -28,6 +28,7 @@ public enum MCGameRule { DOWARDENSPAWNING("doWardenSpawning"), DOWEATHERCYCLE("doWeatherCycle"), DROWNINGDAMAGE("drowningDamage"), + ENDERPEARLSVANISHONDEATH("enderPearlsVanishOnDeath"), FALLDAMAGE("fallDamage"), FIREDAMAGE("fireDamage"), FORGIVEDEADPLAYERS("forgiveDeadPlayers"), diff --git a/src/main/java/com/laytonsmith/abstraction/enums/MCSound.java b/src/main/java/com/laytonsmith/abstraction/enums/MCSound.java index e5d8fe5da2..40a4895b6c 100644 --- a/src/main/java/com/laytonsmith/abstraction/enums/MCSound.java +++ b/src/main/java/com/laytonsmith/abstraction/enums/MCSound.java @@ -1568,6 +1568,19 @@ public enum MCVanillaSound { MUSIC_OVERWORLD_JUNGLE(MCVersion.MC1_20), MUSIC_OVERWORLD_SPARSE_JUNGLE(MCVersion.MC1_20), + // 1.20.2 additions + BLOCK_SPONGE_ABSORB(MCVersion.MC1_20_X), + BLOCK_SPONGE_BREAK(MCVersion.MC1_20_X), + BLOCK_SPONGE_FALL(MCVersion.MC1_20_X), + BLOCK_SPONGE_HIT(MCVersion.MC1_20_X), + BLOCK_SPONGE_PLACE(MCVersion.MC1_20_X), + BLOCK_SPONGE_STEP(MCVersion.MC1_20_X), + BLOCK_WET_SPONGE_BREAK(MCVersion.MC1_20_X), + BLOCK_WET_SPONGE_FALL(MCVersion.MC1_20_X), + BLOCK_WET_SPONGE_HIT(MCVersion.MC1_20_X), + BLOCK_WET_SPONGE_PLACE(MCVersion.MC1_20_X), + BLOCK_WET_SPONGE_STEP(MCVersion.MC1_20_X), + UNKNOWN(MCVersion.NEVER); private final MCVersion since; diff --git a/src/main/java/com/laytonsmith/abstraction/enums/MCVersion.java b/src/main/java/com/laytonsmith/abstraction/enums/MCVersion.java index 1f5bf8e79f..41d54ff531 100644 --- a/src/main/java/com/laytonsmith/abstraction/enums/MCVersion.java +++ b/src/main/java/com/laytonsmith/abstraction/enums/MCVersion.java @@ -64,6 +64,7 @@ public enum MCVersion implements Version { MC1_19_3, MC1_19_X, MC1_20, + MC1_20_1, MC1_20_X, MC1_X, MC2_X, diff --git a/src/main/resources/docs/Compatibility b/src/main/resources/docs/Compatibility index 8064a4794f..e62c4a52e4 100644 --- a/src/main/resources/docs/Compatibility +++ b/src/main/resources/docs/Compatibility @@ -3,7 +3,7 @@ with build 1498, so earlier builds may not be accurate. In general, the compatib the same as the previous milestone build. The minimum requirements for the current builds are: * Java 16 -* Spigot/Paper 1.16.5 - 1.20.1 (when CH is used as a plugin) +* Spigot/Paper 1.16.5 - 1.20.2 (when CH is used as a plugin) Also note that CommandHelper may still be backwards and forward compatible to a large degree, many of the advanced features that normally have hard dependencies on certain versions of external dependencies have been configured to