diff --git a/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java b/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java index 6385492d4..9e359d877 100644 --- a/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java +++ b/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java @@ -140,9 +140,34 @@ public class LivingEntityEventHandler { if (oldStack.getItem() instanceof GunItem oldGun && player.level() instanceof ServerLevel serverLevel) { if (newStack.getItem() != oldStack.getItem()) { stopGunReloadSound(serverLevel, oldGun); + + newStack.getOrCreateTag().putDouble("drawtime", 0); + player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.zoom = false; + capability.syncPlayerVariables(player); + }); + player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.zooming = false; + capability.syncPlayerVariables(player); + }); + player.getPersistentData().putDouble("zoompos", 0); + player.getPersistentData().putDouble("zoom_time", 0); + } else if (!newStack.getOrCreateTag().hasUUID("gun_uuid") || !oldStack.getOrCreateTag().hasUUID("gun_uuid") || !newStack.getOrCreateTag().getUUID("gun_uuid").equals(oldStack.getOrCreateTag().getUUID("gun_uuid"))) { stopGunReloadSound(serverLevel, oldGun); + + newStack.getOrCreateTag().putDouble("drawtime", 0); + player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.zoom = false; + capability.syncPlayerVariables(player); + }); + player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.zooming = false; + capability.syncPlayerVariables(player); + }); + player.getPersistentData().putDouble("zoompos", 0); + player.getPersistentData().putDouble("zoom_time", 0); } } } diff --git a/src/main/java/net/mcreator/target/item/gun/VectorItem.java b/src/main/java/net/mcreator/target/item/gun/VectorItem.java index 0656aa0ab..9165a7c56 100644 --- a/src/main/java/net/mcreator/target/item/gun/VectorItem.java +++ b/src/main/java/net/mcreator/target/item/gun/VectorItem.java @@ -17,8 +17,12 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import net.minecraft.core.Holder; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.game.ClientboundSoundPacket; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; @@ -34,6 +38,7 @@ import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.event.TickEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.registries.ForgeRegistries; import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animation.AnimatableManager; @@ -170,7 +175,11 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem { if (tag.getDouble("reloading") == 1 && tag.getDouble("ammo") == 0) { if (tag.getDouble("reloadtime") == 61) { entity.getPersistentData().putDouble("id", id); - entity.level().playSound(null, entity.blockPosition(), TargetModSounds.VECTOR_RELOAD_EMPTY.get(), SoundSource.PLAYERS, 100, 1); + if (entity instanceof ServerPlayer serverPlayer) { + serverPlayer.connection.send(new ClientboundSoundPacket(new Holder.Direct<>(ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:vector_reload_empty"))), + SoundSource.PLAYERS, serverPlayer.getX(), serverPlayer.getY(), serverPlayer.getZ(), 10f, 1f, serverPlayer.level().random.nextLong())); + } +// entity.level().playSound(null, entity.blockPosition(), TargetModSounds.VECTOR_RELOAD_EMPTY.get(), SoundSource.PLAYERS, 100, 1); } if (mainHandItem.getItem() == itemStack.getItem() && mainHandItem.getOrCreateTag().getDouble("id") == id @@ -187,7 +196,11 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem { } else if (tag.getDouble("reloading") == 1 && tag.getDouble("ammo") > 0) { if (tag.getDouble("reloadtime") == 47) { entity.getPersistentData().putDouble("id", id); - entity.level().playSound(null, entity.blockPosition(), TargetModSounds.VECTOR_RELOAD_NORMAL.get(), SoundSource.PLAYERS, 100, 1); + if (entity instanceof ServerPlayer serverPlayer) { + serverPlayer.connection.send(new ClientboundSoundPacket(new Holder.Direct<>(ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:vector_reload_normal"))), + SoundSource.PLAYERS, serverPlayer.getX(), serverPlayer.getY(), serverPlayer.getZ(), 10f, 1f, serverPlayer.level().random.nextLong())); + } +// entity.level().playSound(null, entity.blockPosition(), TargetModSounds.VECTOR_RELOAD_NORMAL.get(), SoundSource.PLAYERS, 100, 1); } if (mainHandItem.getItem() == itemStack.getItem() && mainHandItem.getOrCreateTag().getDouble("id") == id diff --git a/src/main/java/net/mcreator/target/network/FireModeMessage.java b/src/main/java/net/mcreator/target/network/FireModeMessage.java index 5db88ea47..8e671be0d 100644 --- a/src/main/java/net/mcreator/target/network/FireModeMessage.java +++ b/src/main/java/net/mcreator/target/network/FireModeMessage.java @@ -3,9 +3,14 @@ package net.mcreator.target.network; import net.mcreator.target.TargetMod; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModSounds; +import net.minecraft.core.Holder; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.game.ClientboundSoundPacket; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; import net.minecraft.util.RandomSource; @@ -16,6 +21,7 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.network.NetworkEvent; +import net.minecraftforge.registries.ForgeRegistries; import java.util.function.Supplier; @@ -63,8 +69,10 @@ public class FireModeMessage { default -> ""; }; - player.displayClientMessage(Component.literal(text), true); - player.level().playSound(null, player.blockPosition(), TargetModSounds.FIRERATE.get(), SoundSource.PLAYERS, 10, 1); + if (player instanceof ServerPlayer serverPlayer) { + serverPlayer.connection.send(new ClientboundSoundPacket(new Holder.Direct<>(ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:firerate"))), + SoundSource.PLAYERS, serverPlayer.getX(), serverPlayer.getY(), serverPlayer.getZ(), 1f, 1f, serverPlayer.level().random.nextLong())); + } tag.putDouble("firemode", mode); tag.putDouble("cg", 10); diff --git a/src/main/java/net/mcreator/target/procedures/WeaponDrawLightProcedure.java b/src/main/java/net/mcreator/target/procedures/WeaponDrawLightProcedure.java index 5ad75db21..99b4a7272 100644 --- a/src/main/java/net/mcreator/target/procedures/WeaponDrawLightProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/WeaponDrawLightProcedure.java @@ -10,14 +10,7 @@ public class WeaponDrawLightProcedure { public static void execute(Entity entity, ItemStack itemstack) { if (entity == null) return; - if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == itemstack.getItem()) { - if (itemstack.getOrCreateTag().getDouble("draw") < 2) { - itemstack.getOrCreateTag().putDouble("draw", (itemstack.getOrCreateTag().getDouble("draw") + 1)); - } - } else { - itemstack.getOrCreateTag().putDouble("draw", 0); - } - if (itemstack.getOrCreateTag().getDouble("draw") == 1) { + if (itemstack.getOrCreateTag().getDouble("drawtime") == 1) { { boolean _setval = false; entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { @@ -35,8 +28,6 @@ public class WeaponDrawLightProcedure { if (itemstack.getOrCreateTag().getDouble("drawtime") < 11) { itemstack.getOrCreateTag().putDouble("drawtime", (itemstack.getOrCreateTag().getDouble("drawtime") + 1)); } - } else { - itemstack.getOrCreateTag().putDouble("drawtime", 0); } } } diff --git a/src/main/java/net/mcreator/target/procedures/WeaponDrawProcedure.java b/src/main/java/net/mcreator/target/procedures/WeaponDrawProcedure.java index c8d16e3aa..d860d6648 100644 --- a/src/main/java/net/mcreator/target/procedures/WeaponDrawProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/WeaponDrawProcedure.java @@ -14,14 +14,8 @@ public class WeaponDrawProcedure { if (entity == null) return; CompoundTag tag = itemStack.getOrCreateTag(); Item mainHandItem = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem(); - if (mainHandItem == itemStack.getItem()) { - if (tag.getDouble("draw") < 2) { - tag.putDouble("draw", (tag.getDouble("draw") + 1)); - } - } else { - tag.putDouble("draw", 0); - } - if (tag.getDouble("draw") == 1) { + + if (tag.getDouble("drawtime") == 1) { entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { capability.zooming = false; capability.syncPlayerVariables(entity); @@ -39,8 +33,6 @@ public class WeaponDrawProcedure { if (tag.getDouble("drawtime") < 16) { tag.putDouble("drawtime", (tag.getDouble("drawtime") + 1)); } - } else { - tag.putDouble("drawtime", 0); } if (tag.getDouble("fireanim") > 0) { tag.putDouble("fireanim", (tag.getDouble("fireanim") - 1)); diff --git a/src/main/java/net/mcreator/target/procedures/WeapondrawhaveyProcedure.java b/src/main/java/net/mcreator/target/procedures/WeapondrawhaveyProcedure.java index 126b85fc2..58ce3489c 100644 --- a/src/main/java/net/mcreator/target/procedures/WeapondrawhaveyProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/WeapondrawhaveyProcedure.java @@ -12,14 +12,7 @@ public class WeapondrawhaveyProcedure { public static void execute(Entity entity, ItemStack itemstack) { if (entity == null) return; - if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == itemstack.getItem()) { - if (itemstack.getOrCreateTag().getDouble("draw") < 2) { - itemstack.getOrCreateTag().putDouble("draw", (itemstack.getOrCreateTag().getDouble("draw") + 1)); - } - } else { - itemstack.getOrCreateTag().putDouble("draw", 0); - } - if (itemstack.getOrCreateTag().getDouble("draw") == 1) { + if (itemstack.getOrCreateTag().getDouble("drawtime") == 1) { { boolean _setval = false; entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { @@ -37,8 +30,6 @@ public class WeapondrawhaveyProcedure { if (itemstack.getOrCreateTag().getDouble("drawtime") < 29) { itemstack.getOrCreateTag().putDouble("drawtime", (itemstack.getOrCreateTag().getDouble("drawtime") + 1)); } - } else { - itemstack.getOrCreateTag().putDouble("drawtime", 0); } if (itemstack.getOrCreateTag().getDouble("fireanim") > 0) { itemstack.getOrCreateTag().putDouble("fireanim", (itemstack.getOrCreateTag().getDouble("fireanim") - 1)); diff --git a/src/main/resources/assets/target/sounds/devotion/devotion_far.ogg b/src/main/resources/assets/target/sounds/devotion/devotion_far.ogg index b86167096..c02d207c5 100644 Binary files a/src/main/resources/assets/target/sounds/devotion/devotion_far.ogg and b/src/main/resources/assets/target/sounds/devotion/devotion_far.ogg differ diff --git a/src/main/resources/assets/target/sounds/devotion/devotion_fire_3p.ogg b/src/main/resources/assets/target/sounds/devotion/devotion_fire_3p.ogg index 2f4b1d354..cf7d432f7 100644 Binary files a/src/main/resources/assets/target/sounds/devotion/devotion_fire_3p.ogg and b/src/main/resources/assets/target/sounds/devotion/devotion_fire_3p.ogg differ diff --git a/src/main/resources/assets/target/sounds/devotion/devotion_veryfar.ogg b/src/main/resources/assets/target/sounds/devotion/devotion_veryfar.ogg index 917dc3d27..6910e865e 100644 Binary files a/src/main/resources/assets/target/sounds/devotion/devotion_veryfar.ogg and b/src/main/resources/assets/target/sounds/devotion/devotion_veryfar.ogg differ diff --git a/src/main/resources/assets/target/sounds/m_60/m_60_far.ogg b/src/main/resources/assets/target/sounds/m_60/m_60_far.ogg index edd4ccf64..cc7a3f967 100644 Binary files a/src/main/resources/assets/target/sounds/m_60/m_60_far.ogg and b/src/main/resources/assets/target/sounds/m_60/m_60_far.ogg differ diff --git a/src/main/resources/assets/target/sounds/m_60/m_60_veryfar.ogg b/src/main/resources/assets/target/sounds/m_60/m_60_veryfar.ogg index f5e7b001d..667019f49 100644 Binary files a/src/main/resources/assets/target/sounds/m_60/m_60_veryfar.ogg and b/src/main/resources/assets/target/sounds/m_60/m_60_veryfar.ogg differ diff --git a/src/main/resources/assets/target/sounds/m_870/m_870_far.ogg b/src/main/resources/assets/target/sounds/m_870/m_870_far.ogg index 39f111b10..0f5ea343a 100644 Binary files a/src/main/resources/assets/target/sounds/m_870/m_870_far.ogg and b/src/main/resources/assets/target/sounds/m_870/m_870_far.ogg differ diff --git a/src/main/resources/assets/target/sounds/m_870/m_870_veryfar.ogg b/src/main/resources/assets/target/sounds/m_870/m_870_veryfar.ogg index 90abe7a17..59b74bdc7 100644 Binary files a/src/main/resources/assets/target/sounds/m_870/m_870_veryfar.ogg and b/src/main/resources/assets/target/sounds/m_870/m_870_veryfar.ogg differ diff --git a/src/main/resources/assets/target/sounds/marlin/marlin_far.ogg b/src/main/resources/assets/target/sounds/marlin/marlin_far.ogg index a568f1599..c56cf90df 100644 Binary files a/src/main/resources/assets/target/sounds/marlin/marlin_far.ogg and b/src/main/resources/assets/target/sounds/marlin/marlin_far.ogg differ diff --git a/src/main/resources/assets/target/sounds/marlin/marlin_veryfar.ogg b/src/main/resources/assets/target/sounds/marlin/marlin_veryfar.ogg index 75081714f..79ee55608 100644 Binary files a/src/main/resources/assets/target/sounds/marlin/marlin_veryfar.ogg and b/src/main/resources/assets/target/sounds/marlin/marlin_veryfar.ogg differ diff --git a/src/main/resources/assets/target/sounds/minigun/minigun_far.ogg b/src/main/resources/assets/target/sounds/minigun/minigun_far.ogg index b436f1e56..338ead757 100644 Binary files a/src/main/resources/assets/target/sounds/minigun/minigun_far.ogg and b/src/main/resources/assets/target/sounds/minigun/minigun_far.ogg differ diff --git a/src/main/resources/assets/target/sounds/minigun/minigun_veryfar.ogg b/src/main/resources/assets/target/sounds/minigun/minigun_veryfar.ogg index 4cb0db6f7..4ec61ba71 100644 Binary files a/src/main/resources/assets/target/sounds/minigun/minigun_veryfar.ogg and b/src/main/resources/assets/target/sounds/minigun/minigun_veryfar.ogg differ diff --git a/src/main/resources/assets/target/sounds/mk_14/mk_14_far.ogg b/src/main/resources/assets/target/sounds/mk_14/mk_14_far.ogg index cc3210501..0482192f0 100644 Binary files a/src/main/resources/assets/target/sounds/mk_14/mk_14_far.ogg and b/src/main/resources/assets/target/sounds/mk_14/mk_14_far.ogg differ diff --git a/src/main/resources/assets/target/sounds/mk_14/mk_14_veryfar.ogg b/src/main/resources/assets/target/sounds/mk_14/mk_14_veryfar.ogg index bf9cf7383..9aa7bb203 100644 Binary files a/src/main/resources/assets/target/sounds/mk_14/mk_14_veryfar.ogg and b/src/main/resources/assets/target/sounds/mk_14/mk_14_veryfar.ogg differ