package mekanism.common; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import net.minecraft.entity.player.EntityPlayer; public class KeySync { public static int ASCEND = 0; public static int DESCEND = 1; public Map<EntityPlayer, KeySet> keys = new HashMap<EntityPlayer, KeySet>(); public static class KeySet { public Set<Integer> keysActive = new HashSet<Integer>(); public KeySet(int key) { keysActive.add(key); } } public KeySet getPlayerKeys(EntityPlayer player) { return keys.get(player); } public void add(EntityPlayer player, int key) { if(!keys.containsKey(player)) { keys.put(player, new KeySet(key)); return; } keys.get(player).keysActive.add(key); } public void remove(EntityPlayer player, int key) { if(!keys.containsKey(player)) { return; } keys.get(player).keysActive.remove(key); } public boolean has(EntityPlayer player, int key) { if(!keys.containsKey(player)) { return false; } return keys.get(player).keysActive.contains(key); } public void update(EntityPlayer player, int key, boolean add) { if(add) { add(player, key); } else { remove(player, key); } } }