42 lines
1.5 KiB
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
|
|
));
|
|
}
|
|
}
|