diff --git a/src/main/java/net/mcreator/target/event/GunEventHandler.java b/src/main/java/net/mcreator/target/event/GunEventHandler.java index ca62800a8..0004a6691 100644 --- a/src/main/java/net/mcreator/target/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/target/event/GunEventHandler.java @@ -353,18 +353,18 @@ public class GunEventHandler { if (stack.is(TargetModTags.Items.OPEN_BOLT)) { if(tag.getInt("ammo") == 0) { player.getPersistentData().putInt("gun_reloading_time",(int)tag.getDouble("empty_reload_time")); - player.getPersistentData().putBoolean("is_empty_reloading",true); + stack.getOrCreateTag().putBoolean("is_empty_reloading",true); playGunEmptyReloadSounds(player); player.getPersistentData().putBoolean("start_reload",false); } else { player.getPersistentData().putInt("gun_reloading_time",(int)tag.getDouble("normal_reload_time")); - player.getPersistentData().putBoolean("is_reloading",true); + stack.getOrCreateTag().putBoolean("is_reloading",true); playGunNormalReloadSounds(player); player.getPersistentData().putBoolean("start_reload",false); } } else { player.getPersistentData().putInt("gun_reloading_time",(int)tag.getDouble("normal_reload_time")); - player.getPersistentData().putBoolean("is_reloading",true); + stack.getOrCreateTag().putBoolean("is_reloading",true); playGunNormalReloadSounds(player); player.getPersistentData().putBoolean("start_reload",false); } @@ -374,7 +374,7 @@ public class GunEventHandler { player.getPersistentData().putInt("gun_reloading_time",player.getPersistentData().getInt("gun_reloading_time") - 1); } - if (player.getPersistentData().getInt("gun_reloading_time") == 0 && (player.getPersistentData().getBoolean("is_empty_reloading") || player.getPersistentData().getBoolean("is_reloading"))) { + if (player.getPersistentData().getInt("gun_reloading_time") == 0 && (stack.getOrCreateTag().getBoolean("is_empty_reloading") || stack.getOrCreateTag().getBoolean("is_reloading"))) { if (stack.is(TargetModTags.Items.OPEN_BOLT)) { if(tag.getInt("ammo") == 0) { @@ -387,7 +387,7 @@ public class GunEventHandler { } else if (stack.is(TargetModTags.Items.RIFLE)) { GunsTool.reload(player, GunInfo.Type.RIFLE); } - player.getPersistentData().putBoolean("is_empty_reloading",false); + stack.getOrCreateTag().putBoolean("is_empty_reloading",false); } else { @@ -400,7 +400,7 @@ public class GunEventHandler { } else if (stack.is(TargetModTags.Items.RIFLE)) { GunsTool.reload(player, GunInfo.Type.RIFLE ,true); } - player.getPersistentData().putBoolean("is_reloading",false); + stack.getOrCreateTag().putBoolean("is_reloading",false); } } else { @@ -414,7 +414,7 @@ public class GunEventHandler { } else if (stack.is(TargetModTags.Items.RIFLE)) { GunsTool.reload(player, GunInfo.Type.RIFLE); } - player.getPersistentData().putBoolean("is_reloading",false); + stack.getOrCreateTag().putBoolean("is_reloading",false); } } diff --git a/src/main/java/net/mcreator/target/event/LivingEventHandler.java b/src/main/java/net/mcreator/target/event/LivingEventHandler.java index baa6fef6c..e487701d3 100644 --- a/src/main/java/net/mcreator/target/event/LivingEventHandler.java +++ b/src/main/java/net/mcreator/target/event/LivingEventHandler.java @@ -163,25 +163,24 @@ public class LivingEventHandler { if (oldStack.getItem() instanceof GunItem oldGun) { stopGunReloadSound(serverPlayer, oldGun); - } - - player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.zoom = false; - capability.zooming = false; - capability.syncPlayerVariables(player); - }); - - if (newStack.getOrCreateTag().getInt("bolt_action_time") > 0) { - newStack.getOrCreateTag().putInt("bolt_action_anim", 0); + player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.zoom = false; + capability.zooming = false; + capability.syncPlayerVariables(player); + }); + player.getPersistentData().putDouble("zoom_pos", 0); + player.getPersistentData().putDouble("zoom_animation_time", 0); + oldStack.getOrCreateTag().putBoolean("is_reloading",false); + oldStack.getOrCreateTag().putBoolean("is_empty_reloading",false); + player.getPersistentData().putInt("gun_reloading_time",0); + if (newStack.getOrCreateTag().getInt("bolt_action_time") > 0) { + newStack.getOrCreateTag().putInt("bolt_action_anim", 0); + } } } } - player.getPersistentData().putDouble("zoom_pos", 0); - player.getPersistentData().putDouble("zoom_animation_time", 0); - player.getPersistentData().putBoolean("is_reloading",false); - player.getPersistentData().putBoolean("is_empty_reloading",false); - player.getPersistentData().putInt("gun_reloading_time",0); + } } diff --git a/src/main/java/net/mcreator/target/item/gun/AK47Item.java b/src/main/java/net/mcreator/target/item/gun/AK47Item.java index a927d5738..ab206ecbf 100644 --- a/src/main/java/net/mcreator/target/item/gun/AK47Item.java +++ b/src/main/java/net/mcreator/target/item/gun/AK47Item.java @@ -93,11 +93,11 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.fire")); } - if (player.getPersistentData().getBoolean("is_empty_reloading") && player.getPersistentData().getInt("gun_reloading_time") > 0) { + if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload_empty")); } - if (player.getPersistentData().getBoolean("is_reloading") && player.getPersistentData().getInt("gun_reloading_time") > 0) { + if (stack.getOrCreateTag().getBoolean("is_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload_normal")); }