From a42d761f4164800bef7498137942f9a8f251eafc Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Tue, 3 Jun 2025 01:22:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=89=A9=E5=93=81uuid?= =?UTF-8?q?=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/item/gun/GunItem.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java index a50cd799e..6616232f0 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java @@ -108,6 +108,23 @@ public abstract class GunItem extends Item implements CustomRendererItem, GeoIte return false; } + private void checkCopyGuns(ItemStack stack, Player player) { + var data = GunData.from(stack); + if (!data.initialized()) return; + var uuid = data.data.getUUID("UUID"); + + for (var item : player.getInventory().items) { + if (item.equals(stack)) continue; + if (item.getItem() instanceof GunItem) { + var itemData = GunData.from(item); + if (itemData.data.getUUID("UUID").equals(uuid)) { + data.data.putUUID("UUID", UUID.randomUUID()); + return; + } + } + } + } + @Override @ParametersAreNonnullByDefault public void inventoryTick(ItemStack stack, Level level, Entity entity, int slot, boolean selected) { @@ -119,6 +136,10 @@ public abstract class GunItem extends Item implements CustomRendererItem, GeoIte var data = GunData.from(stack); + if (living instanceof Player player && selected) { + checkCopyGuns(stack, player); + } + if (!data.initialized()) { data.initialize(); if (level.getServer() != null && entity instanceof Player player && player.isCreative()) {