Volver al índice
src/main/java/ar/com/companeros/horror/client/HorrorClientSafety.java
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);
}
}