From 6cd3473dab59945674e6711850c6795172afe317 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Fri, 10 May 2024 13:48:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=9F=B3=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../target/event/GunEventHandler.java | 31 +++---------------- 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/src/main/java/net/mcreator/target/event/GunEventHandler.java b/src/main/java/net/mcreator/target/event/GunEventHandler.java index 18c0be3b1..fc75cf9a6 100644 --- a/src/main/java/net/mcreator/target/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/target/event/GunEventHandler.java @@ -112,7 +112,7 @@ public class GunEventHandler { if (player.getPersistentData().getDouble("firing") == 1 && stack.getOrCreateTag().getDouble("reloading") == 0 && stack.getOrCreateTag().getDouble("ammo") > 0 - && !stack.getOrCreateTag().getBoolean("shootCooldown") + && !player.getCooldowns().isOnCooldown(stack.getItem()) && mode != 1 && !player.getCooldowns().isOnCooldown(stack.getItem())) { @@ -135,34 +135,13 @@ public class GunEventHandler { stack.getOrCreateTag().putDouble("fireanim", 2); stack.getOrCreateTag().putDouble("empty", 1); - double tick = (20 * 60 / ItemNBTTool.getDouble(stack, "rpm", 60)); + int cooldown = (int) Math.ceil(20 * 60 / ItemNBTTool.getDouble(stack, "rpm", 60)); + player.getCooldowns().addCooldown(stack.getItem(), cooldown); - if (mode == 0) { - player.getCooldowns().addCooldown(stack.getItem(), (int) tick); - for (int index0 = 0; index0 < (int) stack.getOrCreateTag().getDouble("projectileamount"); index0++) { - gunShoot(player); - } + for (int index0 = 0; index0 < (int) stack.getOrCreateTag().getDouble("projectileamount"); index0++) { + gunShoot(player); playGunSounds(player); - } else { - double tickCount = player.getPersistentData().getDouble("target_tick_count"); - ++tickCount; - - if (tickCount >= tick) { - player.getCooldowns().addCooldown(stack.getItem(), (int) tickCount); - } - - while (tickCount >= tick) { - tickCount -= tick; - for (int index0 = 0; index0 < (int) stack.getOrCreateTag().getDouble("projectileamount"); index0++) { - gunShoot(player); - } - } - playGunSounds(player); - - player.getPersistentData().putDouble("target_tick_count", tickCount); } - } else { - player.getPersistentData().putDouble("target_tick_count", 0); } } }