package ar.com.companeros.horror.client; import ar.com.companeros.Companeros; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.ClientPlayerNetworkEvent; import net.minecraftforge.client.event.sound.PlaySoundEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; /** Preferencia del observador recibida del servidor; nunca modifica otras entidades. */ @Mod.EventBusSubscriber(modid = Companeros.ID, value = Dist.CLIENT) public final class HorrorClientSafety { private static volatile boolean enabled = true; private HorrorClientSafety() { } public static void setEnabled(boolean value) { enabled = value; } public static boolean isEnabled() { return enabled; } // Una conexión nueva recibe su propio estado, sin heredar el de otro servidor. @SubscribeEvent public static void disconnected(ClientPlayerNetworkEvent.LoggingOut event) { enabled = true; } // También cubre sonidos ambientales que otro jugador cercano haya provocado. @SubscribeEvent public static void sound(PlaySoundEvent event) { if (!enabled || event.getSound() == null) return; var id = event.getSound().getLocation(); if (id.getNamespace().equals(Companeros.ID) && id.getPath().startsWith("parasite_")) event.setSound(null); } }