diff --git a/src/main/java/com/comandante/creeper/command/GoldCommand.java b/src/main/java/com/comandante/creeper/command/GoldCommand.java index 0fbcfeb5d727ba17044c9c160efc125f8cb96958..605b0c156768db1970f51845aaa3e4017ebbbe7e 100644 --- a/src/main/java/com/comandante/creeper/command/GoldCommand.java +++ b/src/main/java/com/comandante/creeper/command/GoldCommand.java @@ -6,8 +6,10 @@ import com.comandante.creeper.server.Color; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.MessageEvent; +import java.text.NumberFormat; import java.util.Arrays; import java.util.List; +import java.util.Locale; public class GoldCommand extends Command { @@ -23,7 +25,7 @@ public class GoldCommand extends Command { public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { configure(e); try { - write("You have " + playerManager.getPlayerMetadata(playerId).getGold() + Color.YELLOW + " gold." + Color.RESET); + write("You have " + NumberFormat.getNumberInstance(Locale.US).format(playerManager.getPlayerMetadata(playerId).getGold()) + Color.YELLOW + " gold." + Color.RESET); } finally { super.messageReceived(ctx, e); } diff --git a/src/main/java/com/comandante/creeper/command/LootCommand.java b/src/main/java/com/comandante/creeper/command/LootCommand.java index 957c448349a6f66f627cd1b43fed25a579d92762..3b1113bf3a166603ae78d3c01884396dd18451b4 100644 --- a/src/main/java/com/comandante/creeper/command/LootCommand.java +++ b/src/main/java/com/comandante/creeper/command/LootCommand.java @@ -7,8 +7,10 @@ import com.comandante.creeper.server.Color; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.MessageEvent; +import java.text.NumberFormat; import java.util.Arrays; import java.util.List; +import java.util.Locale; import java.util.Set; public class LootCommand extends Command { @@ -32,7 +34,7 @@ public class LootCommand extends Command { if (loot != null) { int gold = lootManager.lootGoldAmountReturn(loot); if (gold > 0) { - write("You looted " + gold + Color.YELLOW + " gold" + Color.RESET + " from a " + item.getItemName() + ".\r\n"); + write("You looted " + NumberFormat.getNumberInstance(Locale.US).format(gold) + Color.YELLOW + " gold" + Color.RESET + " from a " + item.getItemName() + ".\r\n"); player.incrementGold(gold); } Set<Item> items = lootManager.lootItemsReturn(loot); diff --git a/src/main/java/com/comandante/creeper/command/XpCommand.java b/src/main/java/com/comandante/creeper/command/XpCommand.java index 5d98bfe16ab391cd6998b626fe547327a5cd5851..9715f59b7c339098e521f1b601d9f28392e392c7 100644 --- a/src/main/java/com/comandante/creeper/command/XpCommand.java +++ b/src/main/java/com/comandante/creeper/command/XpCommand.java @@ -4,7 +4,6 @@ import com.codahale.metrics.Meter; import com.comandante.creeper.Main; import com.comandante.creeper.managers.GameManager; import com.comandante.creeper.player.Levels; -import com.comandante.creeper.player.Player; import com.comandante.creeper.player.PlayerMetadata; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.MessageEvent; @@ -18,7 +17,6 @@ import java.text.NumberFormat; import java.util.Arrays; import java.util.List; import java.util.Locale; -import java.util.Set; public class XpCommand extends Command { @@ -40,12 +38,17 @@ public class XpCommand extends Command { int expToNextLevel = Levels.getXp(nextLevel) - playerMetadata.getStats().getExperience(); Meter meter = Main.metrics.meter("experience-" + player.getPlayerName()); StringBuilder sb = new StringBuilder(); - sb.append(expToNextLevel).append(" experience to level ").append(nextLevel).append(".\r\n"); + sb.append(NumberFormat.getNumberInstance(Locale.US).format(expToNextLevel)).append(" experience to level ").append(nextLevel).append(".\r\n"); Table t = new Table(2, BorderStyle.CLASSIC_COMPATIBLE, - ShownBorders.HEADER_AND_COLUMNS); - t.addCell("time window"); - t.addCell("rate"); + ShownBorders.NONE); + + t.setColumnWidth(0, 8, 20); + t.setColumnWidth(1, 10, 13); + + + t.addCell("Window"); + t.addCell("Rate"); t.addCell(" 1 min"); t.addCell(String.valueOf(round(meter.getOneMinuteRate())) + " xp/sec"); t.addCell(" 5 min"); diff --git a/src/main/java/com/comandante/creeper/merchant/bank/commands/AccountQueryCommand.java b/src/main/java/com/comandante/creeper/merchant/bank/commands/AccountQueryCommand.java index 2b2c7f3187e4d35d5cded5ebfedae5a42a770a23..be872078f1991e8e98ce85222594baaa7ddcd7ca 100644 --- a/src/main/java/com/comandante/creeper/merchant/bank/commands/AccountQueryCommand.java +++ b/src/main/java/com/comandante/creeper/merchant/bank/commands/AccountQueryCommand.java @@ -6,8 +6,10 @@ import com.comandante.creeper.server.Color; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.MessageEvent; +import java.text.NumberFormat; import java.util.Arrays; import java.util.List; +import java.util.Locale; public class AccountQueryCommand extends BankCommand { @@ -24,8 +26,8 @@ public class AccountQueryCommand extends BankCommand { try { int goldInBank = playerManager.getPlayerMetadata(playerId).getGoldInBank(); int gold = playerManager.getPlayerMetadata(playerId).getGold(); - write("You have " + goldInBank + Color.YELLOW + " gold" + Color.RESET + " in your bank account."+ "\r\n"); - write("You have " + gold + Color.YELLOW + " gold" + Color.RESET + " in your inventory."+ "\r\n"); + write("You have " + NumberFormat.getNumberInstance(Locale.US).format(goldInBank) + Color.YELLOW + " gold" + Color.RESET + " in your bank account."+ "\r\n"); + write("You have " + NumberFormat.getNumberInstance(Locale.US).format(gold) + Color.YELLOW + " gold" + Color.RESET + " in your inventory."+ "\r\n"); } finally { super.messageReceived(ctx, e); } diff --git a/src/main/java/com/comandante/creeper/merchant/bank/commands/DepositCommand.java b/src/main/java/com/comandante/creeper/merchant/bank/commands/DepositCommand.java index 314dfe9d12f7aef61455c8c09f94c05aaf22aaf4..f1330abf028b0e6637803891a19394935a35530f 100644 --- a/src/main/java/com/comandante/creeper/merchant/bank/commands/DepositCommand.java +++ b/src/main/java/com/comandante/creeper/merchant/bank/commands/DepositCommand.java @@ -7,8 +7,10 @@ import com.comandante.creeper.server.Color; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.MessageEvent; +import java.text.NumberFormat; import java.util.Arrays; import java.util.List; +import java.util.Locale; public class DepositCommand extends BankCommand { @@ -27,7 +29,7 @@ public class DepositCommand extends BankCommand { int depositAmt = Integer.parseInt(originalMessageParts.get(1)); if (areFundsAvailable(depositAmt)) { player.transferGoldToBank(depositAmt); - write("Your funds of " + depositAmt + Color.YELLOW + " gold " + Color.RESET + "have been transferred to your bank account."+ "\r\n"); + write("Your funds of " + NumberFormat.getNumberInstance(Locale.US).format(depositAmt) + Color.YELLOW + " gold " + Color.RESET + "have been transferred to your bank account."+ "\r\n"); } else { write("You don't have enough" + Color.YELLOW + " gold "+ Color.RESET + "to cover the deposit amount."+ "\r\n"); } diff --git a/src/main/java/com/comandante/creeper/merchant/bank/commands/WithdrawalCommand.java b/src/main/java/com/comandante/creeper/merchant/bank/commands/WithdrawalCommand.java index a1f1f5b710c615852938c300c3b3eefa32536da5..23946a7d7b320eb24532b050a5ddf14dbbc2e7cf 100644 --- a/src/main/java/com/comandante/creeper/merchant/bank/commands/WithdrawalCommand.java +++ b/src/main/java/com/comandante/creeper/merchant/bank/commands/WithdrawalCommand.java @@ -6,8 +6,10 @@ import com.comandante.creeper.server.Color; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.MessageEvent; +import java.text.NumberFormat; import java.util.Arrays; import java.util.List; +import java.util.Locale; public class WithdrawalCommand extends BankCommand { @@ -26,7 +28,7 @@ public class WithdrawalCommand extends BankCommand { int withdrawalAmount = Integer.parseInt(originalMessageParts.get(1)); if (areBankFundsAvailable(withdrawalAmount)) { player.transferBankGoldToPlayer(withdrawalAmount); - write("Your funds of " + withdrawalAmount + Color.YELLOW + " gold " + Color.RESET + "have been withdrawn from your bank account." + "\r\n"); + write("Your funds of " + NumberFormat.getNumberInstance(Locale.US).format(withdrawalAmount) + Color.YELLOW + " gold " + Color.RESET + "have been withdrawn from your bank account." + "\r\n"); } else { write("You don't have enough" + Color.YELLOW + " gold "+ Color.RESET + "to cover the withdrawal amount." + "\r\n"); } diff --git a/src/main/java/com/comandante/creeper/player/Player.java b/src/main/java/com/comandante/creeper/player/Player.java index 5b3aca67fa6e531421e19863e6e573cf4a30146f..a7e2ee567453734180ff9d666e3680a47f9335f0 100755 --- a/src/main/java/com/comandante/creeper/player/Player.java +++ b/src/main/java/com/comandante/creeper/player/Player.java @@ -109,12 +109,14 @@ public class Player extends CreeperEntity { private void processEffects() { synchronized (interner.intern(playerId)) { PlayerMetadata playerMetadata = getPlayerMetadata(); - for (String effectId : playerMetadata.getEffects()) { + Iterator<String> iterator = playerMetadata.getEffects().iterator(); + while (iterator.hasNext()) { + String effectId = iterator.next(); Effect effect = gameManager.getEntityManager().getEffectEntity(effectId); if (effect.getEffectApplications() >= effect.getMaxEffectApplications()) { gameManager.getChannelUtils().write(playerId, effect.getEffectName() + " has worn off.\r\n", true); gameManager.getEntityManager().removeEffect(effect); - playerMetadata.removeEffectId(effectId); + iterator.remove(); } else { effect.setEffectApplications(effect.getEffectApplications() + 1); gameManager.getEffectsManager().application(effect, playerMetadata); @@ -646,7 +648,9 @@ public class Player extends CreeperEntity { if (playerMetadata.getEffects() != null) { for (String effectId : playerMetadata.getEffects()) { Effect effect = gameManager.getEntityManager().getEffectEntity(effectId); - StatsHelper.combineStats(newStats, effect.getDurationStats()); + if (effect != null) { + StatsHelper.combineStats(newStats, effect.getDurationStats()); + } } } return newStats; diff --git a/src/main/java/com/comandante/creeper/player/PlayerMetadata.java b/src/main/java/com/comandante/creeper/player/PlayerMetadata.java index 9998838c6a229a6b2b4cccd58b4ebf8227771a77..ed4853e91878d48a8d431801d877dae2537aafca 100644 --- a/src/main/java/com/comandante/creeper/player/PlayerMetadata.java +++ b/src/main/java/com/comandante/creeper/player/PlayerMetadata.java @@ -122,10 +122,6 @@ public class PlayerMetadata implements Serializable { effects.add(effectId); } - protected void removeEffectId(String effectId) { - effects.remove(effectId); - } - public String getPlayerName() { return playerName; }