Use UUIDs instead of entity ids for storing invisible players
This commit is contained in:
@@ -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++;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user