diff --git a/src/main/java/com/aaronhowser/mods/realisticsuffocation/RealisticSuffocation.java b/src/main/java/com/aaronhowser/mods/realisticsuffocation/RealisticSuffocation.java index f486f36..b22a4a7 100644 --- a/src/main/java/com/aaronhowser/mods/realisticsuffocation/RealisticSuffocation.java +++ b/src/main/java/com/aaronhowser/mods/realisticsuffocation/RealisticSuffocation.java @@ -1,45 +1,34 @@ package com.aaronhowser.mods.realisticsuffocation; +import com.aaronhowser.mods.realisticsuffocation.sounds.ModSounds; import com.mojang.logging.LogUtils; -import net.minecraft.client.Minecraft; +import net.minecraft.world.damagesource.DamageTypes; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.ModContainer; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.common.Mod; -import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; -import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; -import net.neoforged.neoforge.common.NeoForge; -import net.neoforged.neoforge.event.server.ServerStartingEvent; +import net.neoforged.neoforge.event.entity.living.LivingDamageEvent; import org.slf4j.Logger; @Mod(RealisticSuffocation.MODID) public class RealisticSuffocation { + public static final String MODID = "realisticsuffocation"; private static final Logger LOGGER = LogUtils.getLogger(); public RealisticSuffocation(IEventBus modEventBus, ModContainer modContainer) { - modEventBus.addListener(this::commonSetup); - - NeoForge.EVENT_BUS.register(this); - } - - private void commonSetup(final FMLCommonSetupEvent event) { - LOGGER.info("HELLO FROM COMMON SETUP"); - } - - @SubscribeEvent - public void onServerStarting(ServerStartingEvent event) { - LOGGER.info("HELLO from server starting"); + ModSounds.register(modEventBus); } - @EventBusSubscriber(modid = MODID, bus = EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) - public static class ClientModEvents { + @EventBusSubscriber(modid = MODID, value = Dist.CLIENT) + public static class CommonEvents { @SubscribeEvent - public static void onClientSetup(FMLClientSetupEvent event) { - LOGGER.info("HELLO FROM CLIENT SETUP"); - LOGGER.info("MINECRAFT NAME >> {}", Minecraft.getInstance().getUser().getName()); + public static void onLivingDamage(LivingDamageEvent event) { + if (!event.getSource().is(DamageTypes.IN_WALL)) { +// event.getEntity().playSound(ModSounds.RAGDOLL); + } } } } diff --git a/src/main/java/com/aaronhowser/mods/realisticsuffocation/sounds/ModSounds.java b/src/main/java/com/aaronhowser/mods/realisticsuffocation/sounds/ModSounds.java new file mode 100644 index 0000000..0dd4e97 --- /dev/null +++ b/src/main/java/com/aaronhowser/mods/realisticsuffocation/sounds/ModSounds.java @@ -0,0 +1,35 @@ +package com.aaronhowser.mods.realisticsuffocation.sounds; + +import com.aaronhowser.mods.realisticsuffocation.RealisticSuffocation; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.sounds.SoundEvent; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class ModSounds { + + public static DeferredRegister SOUND_EVENTS = + DeferredRegister.create( + BuiltInRegistries.SOUND_EVENT, + RealisticSuffocation.MODID); + + public SoundEvent RAGDOLL = registerSoundEvent("ragdoll").get(); + + @SuppressWarnings("SameParameterValue") + private DeferredHolder registerSoundEvent(String name) { + return SOUND_EVENTS.register( + name, + () -> SoundEvent.createFixedRangeEvent( + new ResourceLocation("realisticsuffocation", name), + 1f + ) + ); + } + + public static void register(IEventBus eventBus) { + SOUND_EVENTS.register(eventBus); + } + +} diff --git a/src/main/resources/assets/realisticsuffocation/sounds.json b/src/main/resources/assets/realisticsuffocation/sounds.json new file mode 100644 index 0000000..716b8e8 --- /dev/null +++ b/src/main/resources/assets/realisticsuffocation/sounds.json @@ -0,0 +1,8 @@ +{ + "ragdoll": { + "sounds": [ + "realisticsuffocation:ragdoll" + ], + "subtitle": "subtitle.realisticsuffocation.ragdoll" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/realisticsuffocation/sounds/ragdoll.ogg b/src/main/resources/assets/realisticsuffocation/sounds/ragdoll.ogg new file mode 100644 index 0000000..0a2dd1c Binary files /dev/null and b/src/main/resources/assets/realisticsuffocation/sounds/ragdoll.ogg differ