From ca56597bc1a348ba33a794a3c116e2b07d221044 Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris@kearneymail.com>
Date: Wed, 1 Jul 2015 00:40:11 -0700
Subject: [PATCH] number formatting and xp command output formatting
---
.../comandante/creeper/command/GoldCommand.java | 4 +++-
.../comandante/creeper/command/LootCommand.java | 4 +++-
.../com/comandante/creeper/command/XpCommand.java | 15 +++++++++------
.../bank/commands/AccountQueryCommand.java | 6 ++++--
.../merchant/bank/commands/DepositCommand.java | 4 +++-
.../merchant/bank/commands/WithdrawalCommand.java | 4 +++-
.../com/comandante/creeper/player/Player.java | 10 +++++++---
.../comandante/creeper/player/PlayerMetadata.java | 4 ----
8 files changed, 32 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/comandante/creeper/command/GoldCommand.java b/src/main/java/com/comandante/creeper/command/GoldCommand.java
index 0fbcfeb5..605b0c15 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 957c4483..3b1113bf 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 5d98bfe1..9715f59b 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 2b2c7f31..be872078 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 314dfe9d..f1330abf 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 a1f1f5b7..23946a7d 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 5b3aca67..a7e2ee56 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 9998838c..ed4853e9 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;
}
--
GitLab