From 6f5e00874b30e2dd01438dc4ada6dfff6ae4b2ce Mon Sep 17 00:00:00 2001 From: Alkalus Date: Fri, 4 Aug 2017 13:37:35 +1000 Subject: % Rewrote how tesseracts handle players, now frequencies are player unique. + Adding some debug logging for dev testing. --- .../common/helpers/tesseract/TesseractHelper.java | 215 ++++++++++++++------- 1 file changed, 145 insertions(+), 70 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java index 2204400261..cab4b2de0b 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java @@ -10,145 +10,220 @@ import java.util.Map.Entry; import static gtPlusPlus.core.lib.CORE.sTesseractGeneratorOwnershipMap; import static gtPlusPlus.core.lib.CORE.sTesseractTerminalOwnershipMap; +import gtPlusPlus.core.util.Utils; import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_TesseractGenerator; import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_TesseractTerminal; import net.minecraft.entity.player.EntityPlayer; public class TesseractHelper { - + /** * Tesseract Generator Helpers * * @param player * @return */ - - public final boolean isGeneratorOwnedByPlayer(EntityPlayer player, GT_MetaTileEntity_TesseractGenerator generator){ + + //Checks if a Generator is owned by a player. + public final static boolean isGeneratorOwnedByPlayer(EntityPlayer player, + GT_MetaTileEntity_TesseractGenerator generator) { UUID playerIdentifier = player.getUniqueID(); - if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null){ + if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null) { Map generators = getGeneratorOwnershipByPlayer(player); Set> players = generators.entrySet(); Iterator> i = players.iterator(); - while(i.hasNext()) { + while (i.hasNext()) { Entry current = i.next(); - if (current.getValue().equals(generator)){ + if (current.getValue().equals(generator)) { return true; - } - } - } - return false; + } + } + } + return false; } - - public final boolean setGeneratorOwnershipByPlayer(EntityPlayer player, int freq, GT_MetaTileEntity_TesseractGenerator generator){ + + //Saves A Generator to the Players UUID map along with the Freq. + public final static boolean setGeneratorOwnershipByPlayer(EntityPlayer player, int freq, + GT_MetaTileEntity_TesseractGenerator generator) { UUID playerIdentifier = player.getUniqueID(); - if (playerIdentifier != null){ - Map playerOwned = sTesseractGeneratorOwnershipMap.get(playerIdentifier); - if (playerOwned == null || playerOwned.isEmpty()){ + Utils.LOG_INFO("Setting Generator on "+freq+" for "+player.getDisplayName()+"."); + if (playerIdentifier != null) { + Map playerOwned = sTesseractGeneratorOwnershipMap + .get(playerIdentifier); + if (playerOwned == null || playerOwned.isEmpty()) { Map newOwnershipMap = new HashMap(); newOwnershipMap.put(freq, generator); sTesseractGeneratorOwnershipMap.put(playerIdentifier, newOwnershipMap); + Utils.LOG_INFO("Success! [Empty Map]"); return true; - } - else if (sTesseractGeneratorOwnershipMap.containsKey(playerIdentifier)){ - Map ownershipMap = sTesseractGeneratorOwnershipMap.get(playerIdentifier); + } else if (sTesseractGeneratorOwnershipMap.containsKey(playerIdentifier)) { + Map ownershipMap = sTesseractGeneratorOwnershipMap + .get(playerIdentifier); ownershipMap.put(freq, generator); sTesseractGeneratorOwnershipMap.put(playerIdentifier, ownershipMap); + Utils.LOG_INFO("Success!"); return true; } - } + } + Utils.LOG_INFO("Failed."); return false; } - - - + + //Gets Generator based on Frequency. + public final static GT_MetaTileEntity_TesseractGenerator getGeneratorByFrequency(EntityPlayer player, + int freq) { + UUID playerIdentifier = player.getUniqueID(); + Utils.LOG_INFO("Getting Generator on "+freq+" for "+player.getDisplayName()+"."); + if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null) { + Map generators = getGeneratorOwnershipByPlayer(player); + Set> players = generators.entrySet(); + Iterator> i = players.iterator(); + while (i.hasNext()) { + Entry current = i.next(); + if (current.getKey().equals(freq)) { + Utils.LOG_INFO("Success!"); + return current.getValue(); + } + } + } + Utils.LOG_INFO("Failed."); + return null; + } + + //Remove Tesseract Generator + public final static boolean removeGenerator(EntityPlayer player, int frequency) { + UUID playerIdentifier = player.getUniqueID(); + if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null) { + sTesseractGeneratorOwnershipMap.get(playerIdentifier).remove(frequency); + return true; + } + return false; + } + /** * * Tesseract Terminal Helpers * * @param player * @return - */ - - - public final boolean isTerminalOwnedByPlayer(EntityPlayer player, GT_MetaTileEntity_TesseractTerminal generator){ + */ + + //Checks if a Terminal is owned by a player. + public final static boolean isTerminalOwnedByPlayer(EntityPlayer player, + GT_MetaTileEntity_TesseractTerminal generator) { UUID playerIdentifier = player.getUniqueID(); - if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null){ + if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null) { Map generators = getTerminalOwnershipByPlayer(player); Set> players = generators.entrySet(); Iterator> i = players.iterator(); - while(i.hasNext()) { + while (i.hasNext()) { Entry current = i.next(); - if (current.getValue().equals(generator)){ + if (current.getValue().equals(generator)) { return true; - } - } - } - return false; + } + } + } + return false; } - - public final boolean setTerminalOwnershipByPlayer(EntityPlayer player, int freq, GT_MetaTileEntity_TesseractTerminal generator){ + + //Saves A Terminal to the Players UUID map along with the Freq. + public final static boolean setTerminalOwnershipByPlayer(EntityPlayer player, int freq, + GT_MetaTileEntity_TesseractTerminal generator) { UUID playerIdentifier = player.getUniqueID(); - if (playerIdentifier != null){ - Map playerOwned = sTesseractTerminalOwnershipMap.get(playerIdentifier); - if (playerOwned == null || playerOwned.isEmpty()){ + if (playerIdentifier != null) { + Utils.LOG_INFO("Setting Terminal on "+freq+" for "+player.getDisplayName()+"."); + Map playerOwned = sTesseractTerminalOwnershipMap + .get(playerIdentifier); + if (playerOwned == null || playerOwned.isEmpty()) { Map newOwnershipMap = new HashMap(); newOwnershipMap.put(freq, generator); sTesseractTerminalOwnershipMap.put(playerIdentifier, newOwnershipMap); + Utils.LOG_INFO("Success! [Empty Map]"); return true; - } - else if (sTesseractTerminalOwnershipMap.containsKey(playerIdentifier)){ - Map ownershipMap = sTesseractTerminalOwnershipMap.get(playerIdentifier); + } else if (sTesseractTerminalOwnershipMap.containsKey(playerIdentifier)) { + Map ownershipMap = sTesseractTerminalOwnershipMap + .get(playerIdentifier); ownershipMap.put(freq, generator); sTesseractTerminalOwnershipMap.put(playerIdentifier, ownershipMap); + Utils.LOG_INFO("Success!"); return true; } - } + } + Utils.LOG_INFO("Failed."); return false; } - - - - - - - + + //Gets Terminal based on Frequency. + public final static GT_MetaTileEntity_TesseractTerminal getTerminalByFrequency(EntityPlayer player, + int freq) { + UUID playerIdentifier = player.getUniqueID(); + Utils.LOG_INFO("Getting Terminal on "+freq+" for "+player.getDisplayName()+"."); + if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null) { + Map generators = getTerminalOwnershipByPlayer(player); + Set> players = generators.entrySet(); + Iterator> i = players.iterator(); + while (i.hasNext()) { + Entry current = i.next(); + if (current.getKey().equals(freq)) { + Utils.LOG_INFO("Success!"); + return current.getValue(); + } + } + } + Utils.LOG_INFO("Failed."); + return null; + } + + //Remove Tesseract Terminal + public final static boolean removeTerminal(EntityPlayer player, int frequency) { + UUID playerIdentifier = player.getUniqueID(); + if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null) { + sTesseractTerminalOwnershipMap.get(playerIdentifier).remove(frequency); + return true; + } + return false; + } + /** * * Internal Methods - * + * */ - - private final Map getGeneratorOwnershipByPlayer(EntityPlayer player){ + + private final static Map getGeneratorOwnershipByPlayer( + EntityPlayer player) { UUID playerIdentifier = player.getUniqueID(); - if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null){ - Set>> players = sTesseractGeneratorOwnershipMap.entrySet(); + if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null) { + Set>> players = sTesseractGeneratorOwnershipMap + .entrySet(); Iterator>> i = players.iterator(); - while(i.hasNext()) { + while (i.hasNext()) { Entry> current = i.next(); - if (current.getKey().compareTo(playerIdentifier) == 0){ + if (current.getKey().compareTo(playerIdentifier) == 0) { return current.getValue(); } - - } - } + + } + } return null; } - - private final Map getTerminalOwnershipByPlayer(EntityPlayer player){ + + private final static Map getTerminalOwnershipByPlayer( + EntityPlayer player) { UUID playerIdentifier = player.getUniqueID(); - if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null){ - Set>> players = sTesseractTerminalOwnershipMap.entrySet(); + if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null) { + Set>> players = sTesseractTerminalOwnershipMap + .entrySet(); Iterator>> i = players.iterator(); - while(i.hasNext()) { + while (i.hasNext()) { Entry> current = i.next(); - if (current.getKey().compareTo(playerIdentifier) == 0){ + if (current.getKey().compareTo(playerIdentifier) == 0) { return current.getValue(); } - - } - } + + } + } return null; } - - + } -- cgit