123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- package me.km.overrides;
- import com.mojang.authlib.GameProfile;
- import java.util.HashMap;
- import me.km.Server;
- import net.minecraft.entity.player.ServerPlayerEntity;
- import net.minecraft.network.play.server.SPlayerListItemPacket;
- import net.minecraft.server.MinecraftServer;
- import net.minecraft.server.management.PlayerInteractionManager;
- import net.minecraft.util.text.ITextComponent;
- import net.minecraft.util.text.StringTextComponent;
- import net.minecraft.world.server.ServerWorld;
- public class ModEntityPlayerMP extends ServerPlayerEntity
- {
- private final PlayerScoreboard board;
- private int id = -1;
- private final HashMap<String, Integer> timedData;
- private final HashMap<String, Object> data;
- private StringTextComponent tabDisplayName = null;
-
- public ModEntityPlayerMP(MinecraftServer ms, ServerWorld w, GameProfile gp, PlayerInteractionManager pim)
- {
- super(ms, w, gp, pim);
- this.board = new PlayerScoreboard();
- this.timedData = new HashMap();
- this.data = new HashMap();
- }
- public PlayerScoreboard getScoreboard()
- {
- return board;
- }
-
- public ModEntityPlayerMP(MinecraftServer ms, ServerWorld w, GameProfile gp, PlayerInteractionManager pim, ModEntityPlayerMP old)
- {
- super(ms, w, gp, pim);
- this.board = old.board;
- this.timedData = old.timedData;
- this.data = old.data;
- this.id = old.id;
- }
- @Override
- public void tick()
- {
- super.tick();
- board.update(this);
- tickData();
- }
-
- public void setTabListDisplayName(String name)
- {
- tabDisplayName = new StringTextComponent(name);
- server.getPlayerList().sendPacketToAllPlayers(
- new SPlayerListItemPacket(SPlayerListItemPacket.Action.UPDATE_DISPLAY_NAME, this));
- }
- @Override
- public ITextComponent getTabListDisplayName()
- {
- return tabDisplayName;
- }
-
- public void setId(int id)
- {
- this.id = id;
- }
-
- public int getId()
- {
- return id;
- }
-
- private void tickData()
- {
- timedData.entrySet().removeIf(entry ->
- {
- int time = entry.getValue() - 1;
- if(time <= 0)
- {
- if(time == 0)
- {
- Server.scriptEvents.onPlayerDataTick(this, entry.getKey());
- }
- return true;
- }
- entry.setValue(time);
- return false;
- });
- }
-
- public void setVar(String varname, Object value)
- {
- data.put(varname, value);
- }
-
- public Object getVar(String varname)
- {
- return data.get(varname);
- }
-
- public void setTimer(String varname, int time)
- {
- timedData.put(varname, time);
- }
-
- public int getTimer(String varname)
- {
- return timedData.getOrDefault(varname, -1);
- }
-
- public void clearData()
- {
- timedData.clear();
- data.clear();
- }
- @Override
- protected int getPermissionLevel()
- {
- return 999;
- }
- }
|