diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 24aa094..ef2d413 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,13 +10,13 @@ jobs: name: Build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - - name: Set up JDK 17 - uses: actions/setup-java@v2 + - name: Set up JDK 21 + uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Cache Maven packages uses: actions/cache@v1 diff --git a/build.gradle b/build.gradle index 727d019..d22c2de 100644 --- a/build.gradle +++ b/build.gradle @@ -29,10 +29,10 @@ repositories { } dependencies { - implementation(platform("com.intellectualsites.bom:bom-newest:1.44")) // Ref: https://github.com/IntellectualSites/bom + implementation(platform("com.intellectualsites.bom:bom-newest:1.45")) // Ref: https://github.com/IntellectualSites/bom compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Core") compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit") - compileOnly 'io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT' + compileOnly 'io.papermc.paper:paper-api:1.21-R0.1-SNAPSHOT' implementation 'org.bstats:bstats-bukkit-lite:1.8' implementation 'com.zaxxer:HikariCP:5.0.1' } diff --git a/pom.xml b/pom.xml index e9424ce..966b88e 100755 --- a/pom.xml +++ b/pom.xml @@ -106,7 +106,7 @@ com.intellectualsites.bom bom-newest - 1.44 + 1.45 import pom @@ -122,7 +122,7 @@ io.papermc.paper paper-api - 1.20.4-R0.1-SNAPSHOT + 1.21-R0.1-SNAPSHOT provided diff --git a/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java b/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java index 9818afd..59c5878 100644 --- a/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java +++ b/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java @@ -42,6 +42,7 @@ public class BukkitAdapter implements BukkitInterface { public static final int BUKKIT_V1_18 = 18; public static final int BUKKIT_V1_19 = 19; public static final int BUKKIT_V1_20 = 20; + public static final int BUKKIT_V1_21 = 21; public static void loadAdapter() { switch (ConfigHandler.SERVER_VERSION) { @@ -63,9 +64,12 @@ public class BukkitAdapter implements BukkitInterface { BukkitAdapter.ADAPTER = new Bukkit_v1_19(); break; case BUKKIT_V1_20: - default: BukkitAdapter.ADAPTER = new Bukkit_v1_20(); break; + case BUKKIT_V1_21: + default: + BukkitAdapter.ADAPTER = new Bukkit_v1_21(); + break; } } diff --git a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_21.java b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_21.java new file mode 100644 index 0000000..4b133b5 --- /dev/null +++ b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_21.java @@ -0,0 +1,25 @@ +package net.coreprotect.bukkit; + +import org.bukkit.Material; +import org.bukkit.Tag; + +import net.coreprotect.model.BlockGroup; + +public class Bukkit_v1_21 extends Bukkit_v1_20 implements BukkitInterface { + + public Bukkit_v1_21() { + for (Material value : Tag.TRAPDOORS.getValues()) { + if (value == Material.IRON_TRAPDOOR) { + continue; + } + + if (!BlockGroup.INTERACT_BLOCKS.contains(value)) { + BlockGroup.INTERACT_BLOCKS.add(value); + } + if (!BlockGroup.SAFE_INTERACT_BLOCKS.contains(value)) { + BlockGroup.SAFE_INTERACT_BLOCKS.add(value); + } + } + } + +} diff --git a/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java b/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java index 6faf5c3..9a95afc 100755 --- a/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java +++ b/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java @@ -835,6 +835,12 @@ public final class PlayerInteractListener extends Queue implements Listener { if (event.useItemInHand() != Event.Result.DENY) { List entityBlockTypes = Arrays.asList(Material.ARMOR_STAND, Material.END_CRYSTAL, Material.BOW, Material.CROSSBOW, Material.TRIDENT, Material.EXPERIENCE_BOTTLE, Material.SPLASH_POTION, Material.LINGERING_POTION, Material.ENDER_PEARL, Material.FIREWORK_ROCKET, Material.EGG, Material.SNOWBALL); + try { + entityBlockTypes.add(Material.valueOf("WIND_CHARGE")); + } + catch (Exception e) { + // not running MC 1.21+ + } ItemStack handItem = null; ItemStack mainHand = player.getInventory().getItemInMainHand(); ItemStack offHand = player.getInventory().getItemInOffHand(); diff --git a/src/main/java/net/coreprotect/paper/PaperAdapter.java b/src/main/java/net/coreprotect/paper/PaperAdapter.java index e0933d5..e510aea 100644 --- a/src/main/java/net/coreprotect/paper/PaperAdapter.java +++ b/src/main/java/net/coreprotect/paper/PaperAdapter.java @@ -23,6 +23,7 @@ public class PaperAdapter implements PaperInterface { public static final int PAPER_V1_18 = BukkitAdapter.BUKKIT_V1_18; public static final int PAPER_V1_19 = BukkitAdapter.BUKKIT_V1_19; public static final int PAPER_V1_20 = BukkitAdapter.BUKKIT_V1_20; + public static final int PAPER_V1_21 = BukkitAdapter.BUKKIT_V1_21; public static void loadAdapter() { int paperVersion = ConfigHandler.SERVER_VERSION; @@ -48,6 +49,7 @@ public class PaperAdapter implements PaperInterface { PaperAdapter.ADAPTER = new Paper_v1_17(); break; case PAPER_V1_20: + case PAPER_V1_21: default: PaperAdapter.ADAPTER = new Paper_v1_20(); break; diff --git a/src/main/java/net/coreprotect/spigot/SpigotAdapter.java b/src/main/java/net/coreprotect/spigot/SpigotAdapter.java index 175f7da..04602fa 100644 --- a/src/main/java/net/coreprotect/spigot/SpigotAdapter.java +++ b/src/main/java/net/coreprotect/spigot/SpigotAdapter.java @@ -21,6 +21,7 @@ public class SpigotAdapter implements SpigotInterface { public static final int SPIGOT_V1_18 = BukkitAdapter.BUKKIT_V1_18; public static final int SPIGOT_V1_19 = BukkitAdapter.BUKKIT_V1_19; public static final int SPIGOT_V1_20 = BukkitAdapter.BUKKIT_V1_20; + public static final int SPIGOT_V1_21 = BukkitAdapter.BUKKIT_V1_21; public static void loadAdapter() { int spigotVersion = ConfigHandler.SERVER_VERSION; @@ -42,6 +43,7 @@ public class SpigotAdapter implements SpigotInterface { case SPIGOT_V1_18: case SPIGOT_V1_19: case SPIGOT_V1_20: + case SPIGOT_V1_21: default: SpigotAdapter.ADAPTER = new Spigot_v1_16(); break; diff --git a/src/main/java/net/coreprotect/utility/Util.java b/src/main/java/net/coreprotect/utility/Util.java index 625cd1b..7014d7d 100755 --- a/src/main/java/net/coreprotect/utility/Util.java +++ b/src/main/java/net/coreprotect/utility/Util.java @@ -942,6 +942,8 @@ public class Util extends Queue { return Material.EGG; case "SNOWBALL": return Material.SNOWBALL; + case "WIND_CHARGE": + return Material.valueOf("WIND_CHARGE"); default: return BukkitAdapter.ADAPTER.getFrameType(type); }