添加物品uuid检测
This commit is contained in:
parent
35ae784ade
commit
a42d761f41
1 changed files with 21 additions and 0 deletions
|
@ -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()) {
|
||||
|
|
Loading…
Add table
Reference in a new issue