From 4c5e084edcb2cc40322001b44e54696e3285adb7 Mon Sep 17 00:00:00 2001 From: johni0702 Date: Mon, 1 Jun 2015 14:35:34 +0200 Subject: [PATCH] Use UUIDs instead of entity ids for storing invisible players --- .../replaymod/gui/GuiPlayerOverview.java | 2 +- .../replaymod/holders/PlayerVisibility.java | 11 +++++---- .../replaymod/registry/PlayerHandler.java | 23 ++++++++----------- .../renderer/InvisibilityRender.java | 2 +- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/main/java/eu/crushedpixel/replaymod/gui/GuiPlayerOverview.java b/src/main/java/eu/crushedpixel/replaymod/gui/GuiPlayerOverview.java index 88951334..2954efdd 100755 --- a/src/main/java/eu/crushedpixel/replaymod/gui/GuiPlayerOverview.java +++ b/src/main/java/eu/crushedpixel/replaymod/gui/GuiPlayerOverview.java @@ -237,7 +237,7 @@ public class GuiPlayerOverview extends GuiScreen implements GuiReplayOverlay.NoO checkBoxes.add(new GuiCheckBox(checkBoxes.size(), (int)(this.width*0.7)-5, l2+3, "", true)); buttonList.add(checkBoxes.get(checkBoxes.size() - 1)); } - checkBoxes.get(fitting).setIsChecked(!PlayerHandler.isHidden(p.first().getEntityId())); + checkBoxes.get(fitting).setIsChecked(!PlayerHandler.isHidden(p.first().getUniqueID())); l2 += 16 + 5; fitting++; diff --git a/src/main/java/eu/crushedpixel/replaymod/holders/PlayerVisibility.java b/src/main/java/eu/crushedpixel/replaymod/holders/PlayerVisibility.java index 6c46f23d..5c564293 100644 --- a/src/main/java/eu/crushedpixel/replaymod/holders/PlayerVisibility.java +++ b/src/main/java/eu/crushedpixel/replaymod/holders/PlayerVisibility.java @@ -1,16 +1,17 @@ package eu.crushedpixel.replaymod.holders; -import java.util.List; +import java.util.Collection; +import java.util.UUID; public class PlayerVisibility { - public PlayerVisibility(List hidden) { - this.hidden = hidden.toArray(new Integer[hidden.size()]); + public PlayerVisibility(Collection hidden) { + this.hidden = hidden.toArray(new UUID[hidden.size()]); } - private Integer[] hidden; + private UUID[] hidden; - public Integer[] getHiddenPlayers() { + public UUID[] getHiddenPlayers() { return hidden; } diff --git a/src/main/java/eu/crushedpixel/replaymod/registry/PlayerHandler.java b/src/main/java/eu/crushedpixel/replaymod/registry/PlayerHandler.java index 6bd71295..44acc786 100755 --- a/src/main/java/eu/crushedpixel/replaymod/registry/PlayerHandler.java +++ b/src/main/java/eu/crushedpixel/replaymod/registry/PlayerHandler.java @@ -8,8 +8,7 @@ import eu.crushedpixel.replaymod.replay.ReplayHandler; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; -import java.util.ArrayList; -import java.util.List; +import java.util.*; public class PlayerHandler { @@ -23,15 +22,15 @@ public class PlayerHandler { } }; - private static List hidden = new ArrayList(); + private static Set hidden = new HashSet(); public static void hidePlayer(EntityPlayer player) { - hidden.remove((Integer) player.getEntityId()); - hidden.add(player.getEntityId()); + hidden.remove(player.getUniqueID()); + hidden.add(player.getUniqueID()); } public static void showPlayer(EntityPlayer player) { - hidden.remove((Integer) player.getEntityId()); + hidden.remove(player.getUniqueID()); } public static void setIsVisible(EntityPlayer player, boolean visible) { @@ -43,24 +42,22 @@ public class PlayerHandler { resetHiddenPlayers(); if(visibility != null) { GuiPlayerOverview.defaultSave = true; - for(int i : visibility.getHiddenPlayers()) { - hidden.add(i); - } + Collections.addAll(hidden, visibility.getHiddenPlayers()); } else { GuiPlayerOverview.defaultSave = false; } } - public static List getHiddenPlayers() { + public static Set getHiddenPlayers() { return hidden; } - public static boolean isHidden(int id) { - return hidden.contains(id); + public static boolean isHidden(UUID uuid) { + return hidden.contains(uuid); } public static void resetHiddenPlayers() { - hidden = new ArrayList(); + hidden.clear(); } public static void openPlayerOverview() { diff --git a/src/main/java/eu/crushedpixel/replaymod/renderer/InvisibilityRender.java b/src/main/java/eu/crushedpixel/replaymod/renderer/InvisibilityRender.java index d5558b84..a61dd5af 100644 --- a/src/main/java/eu/crushedpixel/replaymod/renderer/InvisibilityRender.java +++ b/src/main/java/eu/crushedpixel/replaymod/renderer/InvisibilityRender.java @@ -20,7 +20,7 @@ public class InvisibilityRender extends RenderPlayer { @Override public boolean shouldRender(Entity entity, ICamera camera, double camX, double camY, double camZ) { - if(PlayerHandler.isHidden(entity.getEntityId()) || + if(PlayerHandler.isHidden(entity.getUniqueID()) || (ReplayHandler.isInReplay() && entity == Minecraft.getMinecraft().thePlayer)) return false; return super.shouldRender(entity, camera, camX, camY, camZ); }