rendered paste bodypackage bomberman.network;import java.util.Map;import java.util.TreeMap;import bomberman.client.BombermanClient;public class BombermanNetworkDecoder { BombermanClient bc; Map<Integer,BNetworkOperation> operations; public BombermanNetworkDecoder(BombermanClient bc) { this.bc = bc; this.operations = new TreeMap<Integer,BNetworkOperation>(); put(new BNetworkOpText(bc)); put(new BNetworkOpArena(bc)); put(new BNetworkOpPlayer(bc)); put(new BNetworkOpAnimation(bc)); put(new BNetworkOpPoints(bc)); put(new BNetworkOpTime(bc)); } private void put(BNetworkOperation op) { operations.put(op.getID(), op); } // decide qual operação é e chama a classe responsável public boolean process(byte[] data) { int op = data[0]; operations.get(op).decode(data); return false; }}//--------------------------------------------------------------------------------package bomberman.network;import bomberman.client.BombermanClient;public abstract class BNetworkOperation { BombermanClient bc; public BNetworkOperation(BombermanClient bc) { this.bc = bc; } public abstract int getID(); public abstract void decode(byte[] data); }//--------------------------------------------------------------------------------package bomberman.network;import utilities.Conversion;import bomberman.client.BombermanClient;import bomberman.geral.BombermanConstants;public class BNetworkOpTime extends BNetworkOperation { public BNetworkOpTime(BombermanClient bc) { super(bc); } @Override public int getID() { return BombermanConstants.BOMBERMAN_TIME; } @Override public void decode(byte[] data) { bc.bTime = Conversion.byteArrayToInt(data, 2); }}