Use UUIDs instead of entity ids for storing invisible players

This commit is contained in:
johni0702
2015-06-01 14:35:34 +02:00
parent 2918e163d2
commit 4c5e084edc
4 changed files with 18 additions and 20 deletions

View File

@@ -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)); checkBoxes.add(new GuiCheckBox(checkBoxes.size(), (int)(this.width*0.7)-5, l2+3, "", true));
buttonList.add(checkBoxes.get(checkBoxes.size() - 1)); 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; l2 += 16 + 5;
fitting++; fitting++;

View File

@@ -1,16 +1,17 @@
package eu.crushedpixel.replaymod.holders; package eu.crushedpixel.replaymod.holders;
import java.util.List; import java.util.Collection;
import java.util.UUID;
public class PlayerVisibility { public class PlayerVisibility {
public PlayerVisibility(List<Integer> hidden) { public PlayerVisibility(Collection<UUID> hidden) {
this.hidden = hidden.toArray(new Integer[hidden.size()]); this.hidden = hidden.toArray(new UUID[hidden.size()]);
} }
private Integer[] hidden; private UUID[] hidden;
public Integer[] getHiddenPlayers() { public UUID[] getHiddenPlayers() {
return hidden; return hidden;
} }

View File

@@ -8,8 +8,7 @@ import eu.crushedpixel.replaymod.replay.ReplayHandler;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import java.util.ArrayList; import java.util.*;
import java.util.List;
public class PlayerHandler { public class PlayerHandler {
@@ -23,15 +22,15 @@ public class PlayerHandler {
} }
}; };
private static List<Integer> hidden = new ArrayList<Integer>(); private static Set<UUID> hidden = new HashSet<UUID>();
public static void hidePlayer(EntityPlayer player) { public static void hidePlayer(EntityPlayer player) {
hidden.remove((Integer) player.getEntityId()); hidden.remove(player.getUniqueID());
hidden.add(player.getEntityId()); hidden.add(player.getUniqueID());
} }
public static void showPlayer(EntityPlayer player) { public static void showPlayer(EntityPlayer player) {
hidden.remove((Integer) player.getEntityId()); hidden.remove(player.getUniqueID());
} }
public static void setIsVisible(EntityPlayer player, boolean visible) { public static void setIsVisible(EntityPlayer player, boolean visible) {
@@ -43,24 +42,22 @@ public class PlayerHandler {
resetHiddenPlayers(); resetHiddenPlayers();
if(visibility != null) { if(visibility != null) {
GuiPlayerOverview.defaultSave = true; GuiPlayerOverview.defaultSave = true;
for(int i : visibility.getHiddenPlayers()) { Collections.addAll(hidden, visibility.getHiddenPlayers());
hidden.add(i);
}
} else { } else {
GuiPlayerOverview.defaultSave = false; GuiPlayerOverview.defaultSave = false;
} }
} }
public static List<Integer> getHiddenPlayers() { public static Set<UUID> getHiddenPlayers() {
return hidden; return hidden;
} }
public static boolean isHidden(int id) { public static boolean isHidden(UUID uuid) {
return hidden.contains(id); return hidden.contains(uuid);
} }
public static void resetHiddenPlayers() { public static void resetHiddenPlayers() {
hidden = new ArrayList<Integer>(); hidden.clear();
} }
public static void openPlayerOverview() { public static void openPlayerOverview() {

View File

@@ -20,7 +20,7 @@ public class InvisibilityRender extends RenderPlayer {
@Override @Override
public boolean shouldRender(Entity entity, ICamera camera, double camX, double camY, double camZ) { 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; (ReplayHandler.isInReplay() && entity == Minecraft.getMinecraft().thePlayer)) return false;
return super.shouldRender(entity, camera, camX, camY, camZ); return super.shouldRender(entity, camera, camX, camY, camZ);
} }