private IPlayer getPlayer(IGame game, String playerName) { Enumeration<IPlayer> players = game.getPlayers(); while (players.hasMoreElements()) { IPlayer testPlayer = players.nextElement(); if (playerName.equalsIgnoreCase(testPlayer.getName())) { return testPlayer; } } return null; }
BotClient makeNewPrincessClient(final IPlayer target, final LogLevel verbosity, final String host, final int port) { return new Princess(target.getName(), host, port, (null == verbosity ? LogLevel.WARNING : verbosity)); }
BotClient makeNewTestBotClient(final IPlayer target, final String host, final int port) { return new TestBot(target.getName(), host, port); } }
public String toString() { return "SHD: " + type.name() + ", " + "round " + round + ", by " + owner.getName(); } }
public void update() { ((DefaultListModel<String>) lisStartList.getModel()).removeAllElements(); for (Enumeration<IPlayer> i = client.getPlayers(); i.hasMoreElements();) { IPlayer player = i.nextElement(); if (player != null) { StringBuffer ssb = new StringBuffer(); ssb.append(player.getName()).append(" : "); //$NON-NLS-1$ ssb.append(IStartingPositions.START_LOCATION_NAMES[player .getStartingPos()]); ((DefaultListModel<String>) lisStartList.getModel()).addElement(ssb .toString()); } } }
/** * Allow the player to save a list of entities to a MegaMek Unit List file. * A "Save As" dialog will be displayed that allows the user to select the * file's name and directory. The player can later load this file to quickly * select the units for a new game. The file will record damage sustained, * non-standard munitions selected, and ammunition expended during the * course of the current engagement. * * @param unitList - the <code>Vector</code> of <code>Entity</code>s to be saved * to a file. If this value is <code>null</code> or empty, the * "Save As" dialog will not be displayed. */ protected void saveListFile(ArrayList<Entity> unitList) { saveListFile(unitList, client.getLocalPlayer().getName()); }
private void maybeShowPopup(MouseEvent e) { JPopupMenu popup = new JPopupMenu(); int row = tablePlayers.rowAtPoint(e.getPoint()); IPlayer player = playerModel.getPlayerAt(row); boolean isOwner = player.equals(clientgui.getClient().getLocalPlayer()); boolean isBot = clientgui.getBots().get(player.getName()) != null; if (e.isPopupTrigger()) { JMenuItem menuItem = null; // JMenu menu = null; menuItem = new JMenuItem("Configure ..."); menuItem.setActionCommand("CONFIGURE|" + row); menuItem.addActionListener(this); menuItem.setEnabled(isOwner || isBot); popup.add(menuItem); popup.show(e.getComponent(), e.getX(), e.getY()); } }
private void reset(int connId) { server.sendServerChat(server.getPlayer(connId).getName() + " reset the server."); server.resetGame(); }
private void parseCamo(IPlayer player, String camoString) throws ScenarioLoaderException { String[] camoData = camoString.split(SEPARATOR_COMMA, -1); String camoGroup = getValidCamoGroup(camoData[0]); if(null == camoGroup) { throw new ScenarioLoaderException("invalidFactionCamoGroup", //$NON-NLS-1$ camoData[0], player.getName()); } String camoName = getValidCamoName(camoGroup, camoData[1]); if(null == camoName) { throw new ScenarioLoaderException("invalidFactionCamoName", //$NON-NLS-1$ camoData[1], camoGroup, player.getName()); } player.setCamoCategory(camoGroup); player.setCamoFileName(camoName); }
@Override public void run(int connId, String[] args) { server.sendServerChat(connId, "Listing all connections..."); server .sendServerChat(connId, "[id#] : [name], [address], [pending], [bytes sent], [bytes received]"); for (Enumeration<IConnection> i = server.getConnections(); i.hasMoreElements();) { IConnection conn = i.nextElement(); StringBuffer cb = new StringBuffer(); cb.append(conn.getId()).append(" : "); cb.append(server.getPlayer(conn.getId()).getName()).append(", "); cb.append(conn.getInetAddress()); cb.append(", ").append(conn.hasPending()).append(", "); cb.append(conn.bytesSent()); cb.append(", ").append(conn.bytesReceived()); server.sendServerChat(connId, cb.toString()); } server.sendServerChat(connId, "end list"); }
private void exportList(int connId, String path) { try { PrintWriter pw1 = new PrintWriter(new FileWriter(path)); MechSummary[] msums = MechSummaryCache.getInstance().getAllMechs(); for (MechSummary ms1 : msums) { pw1.println(ms1.getChassis() + ", " + ms1.getModel() + ", " + ms1.getBV()); } pw1.flush(); pw1.close(); server.sendServerChat(server.getPlayer(connId).getName() + " has exported a unit list."); } catch (Exception e) { server.sendServerChat(connId, "/exportlist: execution failed"); server.sendServerChat(connId, e.toString()); } } }
@Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { int row = tablePlayers.rowAtPoint(e.getPoint()); IPlayer player = playerModel.getPlayerAt(row); if (player != null) { boolean isOwner = player.equals(clientgui.getClient().getLocalPlayer()); boolean isBot = clientgui.getBots().get(player.getName()) != null; if ((isOwner || isBot)) { customizePlayer(); } } } }
private void reset(int connId) { IPlayer player = server.getPlayer(connId); /* * // are we cancelling victory? if (server.getGame().isForceVictory()) { * server.sendServerChat(player.getName() + " cancels the force * victory."); server.cancelVictory(); return; } */// okay, declare force victory if (player.getTeam() == IPlayer.TEAM_NONE) { server.sendServerChat(getDeclareIndividual(player.getName())); } else { server.sendServerChat(getDeclareTeam(player.getName())); } server.forceVictory(player); }
@Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { int row = tableEntities.rowAtPoint(e.getPoint()); Entity entity = mekModel.getEntityAt(row); if (entity != null) { boolean isOwner = entity.getOwner().equals(clientgui.getClient().getLocalPlayer()); boolean isBot = clientgui.getBots().get(entity.getOwner().getName()) != null; if ((isOwner || isBot)) { customizeMech(entity); } } } }
/** * Shortcut method for adding entity name and owner data at the same time. * Assumes that the entity name should be obscured, but the owner should * not. * * @param entity the entity you wish to add */ public void addDesc(Entity entity) { if (entity != null) { add("<font color='0xffffff'><a href=\"#entity:" + entity.getId() + "\">" + entity.getShortName() + "</a></font>", true); String colorcode = Integer.toHexString(PlayerColors.getColor( entity.getOwner().getColorIndex()).getRGB() & 0x00f0f0f0); add("<B><font color='" + colorcode + "'>" + entity.getOwner().getName() + "</font></B>"); } }
public void mechEdit(Entity entity) { boolean editable = clientgui.getBots().get(entity.getOwner().getName()) != null; Client c; if (editable) { c = clientgui.getBots().get(entity.getOwner().getName()); } else { editable |= entity.getOwnerId() == clientgui.getClient().getLocalPlayer().getId(); c = clientgui.getClient(); } // display dialog UnitEditorDialog med = new UnitEditorDialog(clientgui.getFrame(), entity); // med.setPlayer(c.getLocalPlayer()); med.setVisible(true); c.sendUpdateEntity(entity); /* * if (editable && med.isSelect()) { // send changes * c.sendUpdateEntity(entity); } */ }
/** * Run this command with the arguments supplied */ @Override public void run(int connId, String[] args) { if (!canRunRestrictedCommand(connId)) { server.sendServerChat(connId, restrictedResponse); return; } IPlayer player = server.getPlayer(connId); if (server.getGame().isForceVictory()) { server.sendServerChat(getAdmitsDefeat(player.getName())); player.setAdmitsDefeat(true); } else { server.sendServerChat(getWantsDefeat(player.getName())); server.sendServerChat(connId, note); } } }
/** * Run this command with the arguments supplied */ @Override public void run(int connId, String[] args) { if (!canRunRestrictedCommand(connId)) { server.sendServerChat(connId, "Observers are restricted from skipping turns."); return; } if (server.isTurnSkippable()) { server.sendServerChat(server.getPlayer(connId).getName() + " has issued the skip command..."); server.skipCurrentTurn(); } else { server.sendServerChat("/skip : skip failed."); } }
void exportMUL(ForceDescriptor fd) { ArrayList<Entity> list = new ArrayList<>(); fd.addAllEntities(list); //Create a fake game so we can write the entities to a file without adding them to the real game. Game game = new Game(); //Add a player to prevent complaining in the log file Player p = new Player(1, "Observer"); game.addPlayer(1, p); game.setOptions(clientGui.getClient().getGame().getOptions()); list.stream().forEach(en -> { en.setOwner(p); // If we don't set the id, the first unit will be left at -1, which in most cases is interpreted // as no entity en.setId(game.getNextEntityId()); game.addEntity(en); }); configureNetworks(fd); clientGui.saveListFile(list, clientGui.getClient().getLocalPlayer().getName()); }
/** * Unload a unit in the chat lounge * * @param unloadee * - the Entity to be unloaded */ private void unloader(Entity unloadee) { Client c = clientgui.getBots().get(unloadee.getOwner().getName()); if (c == null) { c = clientgui.getClient(); } Entity unloader = clientgui.getClient().getGame().getEntity(unloadee.getTransportId()); if (null == unloader) { return; } unloader.unload(unloadee); unloadee.setTransportId(Entity.NONE); c.sendUpdateEntity(unloadee); c.sendUpdateEntity(unloader); }