添加物品uuid检测

This commit is contained in:
17146 2025-06-03 01:22:29 +08:00 committed by Light_Quanta
parent 35ae784ade
commit a42d761f41
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959

View file

@ -108,6 +108,23 @@ public abstract class GunItem extends Item implements CustomRendererItem, GeoIte
return false; 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 @Override
@ParametersAreNonnullByDefault @ParametersAreNonnullByDefault
public void inventoryTick(ItemStack stack, Level level, Entity entity, int slot, boolean selected) { 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); var data = GunData.from(stack);
if (living instanceof Player player && selected) {
checkCopyGuns(stack, player);
}
if (!data.initialized()) { if (!data.initialized()) {
data.initialize(); data.initialize();
if (level.getServer() != null && entity instanceof Player player && player.isCreative()) { if (level.getServer() != null && entity instanceof Player player && player.isCreative()) {