package module.character; import java.io.BufferedReader; import java.io.DataOutputStream; import java.util.HashMap; import module.character.api.ICharacter; import module.character.constants.CConfig.config; import module.command.CommandServer; import module.server.EachPlayerServer; import module.utility.EnDecoder; public class PlayerGroup extends Group { /** * */ private static final long serialVersionUID = -7836729144223571863L; private HashMap<config, Boolean> configData; // TODO: build a new connection when loading the file private volatile DataOutputStream outToClient = null; private volatile BufferedReader inFromClient = null; public volatile EachPlayerServer thisServer = null; public PlayerGroup(ICharacter obj) { super(obj); initializeConfig(); } private void initializeConfig() { configData = new HashMap<config, Boolean>(); configData.put(config.REALTIMEBATTLE, false); configData.put(config.TUTORIAL_ON, true); } public void setOutToClient(DataOutputStream out) { this.outToClient = out; } public DataOutputStream getOutToClient() { return this.outToClient; } public void setConfigData(config newConfig, Object value) { // so far we only have 1 config in the list if (newConfig == config.REALTIMEBATTLE) configData.put(config.REALTIMEBATTLE, (Boolean) value); else if (newConfig == config.TUTORIAL_ON) configData.put(config.TUTORIAL_ON, (Boolean) value); } public HashMap<config, Boolean> getConfigData() { return this.configData; } public String showGroupStatus() { StringBuilder buffer = new StringBuilder(); int count = 1; for (CharList cList : this.list) { for (ICharacter c : cList.charList) { buffer.append("\tNo." + count + " " + c.showStatus() + "\n"); count++; } } return EnDecoder.encodeChangeLine(buffer.toString()); } @Override public void updateTime() { // must not implement time waste instructions in this method! for (CharList cList : list) { for (ICharacter c : cList.charList) { c.updateTime(); } } String out = "status:" + this.showGroupStatus(); CommandServer.informGroup(this, out); } public void setInFromClient(BufferedReader in){ this.inFromClient = in; } public BufferedReader getInFromClient(){ return this.inFromClient; } }