More unnecessary casts to ServerPlayer.

This commit is contained in:
Mike Pope 2019-03-18 13:54:21 +10:30
parent abd39cd6b4
commit 7e762bc703
12 changed files with 82 additions and 82 deletions

View File

@ -198,7 +198,7 @@ public class DebugUtils {
transform(sSpec.getFoundingFathers(), noFatherPred, mapper,
Comparator.naturalOrder()));
if (father != null) {
server.getInGameController().addFoundingFather((ServerPlayer)sPlayer, father);
server.getInGameController().addFoundingFather(sPlayer, father);
}
}

View File

@ -633,6 +633,16 @@ public class Player extends FreeColGameObject implements Nameable {
throw new RuntimeException("setConnection called on Player: " + this);
}
/**
* Send a change set across the connection.
*
* @param cs The {@code ChangeSet} to send.
* @return True if the message was sent.
*/
public boolean send(ChangeSet cs) {
throw new RuntimeException("send called on Player: " + this);
}
// Error wrangling

View File

@ -149,7 +149,7 @@ public class FirstContactMessage extends AttributeMessage {
// Proceed to contact.
return igc(freeColServer)
.nativeFirstContact(serverPlayer, (ServerPlayer)otherPlayer,
.nativeFirstContact(serverPlayer, otherPlayer,
getTile(game), getResult());
}

View File

@ -146,7 +146,7 @@ public class InciteMessage extends AttributeMessage {
// Valid, proceed to incite.
return igc(freeColServer)
.incite(serverPlayer, unit, is, (ServerPlayer)enemy, gold);
.incite(serverPlayer, unit, is, enemy, gold);
}

View File

@ -611,11 +611,10 @@ public final class FreeColServer {
public void endGame() {
changeServerState(ServerState.END_GAME);
for (Player p : getGame().getLiveEuropeanPlayerList()) {
ServerPlayer sp = (ServerPlayer)p;
if (sp.isAdmin()) continue;
sp.send(new ChangeSet()
.add(See.only(sp),
new LogoutMessage(sp, LogoutReason.QUIT)));
if (p.isAdmin()) continue;
p.send(new ChangeSet()
.add(See.only(p),
new LogoutMessage(p, LogoutReason.QUIT)));
}
}
@ -665,11 +664,15 @@ public final class FreeColServer {
/**
* Remove a player connection.
*
* @param serverPlayer The {@code ServerPlayer} to disconnect.
* @param player The {@code Player} to disconnect.
*/
public void removePlayerConnection(ServerPlayer serverPlayer) {
getServer().removeConnection(serverPlayer.getConnection());
serverPlayer.disconnect();
public void removePlayerConnection(Player player) {
Connection conn = player.getConnection();
if (conn != null) {
getServer().removeConnection(conn);
conn.close();
player.setConnection(null);
}
}
/**
@ -738,10 +741,10 @@ public final class FreeColServer {
final Game game = buildGame();
for (Player player : transform(game.getLivePlayers(),
p -> !p.isAI())) {
((ServerPlayer)player).invalidateCanSeeTiles();
player.invalidateCanSeeTiles();
ChangeSet cs = new ChangeSet();
cs.add(See.only(player), game);
((ServerPlayer)player).send(cs);
player.send(cs);
}
break;
case LOAD_GAME: // Do nothing, game has been sent.
@ -753,7 +756,7 @@ public final class FreeColServer {
}
changeServerState(ServerState.IN_GAME);
sendToAll(TrivialMessage.startGameMessage, (ServerPlayer)null);
sendToAll(TrivialMessage.startGameMessage, (Player)null);
updateMetaServer();
}
@ -771,11 +774,10 @@ public final class FreeColServer {
* Send a message to all connections.
*
* @param msg The {@code Message} to send.
* @param serverPlayer An optional {@code ServerPlayer} to omit.
* @param player An optional {@code Player} to omit.
*/
public void sendToAll(Message msg, ServerPlayer serverPlayer) {
sendToAll(msg, (serverPlayer == null) ? null
: serverPlayer.getConnection());
public void sendToAll(Message msg, Player player) {
sendToAll(msg, (player == null) ? null : player.getConnection());
}
@ -1326,10 +1328,12 @@ public final class FreeColServer {
* @return A suitable record.
*/
private ServerInfo getServerInfo() {
int slots = count(getGame().getLiveEuropeanPlayers(),
p -> !p.isREF() && ((ServerPlayer)p).isAI() && !p.isConnected());
int players = count(getGame().getLivePlayers(),
p -> !((ServerPlayer)p).isAI() && p.isConnected());
final Predicate<Player> absentAI
= p -> !p.isREF() && p.isAI() && !p.isConnected();
final Predicate<Player> liveHuman
= p -> !p.isAI() && p.isConnected();
int slots = count(getGame().getLiveEuropeanPlayers(), absentAI);
int players = count(getGame().getLiveEuropeanPlayers(), liveHuman);
return new ServerInfo(getName(),
null, -1, // Missing these at this point
slots, players,

View File

@ -1476,17 +1476,17 @@ public class EuropeanAIPlayer extends MissionAIPlayer {
* @param lb A {@code LogBuilder} to log to.
*/
private void determineStances(LogBuilder lb) {
final ServerPlayer serverPlayer = (ServerPlayer)getPlayer();
final Player player = getPlayer();
lb.mark();
for (Player p : getGame().getLivePlayerList(serverPlayer)) {
for (Player p : getGame().getLivePlayerList(player)) {
Stance newStance = determineStance(p);
if (newStance != serverPlayer.getStance(p)) {
if (newStance != player.getStance(p)) {
if (newStance == Stance.WAR && peaceHolds(p)) {
; // Peace treaty holds for now
} else {
getAIMain().getFreeColServer().getInGameController()
.changeStance(serverPlayer, newStance, p, true);
.changeStance(player, newStance, p, true);
lb.add(" ", p.getDebugName(), "->", newStance, ", ");
}
}

View File

@ -247,16 +247,14 @@ public final class InGameController extends Controller {
* Public version of csAddFoundingFather so it can be used in the
* test code and DebugMenu.
*
* @param serverPlayer The {@code ServerPlayer} who gains a father.
* @param player The {@code Player} who gains a father.
* @param father The {@code FoundingFather} to add.
*/
public void addFoundingFather(ServerPlayer serverPlayer,
FoundingFather father) {
public void addFoundingFather(Player player, FoundingFather father) {
ChangeSet cs = new ChangeSet();
serverPlayer.csAddFoundingFather(father, random, cs);
cs.addAttribute(See.only(serverPlayer), "flush",
Boolean.TRUE.toString());
getGame().sendTo(serverPlayer, cs);
((ServerPlayer)player).csAddFoundingFather(father, random, cs);
cs.addAttribute(See.only(player), "flush", Boolean.TRUE.toString());
getGame().sendTo(player, cs);
}
/**
@ -288,7 +286,7 @@ public final class InGameController extends Controller {
final Player owner = colony.getOwner();
colony.csChangeOwner(serverPlayer, false, cs);//-vis(serverPlayer,owner)
serverPlayer.invalidateCanSeeTiles();//+vis(serverPlayer)
((ServerPlayer)owner).invalidateCanSeeTiles();//+vis(owner)
owner.invalidateCanSeeTiles();//+vis(owner)
getGame().sendToAll(cs);
}
@ -568,11 +566,11 @@ public final class InGameController extends Controller {
* hence the special handling.
*
* @param serverPlayer The REF {@code ServerPlayer} that is granting.
* @param independent The newly independent {@code ServerPlayer}.
* @param independent The newly independent {@code Player}.
* @param cs A {@code ChangeSet} to update.
*/
private void csGiveIndependence(ServerPlayer serverPlayer,
ServerPlayer independent, ChangeSet cs) {
Player independent, ChangeSet cs) {
serverPlayer.csChangeStance(Stance.PEACE, independent, true, cs);
independent.changePlayerType(PlayerType.INDEPENDENT);
Game game = getGame();
@ -635,7 +633,8 @@ public final class InGameController extends Controller {
cs.add(See.only(independent), independent);
// Reveal the map on independence.
cs.add(See.only(independent), independent.exploreMap(true));
cs.add(See.only(independent),
((ServerPlayer)independent).exploreMap(true));
}
private StringTemplate unitTemplate(String base, List<Unit> units) {
@ -2108,7 +2107,7 @@ public final class InGameController extends Controller {
switch (current.checkForDeath()) {
case IS_DEFEATED:
for (Player p : current.getRebels()) {
csGiveIndependence(current, (ServerPlayer)p, cs);
csGiveIndependence(current, p, cs);
}
// Fall through
case IS_DEAD:
@ -2467,12 +2466,12 @@ public final class InGameController extends Controller {
* @param serverPlayer The {@code ServerPlayer} that is inciting.
* @param unit The missionary {@code Unit} inciting.
* @param is The {@code IndianSettlement} to incite.
* @param enemy The {@code ServerPlayer} to be incited against.
* @param enemy The {@code Player} to be incited against.
* @param gold The amount of gold in the bribe.
* @return A {@code ChangeSet} encapsulating this action.
*/
public ChangeSet incite(ServerPlayer serverPlayer, Unit unit,
IndianSettlement is, ServerPlayer enemy, int gold) {
IndianSettlement is, Player enemy, int gold) {
ChangeSet cs = new ChangeSet();
Tile tile = is.getTile();
@ -2481,10 +2480,9 @@ public final class InGameController extends Controller {
cs.add(See.only(serverPlayer), tile);
// How much gold will be needed?
ServerPlayer enemyPlayer = enemy;
Player nativePlayer = is.getOwner();
int payingValue = nativePlayer.getTension(serverPlayer).getValue();
int targetValue = nativePlayer.getTension(enemyPlayer).getValue();
int targetValue = nativePlayer.getTension(enemy).getValue();
int goldToPay = (payingValue > targetValue) ? 10000 : 5000;
goldToPay += 20 * (payingValue - targetValue);
goldToPay = Math.max(goldToPay, 650);
@ -2499,7 +2497,7 @@ public final class InGameController extends Controller {
"missionarySettlement.inciteGoldFail",
serverPlayer, is)
.addStringTemplate("%player%",
enemyPlayer.getNationLabel())
enemy.getNationLabel())
.addAmount("%amount%", goldToPay));
unit.setMovesLeft(0);
cs.addPartial(See.only(serverPlayer), unit,
@ -2508,9 +2506,9 @@ public final class InGameController extends Controller {
// Success. Raise the tension for the native player with respect
// to the European player. Let resulting stance changes happen
// naturally in the AI player turn/s.
((ServerPlayer)nativePlayer).csModifyTension(enemyPlayer,
((ServerPlayer)nativePlayer).csModifyTension(enemy,
Tension.WAR_MODIFIER, cs);//+til
enemyPlayer.csModifyTension(serverPlayer,
((ServerPlayer)enemy).csModifyTension(serverPlayer,
Tension.TENSION_ADD_WAR_INCITER, cs);//+til
serverPlayer.modifyGold(-gold);
nativePlayer.modifyGold(gold);
@ -2959,13 +2957,13 @@ public final class InGameController extends Controller {
* benefit.
*
* @param serverPlayer The {@code ServerPlayer} making contact.
* @param other The native {@code ServerPlayer} to contact.
* @param other The native {@code Player} to contact.
* @param tile A {@code Tile} on offer at first landing.
* @param result Whether the initial peace treaty was accepted.
* @return A {@code ChangeSet} encapsulating this action.
*/
public ChangeSet nativeFirstContact(ServerPlayer serverPlayer,
ServerPlayer other, Tile tile,
Player other, Tile tile,
boolean result) {
ChangeSet cs = new ChangeSet();
DiplomacySession session = null;
@ -2989,9 +2987,9 @@ public final class InGameController extends Controller {
} else {
// Consider not accepting the treaty to be an insult and
// ban missions.
other.csModifyTension(serverPlayer,
((ServerPlayer)other).csModifyTension(serverPlayer,
Tension.TENSION_ADD_MAJOR, cs);//+til
other.addMissionBan(serverPlayer);
((ServerPlayer)other).addMissionBan(serverPlayer);
}
if (session != null) session.complete(result, cs);
getGame().sendToOthers(serverPlayer, cs);

View File

@ -203,12 +203,12 @@ public class ServerGame extends Game implements TurnTaker {
*/
public boolean sendTo(Player player, ChangeSet cs) {
try {
return ((ServerPlayer)player).send(cs);
return player.send(cs);
} catch (Exception e) {
// Catch all manner of exceptions here to localize failure to
// just one player. Nothing is expected, but the entire output
// side of serialization is potentially exercised here, so it is
// a good place to find new fails.
// Catch all manner of exceptions here to localize failure
// to just one player. Nothing is *expected*, but the
// entire output side of serialization is potentially
// exercised here, so it is a good place to find new fails.
logger.log(Level.WARNING, "sendTo(" + player.getId()
+ "," + cs + ") failed", e);
}
@ -448,7 +448,7 @@ public class ServerGame extends Game implements TurnTaker {
lb.add(" ", unit.getId());
if (unit.isOnCarrier()) {
; // Allow carrier to handle
} else if (!((ServerPlayer)weakAI).csChangeOwner(unit, strongAI, //-vis(both)
} else if (!weakest.csChangeOwner(unit, strongAI, //-vis(both)
UnitChangeType.CAPTURE, null, cs)) {
logger.warning("Owner change failed for " + unit);
} else {
@ -481,7 +481,7 @@ public class ServerGame extends Game implements TurnTaker {
tiles.removeAll(updated);
cs.add(See.perhaps(), tiles);
((ServerPlayer)weakAI).csWithdraw(cs, //+vis(weakest)
weakest.csWithdraw(cs, //+vis(weakest)
new ModelMessage(ModelMessage.MessageType.FOREIGN_DIPLOMACY,
"model.game.spanishSuccession", strongAI)
.addStringTemplate("%loserNation%", loser)

View File

@ -387,7 +387,7 @@ public class ServerIndianSettlement extends IndianSettlement
((ServerUnit)old).csRemove(See.only(oldOwner),
null, cs);//-vis(oldOwner)
cs.add(See.only(oldOwner), tile);
((ServerPlayer)oldOwner).invalidateCanSeeTiles();//+vis(oldOwner)
oldOwner.invalidateCanSeeTiles();//+vis(oldOwner)
}
if (missionary != null) {

View File

@ -273,9 +273,7 @@ public class ServerPlayer extends Player implements TurnTaker {
// Fully implement Connection routines and use them for comms
/**
* Gets the connection of this player.
*
* @return The {@code Connection}.
* {@inheritDoc}
*/
@Override
public final Connection getConnection() {
@ -283,9 +281,7 @@ public class ServerPlayer extends Player implements TurnTaker {
}
/**
* Sets the connection of this player.
*
* @param connection The {@code Connection}.
* {@inheritDoc}
*/
@Override
public final void setConnection(Connection connection) {
@ -293,20 +289,9 @@ public class ServerPlayer extends Player implements TurnTaker {
}
/**
* Disconnect this player.
*/
public void disconnect() {
if (this.connection != null) this.connection.close();
setConnection(null);
}
/**
* Send a change set to this player.
*
* @param cs The {@code ChangeSet} to send.
* @return True if the message was sent.
* @exception FreeColException
* {@inheritDoc}
*/
@Override
public boolean send(ChangeSet cs) {
if (!isConnected()) return false;
try {
@ -318,6 +303,9 @@ public class ServerPlayer extends Player implements TurnTaker {
return true;
}
// Extra server side routines
/**
* Update the current father.
*
@ -3112,7 +3100,7 @@ outer: for (Effect effect : effects) {
: repair;
ship.damageShip(shipLoc);//-vis(player)
cs.add(See.only(owner), (FreeColGameObject)shipLoc);
((ServerPlayer)owner).invalidateCanSeeTiles();//+vis(player)
owner.invalidateCanSeeTiles();//+vis(player)
}
/**

View File

@ -193,12 +193,12 @@ public class ColonyTest extends FreeColTestCase {
game.setMap(getTestMap(true));
Colony colony = getStandardColony(5);
ServerPlayer serverPlayer = (ServerPlayer)colony.getOwner();
Player player = colony.getOwner();
assertEquals(0, countParties(colony));
colony.addModifier(serverPlayer.makeTeaPartyModifier());
colony.addModifier(((ServerPlayer)player).makeTeaPartyModifier());
assertEquals(1, countParties(colony));
Modifier m = serverPlayer.makeTeaPartyModifier();
Modifier m = ((ServerPlayer)player).makeTeaPartyModifier();
m.setFirstTurn(new Turn(game.getTurn().getNumber() + 1));
colony.addModifier(m);
assertEquals(2, countParties(colony));

View File

@ -1862,7 +1862,7 @@ public class InGameControllerTest extends FreeColTestCase {
event.setValue("model.building.printingPress");
events.add(event);
father.setEvents(events);
igc.addFoundingFather((ServerPlayer)colony.getOwner(), father);
igc.addFoundingFather(colony.getOwner(), father);
assertTrue(colony.getBuilding(press) != null);
}