From c7e299e485c931a03aff3b01ba91403edac86673 Mon Sep 17 00:00:00 2001 From: tastybento Date: Sun, 12 Oct 2025 17:27:55 -0700 Subject: [PATCH 1/3] Version 3.2.2 --- pom.xml | 2 +- src/main/java/world/bentobox/boxed/Boxed.java | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 1f5fddc..e2ae464 100644 --- a/pom.xml +++ b/pom.xml @@ -62,7 +62,7 @@ -LOCAL - 3.2.1 + 3.2.2 BentoBoxWorld_Boxed bentobox-world diff --git a/src/main/java/world/bentobox/boxed/Boxed.java b/src/main/java/world/bentobox/boxed/Boxed.java index 49e7690..8255fb5 100644 --- a/src/main/java/world/bentobox/boxed/Boxed.java +++ b/src/main/java/world/bentobox/boxed/Boxed.java @@ -131,11 +131,6 @@ public void onEnable() { if (this.getPlugin().getAddonsManager().getAddonByName("InvSwitcher").isEmpty()) { this.logWarning("Boxed normally requires the InvSwitcher addon for per-world Advancements."); } - if (Bukkit.getPluginManager().isPluginEnabled("MultiverseCore")) { - this.logError("Boxed is not compatible with Multiverse! Disabling!"); - this.setState(State.DISABLED); - return; - } // Advancements manager advManager = new AdvancementsManager(this); // Make flags only applicable to this game mode From bb1af2496b9a2b26715741f7ea5376e7acfab3c9 Mon Sep 17 00:00:00 2001 From: tastybento Date: Sun, 26 Oct 2025 21:49:38 -0700 Subject: [PATCH 2/3] Update for 1.21.10 --- pom.xml | 51 +++---------------- .../boxed/listeners/NewAreaListener.java | 28 ++-------- .../bentobox/boxed/nms/AbstractMetaData.java | 45 ---------------- .../boxed/nms/fallback/GetMetaData.java | 17 ------- .../v1_21_1_R0_1_SNAPSHOT/GetMetaData.java | 5 -- .../v1_21_3_R0_1_SNAPSHOT/GetMetaData.java | 22 -------- .../v1_21_4_R0_1_SNAPSHOT/GetMetaData.java | 22 -------- .../v1_21_5_R0_1_SNAPSHOT/GetMetaData.java | 22 -------- .../v1_21_6_R0_1_SNAPSHOT/GetMetaData.java | 22 -------- .../v1_21_7_R0_1_SNAPSHOT/GetMetaData.java | 22 -------- .../v1_21_8_R0_1_SNAPSHOT/GetMetaData.java | 22 -------- .../nms/v1_21_R0_1_SNAPSHOT/GetMetaData.java | 23 --------- src/main/resources/addon.yml | 2 +- 13 files changed, 11 insertions(+), 292 deletions(-) delete mode 100644 src/main/java/world/bentobox/boxed/nms/AbstractMetaData.java delete mode 100644 src/main/java/world/bentobox/boxed/nms/fallback/GetMetaData.java delete mode 100644 src/main/java/world/bentobox/boxed/nms/v1_21_1_R0_1_SNAPSHOT/GetMetaData.java delete mode 100644 src/main/java/world/bentobox/boxed/nms/v1_21_3_R0_1_SNAPSHOT/GetMetaData.java delete mode 100644 src/main/java/world/bentobox/boxed/nms/v1_21_4_R0_1_SNAPSHOT/GetMetaData.java delete mode 100644 src/main/java/world/bentobox/boxed/nms/v1_21_5_R0_1_SNAPSHOT/GetMetaData.java delete mode 100644 src/main/java/world/bentobox/boxed/nms/v1_21_6_R0_1_SNAPSHOT/GetMetaData.java delete mode 100644 src/main/java/world/bentobox/boxed/nms/v1_21_7_R0_1_SNAPSHOT/GetMetaData.java delete mode 100644 src/main/java/world/bentobox/boxed/nms/v1_21_8_R0_1_SNAPSHOT/GetMetaData.java delete mode 100644 src/main/java/world/bentobox/boxed/nms/v1_21_R0_1_SNAPSHOT/GetMetaData.java diff --git a/pom.xml b/pom.xml index 1f5fddc..23070eb 100644 --- a/pom.xml +++ b/pom.xml @@ -54,9 +54,9 @@ 2.0.9 - 1.21.7-R0.1-SNAPSHOT - 1.21.8-R0.1-SNAPSHOT - 3.3.0 + 1.21.10-R0.1-SNAPSHOT + 1.21.10-R0.1-SNAPSHOT + 3.9.0 ${build.version}-SNAPSHOT @@ -176,48 +176,11 @@ ${bentobox.version} provided - - - org.spigotmc - spigot - ${spigot.version} - provided - - - org.spigotmc...... - spigot - 1.21.7-R0.1-SNAPSHOT - provided - - - org.spigotmc..... - spigot - 1.21.6-R0.1-SNAPSHOT - provided - - org.spigotmc.... - spigot - 1.21.5-R0.1-SNAPSHOT - provided - - - org.spigotmc... - spigot - 1.21.4-R0.1-SNAPSHOT - provided - - - org.spigotmc.. - spigot - 1.21.3-R0.1-SNAPSHOT - provided - - - org.spigotmc...... - spigot - 1.21.1-R0.1-SNAPSHOT - provided + net.kyori + adventure-api + 4.24.0 + test diff --git a/src/main/java/world/bentobox/boxed/listeners/NewAreaListener.java b/src/main/java/world/bentobox/boxed/listeners/NewAreaListener.java index 928c34d..0dd552c 100644 --- a/src/main/java/world/bentobox/boxed/listeners/NewAreaListener.java +++ b/src/main/java/world/bentobox/boxed/listeners/NewAreaListener.java @@ -53,10 +53,10 @@ import world.bentobox.bentobox.api.events.island.IslandResettedEvent; import world.bentobox.bentobox.database.Database; import world.bentobox.bentobox.database.objects.Island; +import world.bentobox.bentobox.nms.AbstractMetaData; import world.bentobox.bentobox.util.Pair; import world.bentobox.bentobox.util.Util; import world.bentobox.boxed.Boxed; -import world.bentobox.boxed.nms.AbstractMetaData; import world.bentobox.boxed.objects.BoxedJigsawBlock; import world.bentobox.boxed.objects.BoxedStructureBlock; import world.bentobox.boxed.objects.IslandStructures; @@ -537,7 +537,7 @@ public static BoundingBox removeJigsaw(StructureRecord item) { */ private static void processStructureBlock(Block b) { // I would like to read the data from the block and do something with it! - String data = nmsData(b); + String data = Util.getMetaData().nmsData(b); if (data.isEmpty()) { return; } @@ -570,7 +570,7 @@ private static void processStructureBlock(Block b) { */ private static void processJigsaw(Block b, StructureRotation structureRotation, boolean pasteMobs) { try { - String data = nmsData(b); + String data = Util.getMetaData().nmsData(b); if (data.isEmpty()) { return; } @@ -693,28 +693,6 @@ private static BlockFace getDirection(String finalState) { .orElse(BlockFace.SELF); } - /** - * Gets NMS data from a block using the appropriate handler. - * - * @param block The block. - * @return The NMS data string. - */ - private static String nmsData(Block block) { - AbstractMetaData handler; - try { - Class clazz = Class.forName(pluginPackageName + ".nms." + bukkitVersion + ".GetMetaData"); - if (AbstractMetaData.class.isAssignableFrom(clazz)) { - handler = (AbstractMetaData) clazz.getConstructor().newInstance(); - } else { - throw new IllegalStateException("Class " + clazz.getName() + " does not implement AbstractGetMetaData"); - } - } catch (Exception e) { - BentoBox.getInstance().logError("No metadata handler found for " + bukkitVersion + " in Boxed (yet)."); - handler = new world.bentobox.boxed.nms.fallback.GetMetaData(); - } - return handler.nmsData(block); - } - /** * Loads the list of structures to be placed from the database. * diff --git a/src/main/java/world/bentobox/boxed/nms/AbstractMetaData.java b/src/main/java/world/bentobox/boxed/nms/AbstractMetaData.java deleted file mode 100644 index 81906cb..0000000 --- a/src/main/java/world/bentobox/boxed/nms/AbstractMetaData.java +++ /dev/null @@ -1,45 +0,0 @@ -package world.bentobox.boxed.nms; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; - -import org.bukkit.block.Block; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.protocol.game.PacketPlayOutTileEntityData; -import net.minecraft.world.level.block.entity.TileEntity; -import world.bentobox.bentobox.BentoBox; - -public abstract class AbstractMetaData { - - public abstract String nmsData(Block block); - - protected String getData(TileEntity te, String method, String field) { - try { - // Check if the method 'j' exists - Method updatePacketMethod = te.getClass().getDeclaredMethod(method); - if (updatePacketMethod != null) { - // Invoke the method to get the PacketPlayOutTileEntityData object - updatePacketMethod.setAccessible(true); - Object object = updatePacketMethod.invoke(te); - PacketPlayOutTileEntityData packet = (PacketPlayOutTileEntityData) object; - //if (object instanceof PacketPlayOutTileEntityData packet) { - // Access the private field for the NBTTagCompound getter in PacketPlayOutTileEntityData - Field fieldC = packet.getClass().getDeclaredField(field); - fieldC.setAccessible(true); - NBTTagCompound nbtTag = (NBTTagCompound) fieldC.get(packet); - - return nbtTag.toString(); // This will show what you want - //} else { - // throw new ClassNotFoundException( - // object.getClass().getCanonicalName() + " is not a PacketPlayOutTileEntityData"); - //} - } - } catch (Exception e) { - System.out.println("The method '" + method + "' does not exist in the TileEntity class."); - e.printStackTrace(); - } - return ""; - - } -} diff --git a/src/main/java/world/bentobox/boxed/nms/fallback/GetMetaData.java b/src/main/java/world/bentobox/boxed/nms/fallback/GetMetaData.java deleted file mode 100644 index ba63d91..0000000 --- a/src/main/java/world/bentobox/boxed/nms/fallback/GetMetaData.java +++ /dev/null @@ -1,17 +0,0 @@ -package world.bentobox.boxed.nms.fallback; - -import org.bukkit.block.Block; - -import world.bentobox.boxed.nms.AbstractMetaData; - -/** - * Fallback - */ -public class GetMetaData extends AbstractMetaData { - - @Override - public String nmsData(Block block) { - return ""; // We cannot read it if we have no NMS - } - -} diff --git a/src/main/java/world/bentobox/boxed/nms/v1_21_1_R0_1_SNAPSHOT/GetMetaData.java b/src/main/java/world/bentobox/boxed/nms/v1_21_1_R0_1_SNAPSHOT/GetMetaData.java deleted file mode 100644 index f28677f..0000000 --- a/src/main/java/world/bentobox/boxed/nms/v1_21_1_R0_1_SNAPSHOT/GetMetaData.java +++ /dev/null @@ -1,5 +0,0 @@ -package world.bentobox.boxed.nms.v1_21_1_R0_1_SNAPSHOT; - -public class GetMetaData extends world.bentobox.boxed.nms.v1_21_R0_1_SNAPSHOT.GetMetaData { - // Identical to 1.21 -} \ No newline at end of file diff --git a/src/main/java/world/bentobox/boxed/nms/v1_21_3_R0_1_SNAPSHOT/GetMetaData.java b/src/main/java/world/bentobox/boxed/nms/v1_21_3_R0_1_SNAPSHOT/GetMetaData.java deleted file mode 100644 index c0df15e..0000000 --- a/src/main/java/world/bentobox/boxed/nms/v1_21_3_R0_1_SNAPSHOT/GetMetaData.java +++ /dev/null @@ -1,22 +0,0 @@ -package world.bentobox.boxed.nms.v1_21_3_R0_1_SNAPSHOT; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_21_R2.CraftWorld; - -import net.minecraft.core.BlockPosition; -import net.minecraft.world.level.block.entity.TileEntity; -import world.bentobox.boxed.nms.AbstractMetaData; - -public class GetMetaData extends AbstractMetaData { - - @Override - public String nmsData(Block block) { - Location w = block.getLocation(); - CraftWorld cw = (CraftWorld) w.getWorld(); // CraftWorld is NMS one - // for 1.13+ (we have use WorldServer) - TileEntity te = cw.getHandle().c_(new BlockPosition(w.getBlockX(), w.getBlockY(), w.getBlockZ())); - return getData(te, "getUpdatePacket", "tag"); - } - -} \ No newline at end of file diff --git a/src/main/java/world/bentobox/boxed/nms/v1_21_4_R0_1_SNAPSHOT/GetMetaData.java b/src/main/java/world/bentobox/boxed/nms/v1_21_4_R0_1_SNAPSHOT/GetMetaData.java deleted file mode 100644 index e6cbf37..0000000 --- a/src/main/java/world/bentobox/boxed/nms/v1_21_4_R0_1_SNAPSHOT/GetMetaData.java +++ /dev/null @@ -1,22 +0,0 @@ -package world.bentobox.boxed.nms.v1_21_4_R0_1_SNAPSHOT; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_21_R3.CraftWorld; - -import net.minecraft.core.BlockPosition; -import net.minecraft.world.level.block.entity.TileEntity; -import world.bentobox.boxed.nms.AbstractMetaData; - -public class GetMetaData extends AbstractMetaData { - - @Override - public String nmsData(Block block) { - Location w = block.getLocation(); - CraftWorld cw = (CraftWorld) w.getWorld(); // CraftWorld is NMS one - // for 1.13+ (we have use WorldServer) - TileEntity te = cw.getHandle().c_(new BlockPosition(w.getBlockX(), w.getBlockY(), w.getBlockZ())); - return getData(te, "getUpdatePacket", "tag"); - } - -} \ No newline at end of file diff --git a/src/main/java/world/bentobox/boxed/nms/v1_21_5_R0_1_SNAPSHOT/GetMetaData.java b/src/main/java/world/bentobox/boxed/nms/v1_21_5_R0_1_SNAPSHOT/GetMetaData.java deleted file mode 100644 index b90a2cb..0000000 --- a/src/main/java/world/bentobox/boxed/nms/v1_21_5_R0_1_SNAPSHOT/GetMetaData.java +++ /dev/null @@ -1,22 +0,0 @@ -package world.bentobox.boxed.nms.v1_21_5_R0_1_SNAPSHOT; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_21_R4.CraftWorld; - -import net.minecraft.core.BlockPosition; -import net.minecraft.world.level.block.entity.TileEntity; -import world.bentobox.boxed.nms.AbstractMetaData; - -public class GetMetaData extends AbstractMetaData { - - @Override - public String nmsData(Block block) { - Location w = block.getLocation(); - CraftWorld cw = (CraftWorld) w.getWorld(); // CraftWorld is NMS one - // for 1.13+ (we have use WorldServer) - TileEntity te = cw.getHandle().c_(new BlockPosition(w.getBlockX(), w.getBlockY(), w.getBlockZ())); - return getData(te, "getUpdatePacket", "tag"); - } - -} \ No newline at end of file diff --git a/src/main/java/world/bentobox/boxed/nms/v1_21_6_R0_1_SNAPSHOT/GetMetaData.java b/src/main/java/world/bentobox/boxed/nms/v1_21_6_R0_1_SNAPSHOT/GetMetaData.java deleted file mode 100644 index d7e836e..0000000 --- a/src/main/java/world/bentobox/boxed/nms/v1_21_6_R0_1_SNAPSHOT/GetMetaData.java +++ /dev/null @@ -1,22 +0,0 @@ -package world.bentobox.boxed.nms.v1_21_6_R0_1_SNAPSHOT; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_21_R5.CraftWorld; - -import net.minecraft.core.BlockPosition; -import net.minecraft.world.level.block.entity.TileEntity; -import world.bentobox.boxed.nms.AbstractMetaData; - -public class GetMetaData extends AbstractMetaData { - - @Override - public String nmsData(Block block) { - Location w = block.getLocation(); - CraftWorld cw = (CraftWorld) w.getWorld(); // CraftWorld is NMS one - // for 1.13+ (we have use WorldServer) - TileEntity te = cw.getHandle().c_(new BlockPosition(w.getBlockX(), w.getBlockY(), w.getBlockZ())); - return getData(te, "getUpdatePacket", "tag"); - } - -} \ No newline at end of file diff --git a/src/main/java/world/bentobox/boxed/nms/v1_21_7_R0_1_SNAPSHOT/GetMetaData.java b/src/main/java/world/bentobox/boxed/nms/v1_21_7_R0_1_SNAPSHOT/GetMetaData.java deleted file mode 100644 index e268b34..0000000 --- a/src/main/java/world/bentobox/boxed/nms/v1_21_7_R0_1_SNAPSHOT/GetMetaData.java +++ /dev/null @@ -1,22 +0,0 @@ -package world.bentobox.boxed.nms.v1_21_7_R0_1_SNAPSHOT; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_21_R5.CraftWorld; - -import net.minecraft.core.BlockPosition; -import net.minecraft.world.level.block.entity.TileEntity; -import world.bentobox.boxed.nms.AbstractMetaData; - -public class GetMetaData extends AbstractMetaData { - - @Override - public String nmsData(Block block) { - Location w = block.getLocation(); - CraftWorld cw = (CraftWorld) w.getWorld(); // CraftWorld is NMS one - // for 1.13+ (we have use WorldServer) - TileEntity te = cw.getHandle().c_(new BlockPosition(w.getBlockX(), w.getBlockY(), w.getBlockZ())); - return getData(te, "getUpdatePacket", "tag"); - } - -} \ No newline at end of file diff --git a/src/main/java/world/bentobox/boxed/nms/v1_21_8_R0_1_SNAPSHOT/GetMetaData.java b/src/main/java/world/bentobox/boxed/nms/v1_21_8_R0_1_SNAPSHOT/GetMetaData.java deleted file mode 100644 index 0c8f3ff..0000000 --- a/src/main/java/world/bentobox/boxed/nms/v1_21_8_R0_1_SNAPSHOT/GetMetaData.java +++ /dev/null @@ -1,22 +0,0 @@ -package world.bentobox.boxed.nms.v1_21_8_R0_1_SNAPSHOT; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_21_R5.CraftWorld; - -import net.minecraft.core.BlockPosition; -import net.minecraft.world.level.block.entity.TileEntity; -import world.bentobox.boxed.nms.AbstractMetaData; - -public class GetMetaData extends AbstractMetaData { - - @Override - public String nmsData(Block block) { - Location w = block.getLocation(); - CraftWorld cw = (CraftWorld) w.getWorld(); // CraftWorld is NMS one - // for 1.13+ (we have use WorldServer) - TileEntity te = cw.getHandle().c_(new BlockPosition(w.getBlockX(), w.getBlockY(), w.getBlockZ())); - return getData(te, "getUpdatePacket", "tag"); - } - -} \ No newline at end of file diff --git a/src/main/java/world/bentobox/boxed/nms/v1_21_R0_1_SNAPSHOT/GetMetaData.java b/src/main/java/world/bentobox/boxed/nms/v1_21_R0_1_SNAPSHOT/GetMetaData.java deleted file mode 100644 index 36be817..0000000 --- a/src/main/java/world/bentobox/boxed/nms/v1_21_R0_1_SNAPSHOT/GetMetaData.java +++ /dev/null @@ -1,23 +0,0 @@ -package world.bentobox.boxed.nms.v1_21_R0_1_SNAPSHOT; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_21_R1.CraftWorld; - -import net.minecraft.core.BlockPosition; -import net.minecraft.world.level.block.entity.TileEntity; -import world.bentobox.boxed.nms.AbstractMetaData; - -public class GetMetaData extends AbstractMetaData { - - @Override - public String nmsData(Block block) { - Location w = block.getLocation(); - CraftWorld cw = (CraftWorld) w.getWorld(); // CraftWorld is NMS one - // for 1.13+ (we have use WorldServer) - TileEntity te = cw.getHandle().c_(new BlockPosition(w.getBlockX(), w.getBlockY(), w.getBlockZ())); - - return getData(te, "az_", "tag"); - } - -} \ No newline at end of file diff --git a/src/main/resources/addon.yml b/src/main/resources/addon.yml index 6c57f2a..982cc33 100755 --- a/src/main/resources/addon.yml +++ b/src/main/resources/addon.yml @@ -1,7 +1,7 @@ name: Boxed main: world.bentobox.boxed.Boxed version: ${version}${build.number} -api-version: 3.3.3 +api-version: 3.9.0 metrics: true icon: "COMPOSTER" repository: "BentoBoxWorld/Boxed" From fd4e0823a3fc37ff5e63add261aab6ffa4f1a45f Mon Sep 17 00:00:00 2001 From: tastybento Date: Sun, 26 Oct 2025 21:51:24 -0700 Subject: [PATCH 3/3] Version 3.3.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 23070eb..d1985af 100644 --- a/pom.xml +++ b/pom.xml @@ -62,7 +62,7 @@ -LOCAL - 3.2.1 + 3.3.0 BentoBoxWorld_Boxed bentobox-world