Commit ecf028d0 authored by Secretboy's avatar Secretboy Committed by GitHub
Browse files

add /language command (#780)

* Fix the following issues:
1. HashMap non-thread-safe issus
2. Fix the same problem in pr621, but use a better implementation

Add the following functions:
1. There is now a language cache inside getLanguage to prepare for different languages corresponding to different time zones where the accounts in the server are located

* add /language command,each account has their own Locate
parent 0f134151
...@@ -206,6 +206,14 @@ public final class Grasscutter { ...@@ -206,6 +206,14 @@ public final class Grasscutter {
return language; return language;
} }
public static void setLanguage(Language language) {
Grasscutter.language = language;
}
public static Language getLanguage(String langCode) {
return Language.getLanguage(langCode);
}
public static Logger getLogger() { public static Logger getLogger() {
return log; return log;
} }
......
...@@ -17,12 +17,12 @@ public final class AccountCommand implements CommandHandler { ...@@ -17,12 +17,12 @@ public final class AccountCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (sender != null) { if (sender != null) {
CommandHandler.sendMessage(sender, translate("commands.generic.console_execute_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.generic.console_execute_error"));
return; return;
} }
if (args.size() < 2) { if (args.size() < 2) {
CommandHandler.sendMessage(null, translate("commands.account.command_usage")); CommandHandler.sendMessage(null, translate(sender, "commands.account.command_usage"));
return; return;
} }
...@@ -31,7 +31,7 @@ public final class AccountCommand implements CommandHandler { ...@@ -31,7 +31,7 @@ public final class AccountCommand implements CommandHandler {
switch (action) { switch (action) {
default: default:
CommandHandler.sendMessage(null, translate("commands.account.command_usage")); CommandHandler.sendMessage(null, translate(sender, "commands.account.command_usage"));
return; return;
case "create": case "create":
int uid = 0; int uid = 0;
...@@ -39,20 +39,20 @@ public final class AccountCommand implements CommandHandler { ...@@ -39,20 +39,20 @@ public final class AccountCommand implements CommandHandler {
try { try {
uid = Integer.parseInt(args.get(2)); uid = Integer.parseInt(args.get(2));
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
CommandHandler.sendMessage(null, translate("commands.account.invalid")); CommandHandler.sendMessage(null, translate(sender, "commands.account.invalid"));
return; return;
} }
} }
emu.grasscutter.game.Account account = DatabaseHelper.createAccountWithId(username, uid); emu.grasscutter.game.Account account = DatabaseHelper.createAccountWithId(username, uid);
if (account == null) { if (account == null) {
CommandHandler.sendMessage(null, translate("commands.account.exists")); CommandHandler.sendMessage(null, translate(sender, "commands.account.exists"));
return; return;
} else { } else {
account.addPermission("*"); account.addPermission("*");
account.save(); // Save account to database. account.save(); // Save account to database.
CommandHandler.sendMessage(null, translate("commands.account.create", Integer.toString(account.getPlayerUid()))); CommandHandler.sendMessage(null, translate(sender, "commands.account.create", Integer.toString(account.getPlayerUid())));
} }
return; return;
case "delete": case "delete":
...@@ -60,7 +60,7 @@ public final class AccountCommand implements CommandHandler { ...@@ -60,7 +60,7 @@ public final class AccountCommand implements CommandHandler {
Account toDelete = DatabaseHelper.getAccountByName(username); Account toDelete = DatabaseHelper.getAccountByName(username);
if (toDelete == null) { if (toDelete == null) {
CommandHandler.sendMessage(null, translate("commands.account.no_account")); CommandHandler.sendMessage(null, translate(sender, "commands.account.no_account"));
return; return;
} }
...@@ -73,7 +73,7 @@ public final class AccountCommand implements CommandHandler { ...@@ -73,7 +73,7 @@ public final class AccountCommand implements CommandHandler {
// Finally, we do the actual deletion. // Finally, we do the actual deletion.
DatabaseHelper.deleteAccount(toDelete); DatabaseHelper.deleteAccount(toDelete);
CommandHandler.sendMessage(null, translate("commands.account.delete")); CommandHandler.sendMessage(null, translate(sender, "commands.account.delete"));
} }
} }
} }
...@@ -15,7 +15,7 @@ public final class BroadcastCommand implements CommandHandler { ...@@ -15,7 +15,7 @@ public final class BroadcastCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (args.size() < 1) { if (args.size() < 1) {
CommandHandler.sendMessage(sender, translate("commands.broadcast.command_usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.broadcast.command_usage"));
return; return;
} }
...@@ -25,6 +25,6 @@ public final class BroadcastCommand implements CommandHandler { ...@@ -25,6 +25,6 @@ public final class BroadcastCommand implements CommandHandler {
CommandHandler.sendMessage(p, message); CommandHandler.sendMessage(p, message);
} }
CommandHandler.sendMessage(sender, translate("commands.broadcast.message_sent")); CommandHandler.sendMessage(sender, translate(sender, "commands.broadcast.message_sent"));
} }
} }
...@@ -14,31 +14,31 @@ public final class ChangeSceneCommand implements CommandHandler { ...@@ -14,31 +14,31 @@ public final class ChangeSceneCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
if (args.size() != 1) { if (args.size() != 1) {
CommandHandler.sendMessage(sender, translate("commands.changescene.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.changescene.usage"));
return; return;
} }
try { try {
int sceneId = Integer.parseInt(args.get(0)); int sceneId = Integer.parseInt(args.get(0));
if (sceneId == targetPlayer.getSceneId()) { if (sceneId == targetPlayer.getSceneId()) {
CommandHandler.sendMessage(sender, translate("commands.changescene.already_in_scene")); CommandHandler.sendMessage(sender, translate(sender, "commands.changescene.already_in_scene"));
return; return;
} }
boolean result = targetPlayer.getWorld().transferPlayerToScene(targetPlayer, sceneId, targetPlayer.getPos()); boolean result = targetPlayer.getWorld().transferPlayerToScene(targetPlayer, sceneId, targetPlayer.getPos());
if (!result) { if (!result) {
CommandHandler.sendMessage(sender, translate("commands.changescene.exists_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.changescene.exists_error"));
return; return;
} }
CommandHandler.sendMessage(sender, translate("commands.changescene.success", Integer.toString(sceneId))); CommandHandler.sendMessage(sender, translate(sender, "commands.changescene.success", Integer.toString(sceneId)));
} catch (Exception e) { } catch (Exception e) {
CommandHandler.sendMessage(sender, translate("commands.execution.argument_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.argument_error"));
} }
} }
} }
...@@ -21,11 +21,11 @@ public final class ClearCommand implements CommandHandler { ...@@ -21,11 +21,11 @@ public final class ClearCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
if (args.size() < 1) { if (args.size() < 1) {
CommandHandler.sendMessage(sender, translate("commands.clear.command_usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.clear.command_usage"));
return; return;
} }
Inventory playerInventory = targetPlayer.getInventory(); Inventory playerInventory = targetPlayer.getInventory();
...@@ -37,7 +37,7 @@ public final class ClearCommand implements CommandHandler { ...@@ -37,7 +37,7 @@ public final class ClearCommand implements CommandHandler {
.filter(item -> item.getItemType() == ItemType.ITEM_WEAPON) .filter(item -> item.getItemType() == ItemType.ITEM_WEAPON)
.filter(item -> !item.isLocked() && !item.isEquipped()) .filter(item -> !item.isLocked() && !item.isEquipped())
.toList(); .toList();
CommandHandler.sendMessage(sender, translate("commands.clear.weapons", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.clear.weapons", targetPlayer.getNickname()));
} }
case "art" -> { case "art" -> {
toDelete = playerInventory.getItems().values().stream() toDelete = playerInventory.getItems().values().stream()
...@@ -45,7 +45,7 @@ public final class ClearCommand implements CommandHandler { ...@@ -45,7 +45,7 @@ public final class ClearCommand implements CommandHandler {
.filter(item -> item.getLevel() == 1 && item.getExp() == 0) .filter(item -> item.getLevel() == 1 && item.getExp() == 0)
.filter(item -> !item.isLocked() && !item.isEquipped()) .filter(item -> !item.isLocked() && !item.isEquipped())
.toList(); .toList();
CommandHandler.sendMessage(sender, translate("commands.clear.artifacts", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.clear.artifacts", targetPlayer.getNickname()));
} }
case "mat" -> { case "mat" -> {
toDelete = playerInventory.getItems().values().stream() toDelete = playerInventory.getItems().values().stream()
...@@ -53,7 +53,7 @@ public final class ClearCommand implements CommandHandler { ...@@ -53,7 +53,7 @@ public final class ClearCommand implements CommandHandler {
.filter(item -> item.getLevel() == 1 && item.getExp() == 0) .filter(item -> item.getLevel() == 1 && item.getExp() == 0)
.filter(item -> !item.isLocked() && !item.isEquipped()) .filter(item -> !item.isLocked() && !item.isEquipped())
.toList(); .toList();
CommandHandler.sendMessage(sender, translate("commands.clear.materials", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.clear.materials", targetPlayer.getNickname()));
} }
case "all" -> { case "all" -> {
toDelete = playerInventory.getItems().values().stream() toDelete = playerInventory.getItems().values().stream()
...@@ -61,7 +61,7 @@ public final class ClearCommand implements CommandHandler { ...@@ -61,7 +61,7 @@ public final class ClearCommand implements CommandHandler {
.filter(item1 -> item1.getLevel() == 1 && item1.getExp() == 0) .filter(item1 -> item1.getLevel() == 1 && item1.getExp() == 0)
.filter(item1 -> !item1.isLocked() && !item1.isEquipped()) .filter(item1 -> !item1.isLocked() && !item1.isEquipped())
.toList(); .toList();
CommandHandler.sendMessage(sender, translate("commands.clear.artifacts", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.clear.artifacts", targetPlayer.getNickname()));
playerInventory.removeItems(toDelete); playerInventory.removeItems(toDelete);
toDelete = playerInventory.getItems().values().stream() toDelete = playerInventory.getItems().values().stream()
...@@ -69,7 +69,7 @@ public final class ClearCommand implements CommandHandler { ...@@ -69,7 +69,7 @@ public final class ClearCommand implements CommandHandler {
.filter(item2 -> !item2.isLocked() && !item2.isEquipped()) .filter(item2 -> !item2.isLocked() && !item2.isEquipped())
.toList(); .toList();
playerInventory.removeItems(toDelete); playerInventory.removeItems(toDelete);
CommandHandler.sendMessage(sender, translate("commands.clear.materials", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.clear.materials", targetPlayer.getNickname()));
toDelete = playerInventory.getItems().values().stream() toDelete = playerInventory.getItems().values().stream()
.filter(item3 -> item3.getItemType() == ItemType.ITEM_WEAPON) .filter(item3 -> item3.getItemType() == ItemType.ITEM_WEAPON)
...@@ -77,28 +77,28 @@ public final class ClearCommand implements CommandHandler { ...@@ -77,28 +77,28 @@ public final class ClearCommand implements CommandHandler {
.filter(item3 -> !item3.isLocked() && !item3.isEquipped()) .filter(item3 -> !item3.isLocked() && !item3.isEquipped())
.toList(); .toList();
playerInventory.removeItems(toDelete); playerInventory.removeItems(toDelete);
CommandHandler.sendMessage(sender, translate("commands.clear.weapons", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.clear.weapons", targetPlayer.getNickname()));
toDelete = playerInventory.getItems().values().stream() toDelete = playerInventory.getItems().values().stream()
.filter(item4 -> item4.getItemType() == ItemType.ITEM_FURNITURE) .filter(item4 -> item4.getItemType() == ItemType.ITEM_FURNITURE)
.filter(item4 -> !item4.isLocked() && !item4.isEquipped()) .filter(item4 -> !item4.isLocked() && !item4.isEquipped())
.toList(); .toList();
playerInventory.removeItems(toDelete); playerInventory.removeItems(toDelete);
CommandHandler.sendMessage(sender, translate("commands.clear.furniture", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.clear.furniture", targetPlayer.getNickname()));
toDelete = playerInventory.getItems().values().stream() toDelete = playerInventory.getItems().values().stream()
.filter(item5 -> item5.getItemType() == ItemType.ITEM_DISPLAY) .filter(item5 -> item5.getItemType() == ItemType.ITEM_DISPLAY)
.filter(item5 -> !item5.isLocked() && !item5.isEquipped()) .filter(item5 -> !item5.isLocked() && !item5.isEquipped())
.toList(); .toList();
playerInventory.removeItems(toDelete); playerInventory.removeItems(toDelete);
CommandHandler.sendMessage(sender, translate("commands.clear.displays", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.clear.displays", targetPlayer.getNickname()));
toDelete = playerInventory.getItems().values().stream() toDelete = playerInventory.getItems().values().stream()
.filter(item6 -> item6.getItemType() == ItemType.ITEM_VIRTUAL) .filter(item6 -> item6.getItemType() == ItemType.ITEM_VIRTUAL)
.filter(item6 -> !item6.isLocked() && !item6.isEquipped()) .filter(item6 -> !item6.isLocked() && !item6.isEquipped())
.toList(); .toList();
CommandHandler.sendMessage(sender, translate("commands.clear.virtuals", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.clear.virtuals", targetPlayer.getNickname()));
CommandHandler.sendMessage(sender, translate("commands.clear.everything", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.clear.everything", targetPlayer.getNickname()));
} }
} }
......
...@@ -15,14 +15,14 @@ public final class CoopCommand implements CommandHandler { ...@@ -15,14 +15,14 @@ public final class CoopCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
Player host = sender; Player host = sender;
switch (args.size()) { switch (args.size()) {
case 0: // Summon target to self case 0: // Summon target to self
CommandHandler.sendMessage(sender, translate("commands.coop.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.coop.usage"));
if (sender == null) // Console doesn't have a self to summon to if (sender == null) // Console doesn't have a self to summon to
return; return;
break; break;
...@@ -31,16 +31,16 @@ public final class CoopCommand implements CommandHandler { ...@@ -31,16 +31,16 @@ public final class CoopCommand implements CommandHandler {
int hostId = Integer.parseInt(args.get(0)); int hostId = Integer.parseInt(args.get(0));
host = Grasscutter.getGameServer().getPlayerByUid(hostId); host = Grasscutter.getGameServer().getPlayerByUid(hostId);
if (host == null) { if (host == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.player_offline_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.player_offline_error"));
return; return;
} }
break; break;
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
CommandHandler.sendMessage(sender, translate("commands.execution.uid_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.uid_error"));
return; return;
} }
default: default:
CommandHandler.sendMessage(sender, translate("commands.coop.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.coop.usage"));
return; return;
} }
...@@ -50,6 +50,6 @@ public final class CoopCommand implements CommandHandler { ...@@ -50,6 +50,6 @@ public final class CoopCommand implements CommandHandler {
} }
host.getServer().getMultiplayerManager().applyEnterMp(targetPlayer, host.getUid()); host.getServer().getMultiplayerManager().applyEnterMp(targetPlayer, host.getUid());
targetPlayer.getServer().getMultiplayerManager().applyEnterMpReply(host, targetPlayer.getUid(), true); targetPlayer.getServer().getMultiplayerManager().applyEnterMpReply(host, targetPlayer.getUid(), true);
CommandHandler.sendMessage(sender, translate("commands.coop.success", targetPlayer.getNickname(), host.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.coop.success", targetPlayer.getNickname(), host.getNickname()));
} }
} }
...@@ -19,7 +19,7 @@ public final class DropCommand implements CommandHandler { ...@@ -19,7 +19,7 @@ public final class DropCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(null, translate("commands.execution.need_target")); CommandHandler.sendMessage(null, translate(sender, "commands.execution.need_target"));
return; return;
} }
...@@ -31,25 +31,25 @@ public final class DropCommand implements CommandHandler { ...@@ -31,25 +31,25 @@ public final class DropCommand implements CommandHandler {
try { try {
amount = Integer.parseInt(args.get(1)); amount = Integer.parseInt(args.get(1));
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
CommandHandler.sendMessage(sender, translate("commands.generic.invalid.amount")); CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.amount"));
return; return;
} // Slightly cheeky here: no break, so it falls through to initialize the first argument too } // Slightly cheeky here: no break, so it falls through to initialize the first argument too
case 1: case 1:
try { try {
item = Integer.parseInt(args.get(0)); item = Integer.parseInt(args.get(0));
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
CommandHandler.sendMessage(sender, translate("commands.generic.invalid.itemId")); CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.itemId"));
return; return;
} }
break; break;
default: default:
CommandHandler.sendMessage(sender, translate("commands.drop.command_usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.drop.command_usage"));
return; return;
} }
ItemData itemData = GameData.getItemDataMap().get(item); ItemData itemData = GameData.getItemDataMap().get(item);
if (itemData == null) { if (itemData == null) {
CommandHandler.sendMessage(sender, translate("commands.generic.invalid.itemId")); CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.itemId"));
return; return;
} }
if (itemData.isEquip()) { if (itemData.isEquip()) {
...@@ -63,6 +63,6 @@ public final class DropCommand implements CommandHandler { ...@@ -63,6 +63,6 @@ public final class DropCommand implements CommandHandler {
EntityItem entity = new EntityItem(targetPlayer.getScene(), targetPlayer, itemData, targetPlayer.getPos().clone().addY(3f), amount); EntityItem entity = new EntityItem(targetPlayer.getScene(), targetPlayer, itemData, targetPlayer.getPos().clone().addY(3f), amount);
targetPlayer.getScene().addEntity(entity); targetPlayer.getScene().addEntity(entity);
} }
CommandHandler.sendMessage(sender, translate("commands.drop.success", Integer.toString(amount), Integer.toString(item))); CommandHandler.sendMessage(sender, translate(sender, "commands.drop.success", Integer.toString(amount), Integer.toString(item)));
} }
} }
\ No newline at end of file
...@@ -14,30 +14,30 @@ public final class EnterDungeonCommand implements CommandHandler { ...@@ -14,30 +14,30 @@ public final class EnterDungeonCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(null, translate("commands.execution.need_target")); CommandHandler.sendMessage(null, translate(sender, "commands.execution.need_target"));
return; return;
} }
if (args.size() < 1) { if (args.size() < 1) {
CommandHandler.sendMessage(sender, translate("commands.enter_dungeon.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.enter_dungeon.usage"));
return; return;
} }
try { try {
int dungeonId = Integer.parseInt(args.get(0)); int dungeonId = Integer.parseInt(args.get(0));
if (dungeonId == targetPlayer.getSceneId()) { if (dungeonId == targetPlayer.getSceneId()) {
CommandHandler.sendMessage(sender, translate("commands.enter_dungeon.in_dungeon_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.enter_dungeon.in_dungeon_error"));
return; return;
} }
boolean result = targetPlayer.getServer().getDungeonManager().enterDungeon(targetPlayer.getSession().getPlayer(), 0, dungeonId); boolean result = targetPlayer.getServer().getDungeonManager().enterDungeon(targetPlayer.getSession().getPlayer(), 0, dungeonId);
CommandHandler.sendMessage(sender, translate("commands.enter_dungeon.changed", dungeonId)); CommandHandler.sendMessage(sender, translate(sender, "commands.enter_dungeon.changed", dungeonId));
if (!result) { if (!result) {
CommandHandler.sendMessage(sender, translate("commands.enter_dungeon.not_found_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.enter_dungeon.not_found_error"));
} }
} catch (Exception e) { } catch (Exception e) {
CommandHandler.sendMessage(sender, translate("commands.enter_dungeon.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.enter_dungeon.usage"));
} }
} }
} }
...@@ -21,7 +21,7 @@ public final class GiveAllCommand implements CommandHandler { ...@@ -21,7 +21,7 @@ public final class GiveAllCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
int amount = 99999; int amount = 99999;
...@@ -33,21 +33,21 @@ public final class GiveAllCommand implements CommandHandler { ...@@ -33,21 +33,21 @@ public final class GiveAllCommand implements CommandHandler {
try { try {
amount = Integer.parseInt(args.get(0)); amount = Integer.parseInt(args.get(0));
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
CommandHandler.sendMessage(sender, translate("commands.generic.invalid.amount")); CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.amount"));
return; return;
} }
break; break;
default: // invalid default: // invalid
CommandHandler.sendMessage(sender, translate("commands.giveAll.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.giveAll.usage"));
return; return;
} }
this.giveAllItems(targetPlayer, amount); this.giveAllItems(targetPlayer, amount);
CommandHandler.sendMessage(sender, translate("commands.giveAll.success", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(targetPlayer, "commands.giveAll.success", targetPlayer.getNickname()));
} }
public void giveAllItems(Player player, int amount) { public void giveAllItems(Player player, int amount) {
CommandHandler.sendMessage(player, translate("commands.giveAll.started")); CommandHandler.sendMessage(player, translate(player, "commands.giveAll.started"));
for (AvatarData avatarData: GameData.getAvatarDataMap().values()) { for (AvatarData avatarData: GameData.getAvatarDataMap().values()) {
//Exclude test avatar //Exclude test avatar
......
...@@ -115,11 +115,11 @@ public final class GiveArtifactCommand implements CommandHandler { ...@@ -115,11 +115,11 @@ public final class GiveArtifactCommand implements CommandHandler {
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
// Sanity checks // Sanity checks
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
if (args.size() < 2) { if (args.size() < 2) {
CommandHandler.sendMessage(sender, translate("commands.giveArtifact.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.giveArtifact.usage"));
return; return;
} }
...@@ -128,13 +128,13 @@ public final class GiveArtifactCommand implements CommandHandler { ...@@ -128,13 +128,13 @@ public final class GiveArtifactCommand implements CommandHandler {
try { try {
itemId = Integer.parseInt(args.remove(0)); itemId = Integer.parseInt(args.remove(0));
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
CommandHandler.sendMessage(sender, translate("commands.giveArtifact.id_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.giveArtifact.id_error"));
return; return;
} }
ItemData itemData = GameData.getItemDataMap().get(itemId); ItemData itemData = GameData.getItemDataMap().get(itemId);
if (itemData.getItemType() != ItemType.ITEM_RELIQUARY) { if (itemData.getItemType() != ItemType.ITEM_RELIQUARY) {
CommandHandler.sendMessage(sender, translate("commands.giveArtifact.id_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.giveArtifact.id_error"));
return; return;
} }
...@@ -155,7 +155,7 @@ public final class GiveArtifactCommand implements CommandHandler { ...@@ -155,7 +155,7 @@ public final class GiveArtifactCommand implements CommandHandler {
} }
if (mainPropId == -1) { if (mainPropId == -1) {
CommandHandler.sendMessage(sender, translate("commands.execution.argument_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.argument_error"));
return; return;
} }
...@@ -194,7 +194,7 @@ public final class GiveArtifactCommand implements CommandHandler { ...@@ -194,7 +194,7 @@ public final class GiveArtifactCommand implements CommandHandler {
appendPropIdList.addAll(Collections.nCopies(n, appendPropId)); appendPropIdList.addAll(Collections.nCopies(n, appendPropId));
}); });
} catch (Exception ignored) { } catch (Exception ignored) {
CommandHandler.sendMessage(sender, translate("commands.execution.argument_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.argument_error"));
return; return;
} }
...@@ -206,7 +206,7 @@ public final class GiveArtifactCommand implements CommandHandler { ...@@ -206,7 +206,7 @@ public final class GiveArtifactCommand implements CommandHandler {
item.getAppendPropIdList().addAll(appendPropIdList); item.getAppendPropIdList().addAll(appendPropIdList);
targetPlayer.getInventory().addItem(item, ActionReason.SubfieldDrop); targetPlayer.getInventory().addItem(item, ActionReason.SubfieldDrop);
CommandHandler.sendMessage(sender, translate("commands.giveArtifact.success", Integer.toString(itemId), Integer.toString(targetPlayer.getUid()))); CommandHandler.sendMessage(sender, translate(sender, "commands.giveArtifact.success", Integer.toString(itemId), Integer.toString(targetPlayer.getUid())));
} }
} }
...@@ -18,7 +18,7 @@ public final class GiveCharCommand implements CommandHandler { ...@@ -18,7 +18,7 @@ public final class GiveCharCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
...@@ -31,7 +31,7 @@ public final class GiveCharCommand implements CommandHandler { ...@@ -31,7 +31,7 @@ public final class GiveCharCommand implements CommandHandler {
level = Integer.parseInt(args.get(1)); level = Integer.parseInt(args.get(1));
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
// TODO: Parse from avatar name using GM Handbook. // TODO: Parse from avatar name using GM Handbook.
CommandHandler.sendMessage(sender, translate("commands.execution.invalid.avatarLevel")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.invalid.avatarLevel"));
return; return;
} // Cheeky fall-through to parse first argument too } // Cheeky fall-through to parse first argument too
case 1: case 1:
...@@ -39,24 +39,24 @@ public final class GiveCharCommand implements CommandHandler { ...@@ -39,24 +39,24 @@ public final class GiveCharCommand implements CommandHandler {
avatarId = Integer.parseInt(args.get(0)); avatarId = Integer.parseInt(args.get(0));
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
// TODO: Parse from avatar name using GM Handbook. // TODO: Parse from avatar name using GM Handbook.
CommandHandler.sendMessage(sender, translate("commands.execution.invalid.avatarId")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.invalid.avatarId"));
return; return;
} }
break; break;
default: default:
CommandHandler.sendMessage(sender, translate("commands.giveChar.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.giveChar.usage"));
return; return;
} }
AvatarData avatarData = GameData.getAvatarDataMap().get(avatarId); AvatarData avatarData = GameData.getAvatarDataMap().get(avatarId);
if (avatarData == null) { if (avatarData == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.invalid.avatarId")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.invalid.avatarId"));
return; return;
} }
// Check level. // Check level.
if (level > 90) { if (level > 90) {
CommandHandler.sendMessage(sender, translate("commands.execution.invalid.avatarLevel")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.invalid.avatarLevel"));
return; return;
} }
...@@ -76,6 +76,6 @@ public final class GiveCharCommand implements CommandHandler { ...@@ -76,6 +76,6 @@ public final class GiveCharCommand implements CommandHandler {
avatar.recalcStats(); avatar.recalcStats();
targetPlayer.addAvatar(avatar); targetPlayer.addAvatar(avatar);
CommandHandler.sendMessage(sender, translate("commands.giveChar.given", Integer.toString(avatarId), Integer.toString(level), Integer.toString(targetPlayer.getUid()))); CommandHandler.sendMessage(sender, translate(sender, "commands.giveChar.given", Integer.toString(avatarId), Integer.toString(level), Integer.toString(targetPlayer.getUid())));
} }
} }
...@@ -34,7 +34,7 @@ public final class GiveCommand implements CommandHandler { ...@@ -34,7 +34,7 @@ public final class GiveCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
int item; int item;
...@@ -68,21 +68,21 @@ public final class GiveCommand implements CommandHandler { ...@@ -68,21 +68,21 @@ public final class GiveCommand implements CommandHandler {
try { try {
refinement = Integer.parseInt(args.get(3)); refinement = Integer.parseInt(args.get(3));
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
CommandHandler.sendMessage(sender, translate("commands.generic.invalid.itemRefinement")); CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.itemRefinement"));
return; return;
} // Fallthrough } // Fallthrough
case 3: // <itemId|itemName> [amount] [level] case 3: // <itemId|itemName> [amount] [level]
try { try {
lvl = Integer.parseInt(args.get(2)); lvl = Integer.parseInt(args.get(2));
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
CommandHandler.sendMessage(sender, translate("commands.generic.invalid.itemLevel")); CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.itemLevel"));
return; return;
} // Fallthrough } // Fallthrough
case 2: // <itemId|itemName> [amount] case 2: // <itemId|itemName> [amount]
try { try {
amount = Integer.parseInt(args.get(1)); amount = Integer.parseInt(args.get(1));
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
CommandHandler.sendMessage(sender, translate("commands.generic.invalid.amount")); CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.amount"));
return; return;
} // Fallthrough } // Fallthrough
case 1: // <itemId|itemName> case 1: // <itemId|itemName>
...@@ -90,28 +90,28 @@ public final class GiveCommand implements CommandHandler { ...@@ -90,28 +90,28 @@ public final class GiveCommand implements CommandHandler {
item = Integer.parseInt(args.get(0)); item = Integer.parseInt(args.get(0));
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
// TODO: Parse from item name using GM Handbook. // TODO: Parse from item name using GM Handbook.
CommandHandler.sendMessage(sender, translate("commands.generic.invalid.itemId")); CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.itemId"));
return; return;
} }
break; break;
default: // *No args* default: // *No args*
CommandHandler.sendMessage(sender, translate("commands.give.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.give.usage"));
return; return;
} }
ItemData itemData = GameData.getItemDataMap().get(item); ItemData itemData = GameData.getItemDataMap().get(item);
if (itemData == null) { if (itemData == null) {
CommandHandler.sendMessage(sender, translate("commands.generic.invalid.itemId")); CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.itemId"));
return; return;
} }
if (refinement != 0) { if (refinement != 0) {
if (itemData.getItemType() == ItemType.ITEM_WEAPON) { if (itemData.getItemType() == ItemType.ITEM_WEAPON) {
if (refinement < 1 || refinement > 5) { if (refinement < 1 || refinement > 5) {
CommandHandler.sendMessage(sender, translate("commands.give.refinement_must_between_1_and_5")); CommandHandler.sendMessage(sender, translate(sender, "commands.give.refinement_must_between_1_and_5"));
return; return;
} }
} else { } else {
CommandHandler.sendMessage(sender, translate("commands.give.refinement_only_applicable_weapons")); CommandHandler.sendMessage(sender, translate(sender, "commands.give.refinement_only_applicable_weapons"));
return; return;
} }
} }
...@@ -119,11 +119,11 @@ public final class GiveCommand implements CommandHandler { ...@@ -119,11 +119,11 @@ public final class GiveCommand implements CommandHandler {
this.item(targetPlayer, itemData, amount, lvl, refinement); this.item(targetPlayer, itemData, amount, lvl, refinement);
if (!itemData.isEquip()) { if (!itemData.isEquip()) {
CommandHandler.sendMessage(sender, translate("commands.give.given", Integer.toString(amount), Integer.toString(item), Integer.toString(targetPlayer.getUid()))); CommandHandler.sendMessage(sender, translate(sender, "commands.give.given", Integer.toString(amount), Integer.toString(item), Integer.toString(targetPlayer.getUid())));
} else if (itemData.getItemType() == ItemType.ITEM_WEAPON) { } else if (itemData.getItemType() == ItemType.ITEM_WEAPON) {
CommandHandler.sendMessage(sender, translate("commands.give.given_with_level_and_refinement", Integer.toString(item), Integer.toString(lvl), Integer.toString(refinement), Integer.toString(amount), Integer.toString(targetPlayer.getUid()))); CommandHandler.sendMessage(sender, translate(sender, "commands.give.given_with_level_and_refinement", Integer.toString(item), Integer.toString(lvl), Integer.toString(refinement), Integer.toString(amount), Integer.toString(targetPlayer.getUid())));
} else { } else {
CommandHandler.sendMessage(sender, translate("commands.give.given_level", Integer.toString(item), Integer.toString(lvl), Integer.toString(amount), Integer.toString(targetPlayer.getUid()))); CommandHandler.sendMessage(sender, translate(sender, "commands.give.given_level", Integer.toString(item), Integer.toString(lvl), Integer.toString(amount), Integer.toString(targetPlayer.getUid())));
} }
} }
......
...@@ -14,7 +14,7 @@ public final class GodModeCommand implements CommandHandler { ...@@ -14,7 +14,7 @@ public final class GodModeCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
...@@ -35,6 +35,6 @@ public final class GodModeCommand implements CommandHandler { ...@@ -35,6 +35,6 @@ public final class GodModeCommand implements CommandHandler {
} }
targetPlayer.setGodmode(enabled); targetPlayer.setGodmode(enabled);
CommandHandler.sendMessage(sender, translate("commands.godmode.success", (enabled ? translate("commands.status.enabled") : translate("commands.status.disabled")), targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.godmode.success", (enabled ? translate(sender, "commands.status.enabled") : translate(sender, "commands.status.disabled")), targetPlayer.getNickname()));
} }
} }
...@@ -17,7 +17,7 @@ public final class HealCommand implements CommandHandler { ...@@ -17,7 +17,7 @@ public final class HealCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
...@@ -32,6 +32,6 @@ public final class HealCommand implements CommandHandler { ...@@ -32,6 +32,6 @@ public final class HealCommand implements CommandHandler {
entity.getWorld().broadcastPacket(new PacketAvatarLifeStateChangeNotify(entity.getAvatar())); entity.getWorld().broadcastPacket(new PacketAvatarLifeStateChangeNotify(entity.getAvatar()));
} }
}); });
CommandHandler.sendMessage(sender, translate("commands.heal.success")); CommandHandler.sendMessage(sender, translate(sender, "commands.heal.success"));
} }
} }
...@@ -32,16 +32,16 @@ public final class HelpCommand implements CommandHandler { ...@@ -32,16 +32,16 @@ public final class HelpCommand implements CommandHandler {
} else { } else {
String command = args.get(0); String command = args.get(0);
CommandHandler handler = CommandMap.getInstance().getHandler(command); CommandHandler handler = CommandMap.getInstance().getHandler(command);
StringBuilder builder = new StringBuilder(player == null ? "\n" + translate("commands.status.help") + " - " : translate("commands.status.help") + " - ").append(command).append(": \n"); StringBuilder builder = new StringBuilder(player == null ? "\n" + translate(player, "commands.status.help") + " - " : translate(player, "commands.status.help") + " - ").append(command).append(": \n");
if (handler == null) { if (handler == null) {
builder.append(translate("commands.generic.command_exist_error")); builder.append(translate(player, "commands.generic.command_exist_error"));
} else { } else {
Command annotation = handler.getClass().getAnnotation(Command.class); Command annotation = handler.getClass().getAnnotation(Command.class);
builder.append(" ").append(translate(annotation.description())).append("\n"); builder.append(" ").append(translate(player, annotation.description())).append("\n");
builder.append(translate("commands.help.usage")).append(annotation.usage()); builder.append(translate(player, "commands.help.usage")).append(annotation.usage());
if (annotation.aliases().length >= 1) { if (annotation.aliases().length >= 1) {
builder.append("\n").append(translate("commands.help.aliases")); builder.append("\n").append(translate(player, "commands.help.aliases"));
for (String alias : annotation.aliases()) { for (String alias : annotation.aliases()) {
builder.append(alias).append(" "); builder.append(alias).append(" ");
} }
...@@ -57,13 +57,13 @@ public final class HelpCommand implements CommandHandler { ...@@ -57,13 +57,13 @@ public final class HelpCommand implements CommandHandler {
void SendAllHelpMessage(Player player, List<Command> annotations) { void SendAllHelpMessage(Player player, List<Command> annotations) {
if (player == null) { if (player == null) {
StringBuilder builder = new StringBuilder("\n" + translate("commands.help.available_commands") + "\n"); StringBuilder builder = new StringBuilder("\n" + translate(player, "commands.help.available_commands") + "\n");
annotations.forEach(annotation -> { annotations.forEach(annotation -> {
builder.append(annotation.label()).append("\n"); builder.append(annotation.label()).append("\n");
builder.append(" ").append(translate(annotation.description())).append("\n"); builder.append(" ").append(translate(player, annotation.description())).append("\n");
builder.append(translate("commands.help.usage")).append(annotation.usage()); builder.append(translate(player, "commands.help.usage")).append(annotation.usage());
if (annotation.aliases().length >= 1) { if (annotation.aliases().length >= 1) {
builder.append("\n").append(translate("commands.help.aliases")); builder.append("\n").append(translate(player, "commands.help.aliases"));
for (String alias : annotation.aliases()) { for (String alias : annotation.aliases()) {
builder.append(alias).append(" "); builder.append(alias).append(" ");
} }
...@@ -74,13 +74,13 @@ public final class HelpCommand implements CommandHandler { ...@@ -74,13 +74,13 @@ public final class HelpCommand implements CommandHandler {
CommandHandler.sendMessage(null, builder.toString()); CommandHandler.sendMessage(null, builder.toString());
} else { } else {
CommandHandler.sendMessage(player, translate("commands.help.available_commands")); CommandHandler.sendMessage(player, translate(player, "commands.help.available_commands"));
annotations.forEach(annotation -> { annotations.forEach(annotation -> {
StringBuilder builder = new StringBuilder(annotation.label()).append("\n"); StringBuilder builder = new StringBuilder(annotation.label()).append("\n");
builder.append(" ").append(translate(annotation.description())).append("\n"); builder.append(" ").append(translate(player, annotation.description())).append("\n");
builder.append(translate("commands.help.usage")).append(annotation.usage()); builder.append(translate(player, "commands.help.usage")).append(annotation.usage());
if (annotation.aliases().length >= 1) { if (annotation.aliases().length >= 1) {
builder.append("\n").append(translate("commands.help.aliases")); builder.append("\n").append(translate(player, "commands.help.aliases"));
for (String alias : annotation.aliases()) { for (String alias : annotation.aliases()) {
builder.append(alias).append(" "); builder.append(alias).append(" ");
} }
......
...@@ -14,16 +14,16 @@ public final class KickCommand implements CommandHandler { ...@@ -14,16 +14,16 @@ public final class KickCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
if (sender != null) { if (sender != null) {
CommandHandler.sendMessage(sender, translate("commands.kick.player_kick_player", CommandHandler.sendMessage(sender, translate(sender, "commands.kick.player_kick_player",
Integer.toString(sender.getAccount().getPlayerUid()), sender.getAccount().getUsername(), Integer.toString(sender.getAccount().getPlayerUid()), sender.getAccount().getUsername(),
Integer.toString(targetPlayer.getUid()), targetPlayer.getAccount().getUsername())); Integer.toString(targetPlayer.getUid()), targetPlayer.getAccount().getUsername()));
} else { } else {
CommandHandler.sendMessage(null, translate("commands.kick.server_kick_player", Integer.toString(targetPlayer.getUid()), targetPlayer.getAccount().getUsername())); CommandHandler.sendMessage(null, translate(sender, "commands.kick.server_kick_player", Integer.toString(targetPlayer.getUid()), targetPlayer.getAccount().getUsername()));
} }
targetPlayer.getSession().close(); targetPlayer.getSession().close();
......
...@@ -18,7 +18,7 @@ public final class KillAllCommand implements CommandHandler { ...@@ -18,7 +18,7 @@ public final class KillAllCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
...@@ -31,14 +31,14 @@ public final class KillAllCommand implements CommandHandler { ...@@ -31,14 +31,14 @@ public final class KillAllCommand implements CommandHandler {
scene = targetPlayer.getWorld().getSceneById(Integer.parseInt(args.get(0))); scene = targetPlayer.getWorld().getSceneById(Integer.parseInt(args.get(0)));
break; break;
default: default:
CommandHandler.sendMessage(sender, translate("commands.kill.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.kill.usage"));
return; return;
} }
} catch (NumberFormatException ignored) { } catch (NumberFormatException ignored) {
CommandHandler.sendMessage(sender, translate("commands.execution.argument_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.argument_error"));
} }
if (scene == null) { if (scene == null) {
CommandHandler.sendMessage(sender, translate("commands.kill.scene_not_found_in_player_world")); CommandHandler.sendMessage(sender, translate(sender, "commands.kill.scene_not_found_in_player_world"));
return; return;
} }
...@@ -48,6 +48,6 @@ public final class KillAllCommand implements CommandHandler { ...@@ -48,6 +48,6 @@ public final class KillAllCommand implements CommandHandler {
.filter(entity -> entity instanceof EntityMonster) .filter(entity -> entity instanceof EntityMonster)
.toList(); .toList();
toKill.forEach(entity -> sceneF.killEntity(entity, 0)); toKill.forEach(entity -> sceneF.killEntity(entity, 0));
CommandHandler.sendMessage(sender, translate("commands.kill.kill_monsters_in_scene", Integer.toString(toKill.size()), Integer.toString(scene.getId()))); CommandHandler.sendMessage(sender, translate(sender, "commands.kill.kill_monsters_in_scene", Integer.toString(toKill.size()), Integer.toString(scene.getId())));
} }
} }
...@@ -19,7 +19,7 @@ public final class KillCharacterCommand implements CommandHandler { ...@@ -19,7 +19,7 @@ public final class KillCharacterCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
...@@ -32,6 +32,6 @@ public final class KillCharacterCommand implements CommandHandler { ...@@ -32,6 +32,6 @@ public final class KillCharacterCommand implements CommandHandler {
targetPlayer.getScene().removeEntity(entity); targetPlayer.getScene().removeEntity(entity);
entity.onDeath(0); entity.onDeath(0);
CommandHandler.sendMessage(sender, translate("commands.killCharacter.success", targetPlayer.getNickname())); CommandHandler.sendMessage(sender, translate(sender, "commands.killCharacter.success", targetPlayer.getNickname()));
} }
} }
...@@ -22,7 +22,7 @@ public final class ListCommand implements CommandHandler { ...@@ -22,7 +22,7 @@ public final class ListCommand implements CommandHandler {
needUID = args.get(0).equals("uid"); needUID = args.get(0).equals("uid");
} }
CommandHandler.sendMessage(sender, translate("commands.list.success", Integer.toString(playersMap.size()))); CommandHandler.sendMessage(sender, translate(sender, "commands.list.success", Integer.toString(playersMap.size())));
if (playersMap.size() != 0) { if (playersMap.size() != 0) {
StringBuilder playerSet = new StringBuilder(); StringBuilder playerSet = new StringBuilder();
......
...@@ -16,12 +16,12 @@ public final class PermissionCommand implements CommandHandler { ...@@ -16,12 +16,12 @@ public final class PermissionCommand implements CommandHandler {
@Override @Override
public void execute(Player sender, Player targetPlayer, List<String> args) { public void execute(Player sender, Player targetPlayer, List<String> args) {
if (targetPlayer == null) { if (targetPlayer == null) {
CommandHandler.sendMessage(sender, translate("commands.execution.need_target")); CommandHandler.sendMessage(sender, translate(sender, "commands.execution.need_target"));
return; return;
} }
if (args.size() != 2) { if (args.size() != 2) {
CommandHandler.sendMessage(sender, translate("commands.permission.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.permission.usage"));
return; return;
} }
...@@ -30,26 +30,26 @@ public final class PermissionCommand implements CommandHandler { ...@@ -30,26 +30,26 @@ public final class PermissionCommand implements CommandHandler {
Account account = targetPlayer.getAccount(); Account account = targetPlayer.getAccount();
if (account == null) { if (account == null) {
CommandHandler.sendMessage(sender, translate("commands.permission.account_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.permission.account_error"));
return; return;
} }
switch (action) { switch (action) {
default: default:
CommandHandler.sendMessage(sender, translate("commands.permission.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.permission.usage"));
break; break;
case "add": case "add":
if (account.addPermission(permission)) { if (account.addPermission(permission)) {
CommandHandler.sendMessage(sender, translate("commands.permission.add")); CommandHandler.sendMessage(sender, translate(sender, "commands.permission.add"));
} else CommandHandler.sendMessage(sender, translate("commands.permission.has_error")); } else CommandHandler.sendMessage(sender, translate(sender, "commands.permission.has_error"));
break; break;
case "remove": case "remove":
if (account.removePermission(permission)) { if (account.removePermission(permission)) {
CommandHandler.sendMessage(sender, translate("commands.permission.remove")); CommandHandler.sendMessage(sender, translate(sender, "commands.permission.remove"));
} else CommandHandler.sendMessage(sender, translate("commands.permission.not_have_error")); } else CommandHandler.sendMessage(sender, translate(sender, "commands.permission.not_have_error"));
break; break;
} }
account.save(); account.save();
} }
} }
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment