From 5dbee9aa27868c24bdd08ac25dfeb022ee4b4b2a Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Tue, 8 Apr 2025 12:53:26 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix(network):=20=E4=BF=AE=E5=A4=8D=E5=86=85?= =?UTF-8?q?=E5=AD=98=E6=B3=84=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../craftengine/bukkit/plugin/network/PacketConsumers.java | 1 + 1 file changed, 1 insertion(+) 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 d0c11d59b..eb10fbd9a 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 @@ -1100,6 +1100,7 @@ public class PacketConsumers { try { IntList intList = FastNMS.INSTANCE.field$ClientboundRemoveEntitiesPacket$entityIds(packet); for (int i = 0, size = intList.size(); i < size; i++) { + user.entityView().remove(intList.getInt(i)); List entities = user.furnitureView().remove(intList.getInt(i)); if (entities == null) continue; for (int entityId : entities) { From 7cea94971b2fe65ad07d9ff002698a9a8ba86ef2 Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Tue, 8 Apr 2025 13:40:52 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat(bukkit):=20=E6=B7=BB=E5=8A=A0=20MMOIte?= =?UTF-8?q?ms=E6=8F=92=E4=BB=B6=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bukkit/compatibility/build.gradle.kts | 4 +++ .../compatibility/item/MMOItemsProvider.java | 28 +++++++++++++++++++ .../bukkit/item/BukkitItemManager.java | 4 +++ 3 files changed, 36 insertions(+) create mode 100644 bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/MMOItemsProvider.java diff --git a/bukkit/compatibility/build.gradle.kts b/bukkit/compatibility/build.gradle.kts index 171607a61..05d1dc29f 100644 --- a/bukkit/compatibility/build.gradle.kts +++ b/bukkit/compatibility/build.gradle.kts @@ -8,6 +8,7 @@ repositories { maven("https://repo.infernalsuite.com/repository/maven-snapshots/") // slime world maven("https://repo.momirealms.net/releases/") maven("https://mvn.lumine.io/repository/maven-public/") // model engine + maven("https://nexus.phoenixdevt.fr/repository/maven-public/") // mmoitems } dependencies { @@ -28,6 +29,9 @@ dependencies { compileOnly("com.ticxo.modelengine:ModelEngine:R4.0.8") // BetterModels compileOnly("io.github.toxicity188:BetterModel:1.4.2") + // MMOItems + compileOnly("net.Indyuce:MMOItems-API:6.10-SNAPSHOT") + compileOnly("io.lumine:MythicLib-dist:1.6.2-SNAPSHOT") } java { diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/MMOItemsProvider.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/MMOItemsProvider.java new file mode 100644 index 000000000..a22ade2d0 --- /dev/null +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/MMOItemsProvider.java @@ -0,0 +1,28 @@ +package net.momirealms.craftengine.bukkit.compatibility.item; + +import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.api.Type; +import net.Indyuce.mmoitems.api.item.mmoitem.MMOItem; +import net.momirealms.craftengine.core.item.ExternalItemProvider; +import net.momirealms.craftengine.core.item.ItemBuildContext; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.Nullable; + +import java.util.Locale; + +import static java.util.Objects.requireNonNull; + +public class MMOItemsProvider implements ExternalItemProvider { + @Override + public String plugin() { + return "MMOItems"; + } + + @Override + public @Nullable ItemStack build(String id, ItemBuildContext context) { + String[] split = id.split(":", 2); + MMOItem mmoItem = MMOItems.plugin.getMMOItem(Type.get(split[0]), split[1].toUpperCase(Locale.ENGLISH)); + return mmoItem == null ? new ItemStack(Material.AIR) : requireNonNull(mmoItem.newBuilder().build()); + } +} 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 422013f93..ab17f6790 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 @@ -1,5 +1,6 @@ package net.momirealms.craftengine.bukkit.item; +import net.momirealms.craftengine.bukkit.compatibility.item.MMOItemsProvider; import net.momirealms.craftengine.bukkit.compatibility.item.NeigeItemsProvider; import net.momirealms.craftengine.bukkit.item.behavior.AxeItemBehavior; import net.momirealms.craftengine.bukkit.item.behavior.BoneMealItemBehavior; @@ -89,6 +90,9 @@ public class BukkitItemManager extends AbstractItemManager { if (this.plugin.isPluginEnabled("NeigeItems")) { registerExternalItemProvider(new NeigeItemsProvider()); } + if (this.plugin.isPluginEnabled("MMOItems")) { + registerExternalItemProvider(new MMOItemsProvider()); + } } @Override From 48ae6d1c8d3a870cd8fa0209cdd2f85a97c0f112 Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Tue, 8 Apr 2025 15:31:33 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix(bukkit):=20=E4=BC=98=E5=8C=96=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=A7=BB=E9=99=A4=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/plugin/network/PacketConsumers.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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 eb10fbd9a..229e996b2 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 @@ -1100,11 +1100,12 @@ public class PacketConsumers { try { IntList intList = FastNMS.INSTANCE.field$ClientboundRemoveEntitiesPacket$entityIds(packet); for (int i = 0, size = intList.size(); i < size; i++) { - user.entityView().remove(intList.getInt(i)); - List entities = user.furnitureView().remove(intList.getInt(i)); + int entityId = intList.getInt(i); + user.entityView().remove(entityId); + List entities = user.furnitureView().remove(entityId); if (entities == null) continue; - for (int entityId : entities) { - intList.add(entityId); + for (int entityId1 : entities) { + intList.add(entityId1); } } } catch (Exception e) { From cea6bb15abe2197ef30fd42ed7ec81afce65941b Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Tue, 8 Apr 2025 15:34:12 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix(bukkit):=20=E4=BC=98=E5=8C=96=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=A7=BB=E9=99=A4=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../craftengine/bukkit/plugin/network/PacketConsumers.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 229e996b2..f44c1ca75 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 @@ -1104,8 +1104,8 @@ public class PacketConsumers { user.entityView().remove(entityId); List entities = user.furnitureView().remove(entityId); if (entities == null) continue; - for (int entityId1 : entities) { - intList.add(entityId1); + for (int subEntityId : entities) { + intList.add(subEntityId); } } } catch (Exception e) {