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));
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++;

View File

@@ -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<Integer> hidden) {
this.hidden = hidden.toArray(new Integer[hidden.size()]);
public PlayerVisibility(Collection<UUID> hidden) {
this.hidden = hidden.toArray(new UUID[hidden.size()]);
}
private Integer[] hidden;
private UUID[] hidden;
public Integer[] getHiddenPlayers() {
public UUID[] getHiddenPlayers() {
return hidden;
}

View File

@@ -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<Integer> hidden = new ArrayList<Integer>();
private static Set<UUID> hidden = new HashSet<UUID>();
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<Integer> getHiddenPlayers() {
public static Set<UUID> 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<Integer>();
hidden.clear();
}
public static void openPlayerOverview() {

View File

@@ -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);
}