diff --git a/src/main/java/net/mcreator/target/event/LivingEventHandler.java b/src/main/java/net/mcreator/target/event/LivingEventHandler.java index bd84b7cc7..473663da9 100644 --- a/src/main/java/net/mcreator/target/event/LivingEventHandler.java +++ b/src/main/java/net/mcreator/target/event/LivingEventHandler.java @@ -144,17 +144,26 @@ public class LivingEventHandler { ItemStack oldStack = event.getFrom(); ItemStack newStack = event.getTo(); - if (player instanceof ServerPlayer serverPlayer) { - if (newStack.getItem() != oldStack.getItem() || newStack.getTag() == null || oldStack.getTag() == null || !newStack.getTag().hasUUID("gun_uuid") || !oldStack.getTag().hasUUID("gun_uuid") || !newStack.getTag().getUUID("gun_uuid").equals(oldStack.getTag().getUUID("gun_uuid")) ) { + if (oldStack.getItem() instanceof GunItem oldGun) { + stopGunReloadSound(serverPlayer, oldGun); - if (!newStack.is(TargetModTags.Items.GUN)) { + if (oldStack.getTag() == null) { + return; + } + var oldTags = oldStack.getTag(); + if (oldTags.getInt("bolt_action_time") > 0) { + oldTags.putInt("bolt_action_anim", 0); + } + oldTags.putBoolean("is_normal_reloading", false); + oldTags.putBoolean("is_empty_reloading", false); + oldTags.putInt("gun_reloading_time", 0); } if (newStack.getItem() instanceof GunItem) { @@ -162,19 +171,19 @@ public class LivingEventHandler { if (newStack.getOrCreateTag().getInt("bolt_action_time") > 0) { newStack.getOrCreateTag().putInt("bolt_action_anim", 0); } - newStack.getOrCreateTag().putBoolean("is_normal_reloading",false); - newStack.getOrCreateTag().putBoolean("is_empty_reloading",false); - newStack.getOrCreateTag().putInt("gun_reloading_time",0); - } + newStack.getOrCreateTag().putBoolean("is_normal_reloading", false); + newStack.getOrCreateTag().putBoolean("is_empty_reloading", false); + newStack.getOrCreateTag().putInt("gun_reloading_time", 0); - if (oldStack.getItem() instanceof GunItem oldGun) { - stopGunReloadSound(serverPlayer, oldGun); - if (oldStack.getOrCreateTag().getInt("bolt_action_time") > 0) { - oldStack.getOrCreateTag().putInt("bolt_action_anim", 0); + double weight = newStack.getOrCreateTag().getDouble("weight"); + + if (weight == 0) { + player.getCooldowns().addCooldown(newStack.getItem(), 12); + } else if (weight == 1) { + player.getCooldowns().addCooldown(newStack.getItem(), 17); + } else if (weight == 2) { + player.getCooldowns().addCooldown(newStack.getItem(), 30); } - oldStack.getOrCreateTag().putBoolean("is_normal_reloading",false); - oldStack.getOrCreateTag().putBoolean("is_empty_reloading",false); - oldStack.getOrCreateTag().putInt("gun_reloading_time",0); } } } diff --git a/src/main/java/net/mcreator/target/item/gun/GunItem.java b/src/main/java/net/mcreator/target/item/gun/GunItem.java index 6c870e6d4..4e4909277 100644 --- a/src/main/java/net/mcreator/target/item/gun/GunItem.java +++ b/src/main/java/net/mcreator/target/item/gun/GunItem.java @@ -8,7 +8,6 @@ import net.mcreator.target.tools.EnchantmentCategoryTool; import net.mcreator.target.tools.GunsTool; import net.mcreator.target.tools.ItemNBTTool; import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.entity.Entity; @@ -59,18 +58,6 @@ public abstract class GunItem extends Item { capability.syncPlayerVariables(entity); }); - if (entity instanceof Player player) { - double weight = itemstack.getOrCreateTag().getDouble("weight"); - - if (weight == 0) { - player.getCooldowns().addCooldown(itemstack.getItem(), 12); - } else if (weight == 1) { - player.getCooldowns().addCooldown(itemstack.getItem(), 17); - } else if (weight == 2) { - player.getCooldowns().addCooldown(itemstack.getItem(), 30); - } - } - if (itemstack.getItem() == TargetModItems.RPG.get() && itemstack.getOrCreateTag().getInt("ammo") == 0) { itemstack.getOrCreateTag().putDouble("empty", 1); }