zombies-utils/src/main/java/com/github/stachelbeere1248/zombiesutils/handlers/RenderPlayerHandler.java

42 lines
1.5 KiB
Java

package com.github.stachelbeere1248.zombiesutils.handlers;
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.Vec3;
import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import org.jetbrains.annotations.NotNull;
public class RenderPlayerHandler {
private boolean visible;
public RenderPlayerHandler() {
this.visible = ZombiesUtils.getInstance().getConfig().getPlayerVis();
}
@SubscribeEvent
public void onRender(RenderPlayerEvent.@NotNull Pre event) {
if (event.entityPlayer.isPlayerSleeping() || event.entityPlayer.isUser()) return;
if (inRange(event.entityPlayer.getPositionVector())) {
event.setCanceled(!visible);
}
}
private boolean inRange(@NotNull Vec3 playerOther) {
final int range = ZombiesUtils.getInstance().getConfig().getPlayerVisRange();
return playerOther.squareDistanceTo(Minecraft.getMinecraft().thePlayer.getPositionVector()) <= range * range;
}
public void togglePlayerVisibility() {
this.visible = !this.visible;
final String s;
if (this.visible) {
s = "§dPlayer Visibility §e is now §rON";
} else {
s = "§dPlayer Visibility §e is now §8OFF";
}
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
s
));
}
}