From 772ab4b5253fc583c292a2d606f864fd9d88d2ef Mon Sep 17 00:00:00 2001 From: Woder <17339354+wode490390@users.noreply.github.com> Date: Sun, 5 Jun 2022 22:46:02 +0800 Subject: [PATCH] Fix translation related issues --- src/main/java/cn/nukkit/Player.java | 60 +++++--- .../nukkit/command/defaults/BanCommand.java | 4 +- .../nukkit/command/defaults/BanIpCommand.java | 5 +- .../command/defaults/BanListCommand.java | 2 +- .../command/defaults/DebugPasteCommand.java | 2 +- .../defaults/DefaultGamemodeCommand.java | 9 +- .../nukkit/command/defaults/DeopCommand.java | 4 +- .../command/defaults/DifficultyCommand.java | 2 +- .../command/defaults/EffectCommand.java | 16 +- .../command/defaults/EnchantCommand.java | 8 +- .../command/defaults/GamemodeCommand.java | 20 +-- .../command/defaults/GameruleCommand.java | 9 +- .../nukkit/command/defaults/GiveCommand.java | 2 +- .../nukkit/command/defaults/HelpCommand.java | 2 +- .../nukkit/command/defaults/KickCommand.java | 2 +- .../nukkit/command/defaults/KillCommand.java | 142 +++++++++--------- .../nukkit/command/defaults/ListCommand.java | 2 +- .../cn/nukkit/command/defaults/MeCommand.java | 2 +- .../cn/nukkit/command/defaults/OpCommand.java | 4 +- .../command/defaults/PardonCommand.java | 4 +- .../command/defaults/PardonIpCommand.java | 7 +- .../command/defaults/ReloadCommand.java | 2 +- .../nukkit/command/defaults/SaveCommand.java | 2 +- .../command/defaults/SaveOffCommand.java | 2 +- .../command/defaults/SaveOnCommand.java | 2 +- .../nukkit/command/defaults/SayCommand.java | 2 +- .../nukkit/command/defaults/SeedCommand.java | 2 +- .../defaults/SetWorldSpawnCommand.java | 5 +- .../command/defaults/SpawnpointCommand.java | 10 +- .../nukkit/command/defaults/StopCommand.java | 2 +- .../command/defaults/TeleportCommand.java | 4 +- .../nukkit/command/defaults/TellCommand.java | 4 +- .../nukkit/command/defaults/TimeCommand.java | 10 +- .../nukkit/command/defaults/TitleCommand.java | 16 +- .../command/defaults/VersionCommand.java | 2 +- .../command/defaults/WeatherCommand.java | 6 +- .../command/defaults/WhitelistCommand.java | 20 +-- .../cn/nukkit/command/defaults/XpCommand.java | 4 +- .../nukkit/command/simple/SimpleCommand.java | 3 +- .../event/entity/EntityDamageEvent.java | 6 +- .../item/enchantment/EnchantmentThorns.java | 2 +- src/main/java/cn/nukkit/utils/Watchdog.java | 2 +- 42 files changed, 224 insertions(+), 192 deletions(-) diff --git a/src/main/java/cn/nukkit/Player.java b/src/main/java/cn/nukkit/Player.java index 064cecb677b..698df76d1fb 100644 --- a/src/main/java/cn/nukkit/Player.java +++ b/src/main/java/cn/nukkit/Player.java @@ -13,12 +13,9 @@ import cn.nukkit.entity.item.*; import cn.nukkit.entity.projectile.EntityArrow; import cn.nukkit.entity.projectile.EntityThrownTrident; -import cn.nukkit.event.entity.EntityDamageByBlockEvent; -import cn.nukkit.event.entity.EntityDamageByEntityEvent; -import cn.nukkit.event.entity.EntityDamageEvent; +import cn.nukkit.event.entity.*; import cn.nukkit.event.entity.EntityDamageEvent.DamageCause; import cn.nukkit.event.entity.EntityDamageEvent.DamageModifier; -import cn.nukkit.event.entity.ProjectileLaunchEvent; import cn.nukkit.event.inventory.InventoryCloseEvent; import cn.nukkit.event.inventory.InventoryPickupArrowEvent; import cn.nukkit.event.inventory.InventoryPickupItemEvent; @@ -32,7 +29,6 @@ import cn.nukkit.form.handler.FormResponseHandler; import cn.nukkit.form.window.FormWindow; import cn.nukkit.form.window.FormWindowCustom; -import cn.nukkit.form.window.FormWindowModal; import cn.nukkit.inventory.*; import cn.nukkit.inventory.transaction.CraftingTransaction; import cn.nukkit.inventory.transaction.EnchantTransaction; @@ -3908,14 +3904,14 @@ public void kill() { if (e instanceof Player) { message = "death.attack.player"; params.add(((Player) e).getDisplayName()); - break; } else if (e instanceof EntityLiving) { message = "death.attack.mob"; params.add(!Objects.equals(e.getNameTag(), "") ? e.getNameTag() : e.getName()); - break; } else { - params.add("Unknown"); + message = "death.attack.generic"; } + } else { + message = "death.attack.generic"; } break; case PROJECTILE: @@ -3923,15 +3919,24 @@ public void kill() { Entity e = ((EntityDamageByEntityEvent) cause).getDamager(); killer = e; if (e instanceof Player) { - message = "death.attack.arrow"; + message = "death.attack.thrown"; params.add(((Player) e).getDisplayName()); } else if (e instanceof EntityLiving) { - message = "death.attack.arrow"; + message = "death.attack.thrown"; params.add(!Objects.equals(e.getNameTag(), "") ? e.getNameTag() : e.getName()); - break; - } else { - params.add("Unknown"); } + if (message.isEmpty()) { + message = "death.attack.generic"; + } else if (cause instanceof EntityDamageByChildEntityEvent) { + Entity entity = ((EntityDamageByChildEntityEvent) cause).getChild(); + if (entity instanceof EntityArrow) { + message = "death.attack.arrow"; + } else if (entity instanceof EntityThrownTrident) { + message = "death.attack.trident"; + } + } + } else { + message = "death.attack.generic"; } break; case VOID: @@ -3944,11 +3949,9 @@ public void kill() { } message = "death.attack.fall"; break; - case SUFFOCATION: message = "death.attack.inWall"; break; - case LAVA: Block block = this.level.getBlock(new Vector3(this.x, this.y - 1, this.z)); if (block.getId() == Block.MAGMA) { @@ -3957,19 +3960,15 @@ public void kill() { } message = "death.attack.lava"; break; - case FIRE: message = "death.attack.onFire"; break; - case FIRE_TICK: message = "death.attack.inFire"; break; - case DROWNING: message = "death.attack.drown"; break; - case CONTACT: if (cause instanceof EntityDamageByBlockEvent) { int id = ((EntityDamageByBlockEvent) cause).getDamager().getId(); @@ -3978,9 +3977,10 @@ public void kill() { } else if (id == Block.ANVIL) { message = "death.attack.anvil"; } + } else { + message = "death.attack.generic"; } break; - case BLOCK_EXPLOSION: case ENTITY_EXPLOSION: if (cause instanceof EntityDamageByEntityEvent) { @@ -3992,7 +3992,8 @@ public void kill() { } else if (e instanceof EntityLiving) { message = "death.attack.explosion.player"; params.add(!Objects.equals(e.getNameTag(), "") ? e.getNameTag() : e.getName()); - break; + } else if (e instanceof EntityFirework) { + message = "death.attack.fireworks"; } else { message = "death.attack.explosion"; } @@ -4009,6 +4010,23 @@ public void kill() { case HUNGER: message = "death.attack.starve"; break; + case THORNS: + if (cause instanceof EntityDamageByEntityEvent) { + Entity e = ((EntityDamageByEntityEvent) cause).getDamager(); + killer = e; + if (e instanceof Player) { + message = "death.attack.thorns"; + params.add(((Player) e).getDisplayName()); + } else if (e instanceof EntityLiving) { + message = "death.attack.thorns"; + params.add(!Objects.equals(e.getNameTag(), "") ? e.getNameTag() : e.getName()); + } else { + message = "death.attack.generic"; + } + } else { + message = "death.attack.generic"; + } + break; default: message = "death.attack.generic"; break; diff --git a/src/main/java/cn/nukkit/command/defaults/BanCommand.java b/src/main/java/cn/nukkit/command/defaults/BanCommand.java index ca437e55712..043be63d9ac 100644 --- a/src/main/java/cn/nukkit/command/defaults/BanCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/BanCommand.java @@ -15,7 +15,7 @@ public class BanCommand extends VanillaCommand { public BanCommand(String name) { - super(name, "%nukkit.command.ban.player.description", "%commands.ban.usage"); + super(name, "%nukkit.command.ban.player.description", "%nukkit.command.ban.usage"); this.setPermission("nukkit.command.ban.player"); this.commandParameters.clear(); this.commandParameters.put("default", @@ -54,7 +54,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) player.kick(PlayerKickEvent.Reason.NAME_BANNED, (reason.length() > 0) ? "Banned by admin. Reason: " + reason : "Banned by admin"); } - Command.broadcastCommandMessage(sender, new TranslationContainer("%commands.ban.success", player != null ? player.getName() : name)); + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.ban.success", player != null ? player.getName() : name)); return true; } diff --git a/src/main/java/cn/nukkit/command/defaults/BanIpCommand.java b/src/main/java/cn/nukkit/command/defaults/BanIpCommand.java index 7a1b48bb89e..448847d343f 100644 --- a/src/main/java/cn/nukkit/command/defaults/BanIpCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/BanIpCommand.java @@ -9,6 +9,7 @@ import cn.nukkit.lang.TranslationContainer; import cn.nukkit.nbt.NBTIO; import cn.nukkit.nbt.tag.CompoundTag; +import cn.nukkit.utils.TextFormat; import java.io.File; import java.io.FileInputStream; @@ -25,7 +26,7 @@ public class BanIpCommand extends VanillaCommand { public BanIpCommand(String name) { - super(name, "%nukkit.command.ban.ip.description", "%commands.banip.usage"); + super(name, "%nukkit.command.ban.ip.description", "%nukkit.command.banip.usage"); this.setPermission("nukkit.command.ban.ip"); this.setAliases(new String[]{"banip"}); this.commandParameters.clear(); @@ -89,7 +90,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) Command.broadcastCommandMessage(sender, new TranslationContainer("commands.banip.success", value)); } else { - sender.sendMessage(new TranslationContainer("commands.banip.invalid")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.banip.invalid")); return false; } } diff --git a/src/main/java/cn/nukkit/command/defaults/BanListCommand.java b/src/main/java/cn/nukkit/command/defaults/BanListCommand.java index 0ca654c4e88..cfc8b46601a 100644 --- a/src/main/java/cn/nukkit/command/defaults/BanListCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/BanListCommand.java @@ -15,7 +15,7 @@ */ public class BanListCommand extends VanillaCommand { public BanListCommand(String name) { - super(name, "%nukkit.command.banlist.description", "%commands.banlist.usage"); + super(name, "%nukkit.command.banlist.description", "%nukkit.command.banlist.usage"); this.setPermission("nukkit.command.ban.list"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ diff --git a/src/main/java/cn/nukkit/command/defaults/DebugPasteCommand.java b/src/main/java/cn/nukkit/command/defaults/DebugPasteCommand.java index 57e765d08bb..5a2b8946a11 100644 --- a/src/main/java/cn/nukkit/command/defaults/DebugPasteCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/DebugPasteCommand.java @@ -77,7 +77,7 @@ public void onRun() { b.append("os.arch: '").append(System.getProperty("os.arch")).append("'\n"); b.append("os.name: '").append(System.getProperty("os.name")).append("'\n"); b.append("os.version: '").append(System.getProperty("os.version")).append("'\n\n"); - b.append("\n# Create a ticket: https://github.com/NukkitX/Nukkit/issues/new"); + b.append("\n# Create a ticket: https://github.com/CloudburstMC/Nukkit/issues/new"); String link = HastebinUtility.upload(b.toString()); sender.sendMessage(link); } catch (IOException e) { diff --git a/src/main/java/cn/nukkit/command/defaults/DefaultGamemodeCommand.java b/src/main/java/cn/nukkit/command/defaults/DefaultGamemodeCommand.java index 73604ce3cd3..e8f0b6581cd 100644 --- a/src/main/java/cn/nukkit/command/defaults/DefaultGamemodeCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/DefaultGamemodeCommand.java @@ -6,6 +6,7 @@ import cn.nukkit.command.data.CommandParamType; import cn.nukkit.command.data.CommandParameter; import cn.nukkit.lang.TranslationContainer; +import cn.nukkit.utils.TextFormat; /** * Created on 2015/11/12 by xtypr. @@ -14,7 +15,7 @@ public class DefaultGamemodeCommand extends VanillaCommand { public DefaultGamemodeCommand(String name) { - super(name, "%nukkit.command.defaultgamemode.description", "%commands.defaultgamemode.usage"); + super(name, "%nukkit.command.defaultgamemode.description", "%nukkit.command.defaultgamemode.usage"); this.setPermission("nukkit.command.defaultgamemode"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ @@ -31,15 +32,15 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) return true; } if (args.length == 0) { - sender.sendMessage(new TranslationContainer("commands.generic.usage", new String[]{this.usageMessage})); + sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage)); return false; } int gameMode = Server.getGamemodeFromString(args[0]); if (gameMode != -1) { sender.getServer().setPropertyInt("gamemode", gameMode); - sender.sendMessage(new TranslationContainer("commands.defaultgamemode.success", new String[]{Server.getGamemodeString(gameMode)})); + sender.sendMessage(new TranslationContainer("commands.defaultgamemode.success", Server.getGamemodeString(gameMode))); } else { - sender.sendMessage("Unknown game mode"); // + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.gamemode.fail.invalid", args[0])); } return true; } diff --git a/src/main/java/cn/nukkit/command/defaults/DeopCommand.java b/src/main/java/cn/nukkit/command/defaults/DeopCommand.java index 4934da84e69..a62be84f936 100644 --- a/src/main/java/cn/nukkit/command/defaults/DeopCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/DeopCommand.java @@ -15,7 +15,7 @@ */ public class DeopCommand extends VanillaCommand { public DeopCommand(String name) { - super(name, "%nukkit.command.deop.description", "%commands.deop.description"); + super(name, "%nukkit.command.deop.description", "%nukkit.command.deop.usage"); this.setPermission("nukkit.command.op.take"); this.commandParameters.put("default", new CommandParameter[]{ CommandParameter.newType("player", CommandParamType.TARGET) @@ -42,7 +42,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) ((Player) player).sendMessage(new TranslationContainer(TextFormat.GRAY + "%commands.deop.message")); } - Command.broadcastCommandMessage(sender, new TranslationContainer("commands.deop.success", new String[]{player.getName()})); + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.deop.success", player.getName())); return true; } diff --git a/src/main/java/cn/nukkit/command/defaults/DifficultyCommand.java b/src/main/java/cn/nukkit/command/defaults/DifficultyCommand.java index 1b0dcf97a53..329af6fbb2b 100644 --- a/src/main/java/cn/nukkit/command/defaults/DifficultyCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/DifficultyCommand.java @@ -18,7 +18,7 @@ public class DifficultyCommand extends VanillaCommand { public DifficultyCommand(String name) { - super(name, "%nukkit.command.difficulty.description", "%commands.difficulty.usage"); + super(name, "%nukkit.command.difficulty.description", "%nukkit.command.difficulty.usage"); this.setPermission("nukkit.command.difficulty"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ diff --git a/src/main/java/cn/nukkit/command/defaults/EffectCommand.java b/src/main/java/cn/nukkit/command/defaults/EffectCommand.java index 760db564e36..ab7e14f0272 100644 --- a/src/main/java/cn/nukkit/command/defaults/EffectCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/EffectCommand.java @@ -23,7 +23,7 @@ */ public class EffectCommand extends Command { public EffectCommand(String name) { - super(name, "%nukkit.command.effect.description", "%commands.effect.usage"); + super(name, "%nukkit.command.effect.description", "%nukkit.command.effect.usage"); this.setPermission("nukkit.command.effect"); this.commandParameters.clear(); @@ -65,7 +65,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) for (Effect effect : player.getEffects().values()) { player.removeEffect(effect.getId()); } - sender.sendMessage(new TranslationContainer("commands.effect.success.removed.all", player.getDisplayName())); + sender.sendMessage(new TranslationContainer("commands.effect.success.removed.all", player.getName())); return true; } Effect effect; @@ -75,11 +75,11 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) try { effect = Effect.getEffectByName(args[1]); } catch (Exception e) { - sender.sendMessage(new TranslationContainer("commands.effect.notFound", args[1])); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.effect.notFound", args[1])); return true; } } - int duration = 300; + int duration = 600; int amplification = 0; if (args.length >= 3) { try { @@ -111,18 +111,18 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) if (duration == 0) { if (!player.hasEffect(effect.getId())) { if (player.getEffects().size() == 0) { - sender.sendMessage(new TranslationContainer("commands.effect.failure.notActive.all", player.getDisplayName())); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.effect.failure.notActive.all", player.getName())); } else { - sender.sendMessage(new TranslationContainer("commands.effect.failure.notActive", effect.getName(), player.getDisplayName())); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.effect.failure.notActive", effect.getName(), player.getName())); } return true; } player.removeEffect(effect.getId()); - sender.sendMessage(new TranslationContainer("commands.effect.success.removed", effect.getName(), player.getDisplayName())); + sender.sendMessage(new TranslationContainer("commands.effect.success.removed", effect.getName(), player.getName())); } else { effect.setDuration(duration).setAmplifier(amplification); player.addEffect(effect); - Command.broadcastCommandMessage(sender, new TranslationContainer("%commands.effect.success", effect.getName(), String.valueOf(effect.getAmplifier()), player.getDisplayName(), String.valueOf(effect.getDuration() / 20))); + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.effect.success", effect.getName(), String.valueOf(effect.getAmplifier()), player.getName(), String.valueOf(effect.getDuration() / 20))); } return true; } diff --git a/src/main/java/cn/nukkit/command/defaults/EnchantCommand.java b/src/main/java/cn/nukkit/command/defaults/EnchantCommand.java index 9ec329f2acc..405dc569884 100644 --- a/src/main/java/cn/nukkit/command/defaults/EnchantCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/EnchantCommand.java @@ -17,7 +17,7 @@ public class EnchantCommand extends VanillaCommand { public EnchantCommand(String name) { - super(name, "%nukkit.command.enchant.description", "%commands.enchant.usage"); + super(name, "%nukkit.command.enchant.description", "%nukkit.command.enchant.usage"); this.setPermission("nukkit.command.enchant"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ @@ -62,18 +62,18 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) } Enchantment enchantment = Enchantment.getEnchantment(enchantId); if (enchantment == null) { - sender.sendMessage(new TranslationContainer("commands.enchant.notFound", String.valueOf(enchantId))); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.enchant.notFound", String.valueOf(enchantId))); return true; } enchantment.setLevel(enchantLevel); Item item = player.getInventory().getItemInHand(); if (item.getId() <= 0) { - sender.sendMessage(new TranslationContainer("commands.enchant.noItem")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.enchant.noItem", player.getName())); return true; } item.addEnchantment(enchantment); player.getInventory().setItemInHand(item); - Command.broadcastCommandMessage(sender, new TranslationContainer("%commands.enchant.success")); + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.enchant.success", player.getName())); return true; } diff --git a/src/main/java/cn/nukkit/command/defaults/GamemodeCommand.java b/src/main/java/cn/nukkit/command/defaults/GamemodeCommand.java index 3f07ae5b1a1..f83df1b3bfc 100644 --- a/src/main/java/cn/nukkit/command/defaults/GamemodeCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/GamemodeCommand.java @@ -17,7 +17,7 @@ public class GamemodeCommand extends VanillaCommand { public GamemodeCommand(String name) { - super(name, "%nukkit.command.gamemode.description", "%commands.gamemode.usage", + super(name, "%nukkit.command.gamemode.description", "%nukkit.command.gamemode.usage", new String[]{"gm"}); this.setPermission("nukkit.command.gamemode.survival;" + "nukkit.command.gamemode.creative;" + @@ -44,7 +44,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) int gameMode = Server.getGamemodeFromString(args[0]); if (gameMode == -1) { - sender.sendMessage("Unknown game mode"); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.gamemode.fail.invalid", args[0])); return true; } @@ -57,7 +57,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) return true; } } else { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.unknown", this.getName())); return true; } } else if (!(sender instanceof Player)) { @@ -65,22 +65,22 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) return true; } - if ((gameMode == 0 && !sender.hasPermission("nukkit.command.gamemode.survival")) || - (gameMode == 1 && !sender.hasPermission("nukkit.command.gamemode.creative")) || - (gameMode == 2 && !sender.hasPermission("nukkit.command.gamemode.adventure")) || - (gameMode == 3 && !sender.hasPermission("nukkit.command.gamemode.spectator"))) { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); + if ((gameMode == Player.SURVIVAL && !sender.hasPermission("nukkit.command.gamemode.survival")) || + (gameMode == Player.CREATIVE && !sender.hasPermission("nukkit.command.gamemode.creative")) || + (gameMode == Player.ADVENTURE && !sender.hasPermission("nukkit.command.gamemode.adventure")) || + (gameMode == Player.SPECTATOR && !sender.hasPermission("nukkit.command.gamemode.spectator"))) { + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.unknown", this.getName())); return true; } if (!((Player) target).setGamemode(gameMode)) { - sender.sendMessage("Game mode update for " + target.getName() + " failed"); + sender.sendMessage(new TranslationContainer("nukkit.command.gamemode.fail", target.getName())); } else { if (target.equals(sender)) { Command.broadcastCommandMessage(sender, new TranslationContainer("commands.gamemode.success.self", Server.getGamemodeString(gameMode))); } else { target.sendMessage(new TranslationContainer("gameMode.changed", Server.getGamemodeString(gameMode))); - Command.broadcastCommandMessage(sender, new TranslationContainer("commands.gamemode.success.other", target.getName(), Server.getGamemodeString(gameMode))); + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.gamemode.success.other", Server.getGamemodeString(gameMode), target.getName())); } } diff --git a/src/main/java/cn/nukkit/command/defaults/GameruleCommand.java b/src/main/java/cn/nukkit/command/defaults/GameruleCommand.java index 1015a4cc662..c253d0881f8 100644 --- a/src/main/java/cn/nukkit/command/defaults/GameruleCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/GameruleCommand.java @@ -8,6 +8,7 @@ import cn.nukkit.lang.TranslationContainer; import cn.nukkit.level.GameRule; import cn.nukkit.level.GameRules; +import cn.nukkit.utils.TextFormat; import java.util.ArrayList; import java.util.Arrays; @@ -79,7 +80,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) } if (!sender.isPlayer()) { - sender.sendMessage(new TranslationContainer("%commands.generic.ingame")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.ingame")); return true; } GameRules rules = ((Player) sender).getLevel().getGameRules(); @@ -95,7 +96,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) case 1: Optional gameRule = GameRule.parseString(args[0]); if (!gameRule.isPresent() || !rules.hasRule(gameRule.get())) { - sender.sendMessage(new TranslationContainer("commands.generic.syntax", "/gamerule", args[0])); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.syntax", "/gamerule ", args[0], "")); return true; } @@ -105,7 +106,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) Optional optionalRule = GameRule.parseString(args[0]); if (!optionalRule.isPresent()) { - sender.sendMessage(new TranslationContainer("commands.generic.syntax", + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.syntax", "/gamerule ", args[0], " " + String.join(" ", Arrays.copyOfRange(args, 1, args.length)))); return true; } @@ -114,7 +115,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) rules.setGameRules(optionalRule.get(), args[1]); sender.sendMessage(new TranslationContainer("commands.gamerule.success", optionalRule.get().getName().toLowerCase(), args[1])); } catch (IllegalArgumentException e) { - sender.sendMessage(new TranslationContainer("commands.generic.syntax", "/gamerule " + args[0] + " ", args[1], " " + String.join(" ", Arrays.copyOfRange(args, 2, args.length)))); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.syntax", "/gamerule " + args[0] + " ", args[1], " " + String.join(" ", Arrays.copyOfRange(args, 2, args.length)))); } return true; } diff --git a/src/main/java/cn/nukkit/command/defaults/GiveCommand.java b/src/main/java/cn/nukkit/command/defaults/GiveCommand.java index d3cef0469d9..bd37e5b0d57 100644 --- a/src/main/java/cn/nukkit/command/defaults/GiveCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/GiveCommand.java @@ -79,7 +79,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) return true; } Command.broadcastCommandMessage(sender, new TranslationContainer( - "%commands.give.success", + "commands.give.success", item.getName() + " (" + item.getId() + ":" + item.getDamage() + ")", String.valueOf(item.getCount()), player.getName())); diff --git a/src/main/java/cn/nukkit/command/defaults/HelpCommand.java b/src/main/java/cn/nukkit/command/defaults/HelpCommand.java index 124c35b46f1..609126de31e 100644 --- a/src/main/java/cn/nukkit/command/defaults/HelpCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/HelpCommand.java @@ -18,7 +18,7 @@ public class HelpCommand extends VanillaCommand { public HelpCommand(String name) { - super(name, "%nukkit.command.help.description", "%commands.help.usage", new String[]{"?"}); + super(name, "%nukkit.command.help.description", "%nukkit.command.help.usage", new String[]{"?"}); this.setPermission("nukkit.command.help"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ diff --git a/src/main/java/cn/nukkit/command/defaults/KickCommand.java b/src/main/java/cn/nukkit/command/defaults/KickCommand.java index 1caf85ac982..21015ae9251 100644 --- a/src/main/java/cn/nukkit/command/defaults/KickCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/KickCommand.java @@ -16,7 +16,7 @@ public class KickCommand extends VanillaCommand { public KickCommand(String name) { - super(name, "%nukkit.command.kick.description", "%commands.kick.usage"); + super(name, "%nukkit.command.kick.description", "%nukkit.command.kick.usage"); this.setPermission("nukkit.command.kick"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ diff --git a/src/main/java/cn/nukkit/command/defaults/KillCommand.java b/src/main/java/cn/nukkit/command/defaults/KillCommand.java index fcb84d2c710..6dcb6aa73a1 100644 --- a/src/main/java/cn/nukkit/command/defaults/KillCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/KillCommand.java @@ -41,114 +41,118 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) return false; } if (args.length == 1) { + if (args[0].equals("@s")) { + if (!(sender instanceof Player)) { + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.ingame")); + return true; + } + suicide((Player) sender); + return true; + } if (!sender.hasPermission("nukkit.command.kill.other")) { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.unknown", this.getName())); return true; } Player player = sender.getServer().getPlayer(args[0]); if (player != null) { if (player.isCreative() || player.isSpectator()) { - sender.sendMessage(TextFormat.RED + "No targets matched selector"); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.noTargetMatch")); return true; } - EntityDamageEvent ev = new EntityDamageEvent(player, DamageCause.SUICIDE, 1000); - sender.getServer().getPluginManager().callEvent(ev); - if (ev.isCancelled()) { + if (!kill(player)) { return true; } - player.setLastDamageCause(ev); - player.setHealth(0); Command.broadcastCommandMessage(sender, new TranslationContainer("commands.kill.successful", player.getName())); } else if (args[0].equals("@e")) { StringJoiner joiner = new StringJoiner(", "); for (Level level : Server.getInstance().getLevels().values()) { for (Entity entity : level.getEntities()) { - if (!(entity instanceof Player)) { - EntityDamageEvent ev = new EntityDamageEvent(entity, DamageCause.SUICIDE, 1000); - sender.getServer().getPluginManager().callEvent(ev); - if (ev.isCancelled()) { + if (entity instanceof Player) { + Player p = (Player) entity; + if (p.isCreative() || p.isSpectator()) { continue; } - joiner.add(entity.getName()); - entity.setLastDamageCause(ev); - entity.close(); } + if (!kill(entity)) { + continue; + } + joiner.add(entity.getName()); } } String entities = joiner.toString(); - sender.sendMessage(new TranslationContainer("commands.kill.successful", entities.isEmpty() ? "0" : entities)); - } else if (args[0].equals("@s")) { - if (!sender.hasPermission("nukkit.command.kill.self")) { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); + if (entities.isEmpty()) { + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.noTargetMatch")); return true; } - if (!(sender instanceof Player)) { - sender.sendMessage(new TranslationContainer("%commands.generic.ingame")); - return true; - } - Player p = (Player) sender; - if (p.isCreative() || p.isSpectator()) { - sender.sendMessage(TextFormat.RED + "No targets matched selector"); - return true; - } - EntityDamageEvent ev = new EntityDamageEvent(p, DamageCause.SUICIDE, 1000); - sender.getServer().getPluginManager().callEvent(ev); - if (ev.isCancelled()) { - return true; - } - p.setLastDamageCause(ev); - p.setHealth(0); - sender.sendMessage(new TranslationContainer("commands.kill.successful", sender.getName())); + sender.sendMessage(new TranslationContainer("commands.kill.successful", entities)); } else if (args[0].equals("@a")) { - if (!sender.hasPermission("nukkit.command.kill.other")) { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); - return true; - } + StringJoiner joiner = new StringJoiner(", "); for (Level level : Server.getInstance().getLevels().values()) { for (Entity entity : level.getEntities()) { - if (entity instanceof Player) { - Player p = (Player) entity; - if (p.isCreative() || p.isSpectator()) { - continue; - } - EntityDamageEvent ev = new EntityDamageEvent(entity, DamageCause.SUICIDE, 1000); - sender.getServer().getPluginManager().callEvent(ev); - if (ev.isCancelled()) { - continue; - } - entity.setLastDamageCause(ev); - entity.setHealth(0); + if (!(entity instanceof Player)) { + continue; + } + Player p = (Player) entity; + if (p.isCreative() || p.isSpectator()) { + continue; } + if (!kill(entity)) { + continue; + } + joiner.add(entity.getName()); } } - sender.sendMessage(new TranslationContainer(TextFormat.GOLD + "%commands.kill.all.successful")); + String entities = joiner.toString(); + if (entities.isEmpty()) { + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.noTargetMatch")); + return true; + } + sender.sendMessage(new TranslationContainer("commands.kill.successful", entities)); } else { sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.player.notFound")); } return true; } if (sender instanceof Player) { - if (!sender.hasPermission("nukkit.command.kill.self")) { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); - return true; - } - Player player = (Player) sender; - if (player.isCreative() || player.isSpectator()) { - sender.sendMessage(TextFormat.RED + "No targets matched selector"); - return true; - } - EntityDamageEvent ev = new EntityDamageEvent(player, DamageCause.SUICIDE, 1000); - sender.getServer().getPluginManager().callEvent(ev); - if (ev.isCancelled()) { - return true; - } - player.setLastDamageCause(ev); - player.setHealth(0); - sender.sendMessage(new TranslationContainer("commands.kill.successful", sender.getName())); + suicide((Player) sender); } else { sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage)); return false; } return true; } + + private void suicide(Player player) { + if (!player.hasPermission("nukkit.command.kill.self")) { + player.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.unknown", this.getName())); + return; + } + if (player.isCreative() || player.isSpectator()) { + player.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.noTargetMatch")); + return; + } + if (!kill(player)) { + return; + } + player.sendMessage(new TranslationContainer("commands.kill.successful", player.getName())); + } + + private static boolean kill(Entity entity) { + if (!entity.isAlive()) { + return false; + } + + EntityDamageEvent ev = new EntityDamageEvent(entity, DamageCause.SUICIDE, 1000); + entity.getServer().getPluginManager().callEvent(ev); + if (ev.isCancelled()) { + return false; + } + entity.setLastDamageCause(ev); + if (entity instanceof Player) { + entity.setHealth(0); + } else { + entity.close(); + } + return true; + } } diff --git a/src/main/java/cn/nukkit/command/defaults/ListCommand.java b/src/main/java/cn/nukkit/command/defaults/ListCommand.java index 7417211d0c2..9bcdd473946 100644 --- a/src/main/java/cn/nukkit/command/defaults/ListCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/ListCommand.java @@ -11,7 +11,7 @@ public class ListCommand extends VanillaCommand { public ListCommand(String name) { - super(name, "%nukkit.command.list.description", "%commands.players.usage"); + super(name, "%nukkit.command.list.description", "%nukkit.command.players.usage"); this.setPermission("nukkit.command.list"); this.commandParameters.clear(); } diff --git a/src/main/java/cn/nukkit/command/defaults/MeCommand.java b/src/main/java/cn/nukkit/command/defaults/MeCommand.java index 57a35cfc010..b1b3f446008 100644 --- a/src/main/java/cn/nukkit/command/defaults/MeCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/MeCommand.java @@ -14,7 +14,7 @@ public class MeCommand extends VanillaCommand { public MeCommand(String name) { - super(name, "%nukkit.command.me.description", "%commands.me.usage"); + super(name, "%nukkit.command.me.description", "%nukkit.command.me.usage"); this.setPermission("nukkit.command.me"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ diff --git a/src/main/java/cn/nukkit/command/defaults/OpCommand.java b/src/main/java/cn/nukkit/command/defaults/OpCommand.java index 6afc9fdcc6c..bff274b3b2c 100644 --- a/src/main/java/cn/nukkit/command/defaults/OpCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/OpCommand.java @@ -16,7 +16,7 @@ public class OpCommand extends VanillaCommand { public OpCommand(String name) { - super(name, "%nukkit.command.op.description", "%commands.op.description"); + super(name, "%nukkit.command.op.description", "%nukkit.command.op.usage"); this.setPermission("nukkit.command.op.give"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ @@ -30,7 +30,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) return true; } if (args.length == 0) { - sender.sendMessage(new TranslationContainer("commands.op.usage", this.usageMessage)); + sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage)); return false; } diff --git a/src/main/java/cn/nukkit/command/defaults/PardonCommand.java b/src/main/java/cn/nukkit/command/defaults/PardonCommand.java index 0ffd5296b72..9b98e321b93 100644 --- a/src/main/java/cn/nukkit/command/defaults/PardonCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/PardonCommand.java @@ -13,7 +13,7 @@ public class PardonCommand extends VanillaCommand { public PardonCommand(String name) { - super(name, "%nukkit.command.unban.player.description", "%commands.unban.usage"); + super(name, "%nukkit.command.unban.player.description", "%nukkit.command.unban.usage"); this.setPermission("nukkit.command.unban.player"); this.setAliases(new String[]{"unban"}); this.commandParameters.clear(); @@ -36,7 +36,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) sender.getServer().getNameBans().remove(args[0]); - Command.broadcastCommandMessage(sender, new TranslationContainer("%commands.unban.success", args[0])); + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.unban.success", args[0])); return true; } diff --git a/src/main/java/cn/nukkit/command/defaults/PardonIpCommand.java b/src/main/java/cn/nukkit/command/defaults/PardonIpCommand.java index d3ae0695a85..99d96abb0d5 100644 --- a/src/main/java/cn/nukkit/command/defaults/PardonIpCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/PardonIpCommand.java @@ -5,6 +5,7 @@ import cn.nukkit.command.data.CommandParamType; import cn.nukkit.command.data.CommandParameter; import cn.nukkit.lang.TranslationContainer; +import cn.nukkit.utils.TextFormat; import java.net.InetAddress; import java.net.UnknownHostException; @@ -17,7 +18,7 @@ public class PardonIpCommand extends VanillaCommand { public PardonIpCommand(String name) { - super(name, "%nukkit.command.unban.ip.description", "%commands.unbanip.usage"); + super(name, "%nukkit.command.unban.ip.description", "%nukkit.command.unbanip.usage"); this.setPermission("nukkit.command.unban.ip"); this.setAliases(new String[]{"unbanip", "unban-ip", "pardonip"}); this.commandParameters.clear(); @@ -46,14 +47,14 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) try { sender.getServer().getNetwork().unblockAddress(InetAddress.getByName(value)); } catch (UnknownHostException e) { - sender.sendMessage(new TranslationContainer("commands.unbanip.invalid")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.unbanip.invalid")); return true; } Command.broadcastCommandMessage(sender, new TranslationContainer("commands.unbanip.success", value)); } else { - sender.sendMessage(new TranslationContainer("commands.unbanip.invalid")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.unbanip.invalid")); } return true; diff --git a/src/main/java/cn/nukkit/command/defaults/ReloadCommand.java b/src/main/java/cn/nukkit/command/defaults/ReloadCommand.java index 718c140b5b5..b831432fc36 100644 --- a/src/main/java/cn/nukkit/command/defaults/ReloadCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/ReloadCommand.java @@ -12,7 +12,7 @@ public class ReloadCommand extends VanillaCommand { public ReloadCommand(String name) { - super(name, "%nukkit.command.reload.description", "%commands.reload.usage"); + super(name, "%nukkit.command.reload.description", "%nukkit.command.reload.usage"); this.setPermission("nukkit.command.reload"); this.commandParameters.clear(); } diff --git a/src/main/java/cn/nukkit/command/defaults/SaveCommand.java b/src/main/java/cn/nukkit/command/defaults/SaveCommand.java index 9e119f2d104..590577c6453 100644 --- a/src/main/java/cn/nukkit/command/defaults/SaveCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/SaveCommand.java @@ -13,7 +13,7 @@ public class SaveCommand extends VanillaCommand { public SaveCommand(String name) { - super(name, "%nukkit.command.save.description", "%commands.save.usage"); + super(name, "%nukkit.command.save.description", "%nukkit.command.save.usage"); this.setPermission("nukkit.command.save.perform"); this.commandParameters.clear(); } diff --git a/src/main/java/cn/nukkit/command/defaults/SaveOffCommand.java b/src/main/java/cn/nukkit/command/defaults/SaveOffCommand.java index 762cd3140bb..89a1b1ee502 100644 --- a/src/main/java/cn/nukkit/command/defaults/SaveOffCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/SaveOffCommand.java @@ -11,7 +11,7 @@ public class SaveOffCommand extends VanillaCommand { public SaveOffCommand(String name) { - super(name, "%nukkit.command.saveoff.description", "%commands.save-off.usage"); + super(name, "%nukkit.command.saveoff.description", "%nukkit.command.save-off.usage"); this.setPermission("nukkit.command.save.disable"); this.commandParameters.clear(); } diff --git a/src/main/java/cn/nukkit/command/defaults/SaveOnCommand.java b/src/main/java/cn/nukkit/command/defaults/SaveOnCommand.java index a3f6a5dfdd3..ebd3c838776 100644 --- a/src/main/java/cn/nukkit/command/defaults/SaveOnCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/SaveOnCommand.java @@ -11,7 +11,7 @@ public class SaveOnCommand extends VanillaCommand { public SaveOnCommand(String name) { - super(name, "%nukkit.command.saveon.description", "%commands.save-on.usage"); + super(name, "%nukkit.command.saveon.description", "%nukkit.command.save-on.usage"); this.setPermission("nukkit.command.save.enable"); this.commandParameters.clear(); } diff --git a/src/main/java/cn/nukkit/command/defaults/SayCommand.java b/src/main/java/cn/nukkit/command/defaults/SayCommand.java index a55d3c459cf..99ce2c16df9 100644 --- a/src/main/java/cn/nukkit/command/defaults/SayCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/SayCommand.java @@ -15,7 +15,7 @@ public class SayCommand extends VanillaCommand { public SayCommand(String name) { - super(name, "%nukkit.command.say.description", "%commands.say.usage"); + super(name, "%nukkit.command.say.description", "%nukkit.command.say.usage"); this.setPermission("nukkit.command.say"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ diff --git a/src/main/java/cn/nukkit/command/defaults/SeedCommand.java b/src/main/java/cn/nukkit/command/defaults/SeedCommand.java index 3c70e7dd5f1..15bc61dfcf9 100644 --- a/src/main/java/cn/nukkit/command/defaults/SeedCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/SeedCommand.java @@ -11,7 +11,7 @@ public class SeedCommand extends VanillaCommand { public SeedCommand(String name) { - super(name, "%nukkit.command.seed.description", "%commands.seed.usage"); + super(name, "%nukkit.command.seed.description", "%nukkit.command.seed.usage"); this.setPermission("nukkit.command.seed"); this.commandParameters.clear(); } diff --git a/src/main/java/cn/nukkit/command/defaults/SetWorldSpawnCommand.java b/src/main/java/cn/nukkit/command/defaults/SetWorldSpawnCommand.java index fcb93688eb2..580c9f91dc4 100644 --- a/src/main/java/cn/nukkit/command/defaults/SetWorldSpawnCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/SetWorldSpawnCommand.java @@ -8,6 +8,7 @@ import cn.nukkit.lang.TranslationContainer; import cn.nukkit.level.Level; import cn.nukkit.math.Vector3; +import cn.nukkit.utils.TextFormat; import java.text.DecimalFormat; @@ -17,7 +18,7 @@ */ public class SetWorldSpawnCommand extends VanillaCommand { public SetWorldSpawnCommand(String name) { - super(name, "%nukkit.command.setworldspawn.description", "%commands.setworldspawn.usage"); + super(name, "%nukkit.command.setworldspawn.description", "%nukkit.command.setworldspawn.usage"); this.setPermission("nukkit.command.setworldspawn"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ @@ -37,7 +38,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) level = ((Player) sender).getLevel(); pos = ((Player) sender).round(); } else { - sender.sendMessage(new TranslationContainer("commands.generic.ingame")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.ingame")); return true; } } else if (args.length == 3) { diff --git a/src/main/java/cn/nukkit/command/defaults/SpawnpointCommand.java b/src/main/java/cn/nukkit/command/defaults/SpawnpointCommand.java index bf10543d072..5c747191fff 100644 --- a/src/main/java/cn/nukkit/command/defaults/SpawnpointCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/SpawnpointCommand.java @@ -18,7 +18,7 @@ */ public class SpawnpointCommand extends VanillaCommand { public SpawnpointCommand(String name) { - super(name, "%nukkit.command.spawnpoint.description", "%commands.spawnpoint.usage"); + super(name, "%nukkit.command.spawnpoint.description", "%nukkit.command.spawnpoint.usage"); this.setPermission("nukkit.command.spawnpoint"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ @@ -37,7 +37,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) if (sender instanceof Player) { target = (Player) sender; } else { - sender.sendMessage(new TranslationContainer("commands.generic.ingame")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.ingame")); return true; } } else { @@ -65,7 +65,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) if (y < 0) y = 0; if (y > 256) y = 256; target.setSpawn(new Position(x, y, z, level)); - Command.broadcastCommandMessage(sender, new TranslationContainer("commands.spawnpoint.success", target.getName(), + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.spawnpoint.success.single", target.getName(), round2.format(x), round2.format(y), round2.format(z))); @@ -75,13 +75,13 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) if (sender instanceof Player) { Position pos = (Position) sender; target.setSpawn(pos); - Command.broadcastCommandMessage(sender, new TranslationContainer("commands.spawnpoint.success", target.getName(), + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.spawnpoint.success.single", target.getName(), round2.format(pos.x), round2.format(pos.y), round2.format(pos.z))); return true; } else { - sender.sendMessage(new TranslationContainer("commands.generic.ingame")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.ingame")); return true; } } diff --git a/src/main/java/cn/nukkit/command/defaults/StopCommand.java b/src/main/java/cn/nukkit/command/defaults/StopCommand.java index 0c89133e00f..8ac5f7efe18 100644 --- a/src/main/java/cn/nukkit/command/defaults/StopCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/StopCommand.java @@ -11,7 +11,7 @@ public class StopCommand extends VanillaCommand { public StopCommand(String name) { - super(name, "%nukkit.command.stop.description", "%commands.stop.usage"); + super(name, "%nukkit.command.stop.description", "%nukkit.command.stop.usage"); this.setPermission("nukkit.command.stop"); this.commandParameters.clear(); } diff --git a/src/main/java/cn/nukkit/command/defaults/TeleportCommand.java b/src/main/java/cn/nukkit/command/defaults/TeleportCommand.java index e69aa948808..f4bee0919fc 100644 --- a/src/main/java/cn/nukkit/command/defaults/TeleportCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/TeleportCommand.java @@ -17,7 +17,7 @@ */ public class TeleportCommand extends VanillaCommand { public TeleportCommand(String name) { - super(name, "%nukkit.command.tp.description", "%commands.tp.usage"); + super(name, "%nukkit.command.tp.description", "%nukkit.command.tp.usage"); this.setPermission("nukkit.command.teleport"); this.commandParameters.clear(); this.commandParameters.put("->Player", new CommandParameter[]{ @@ -55,7 +55,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) if (sender instanceof Player) { target = sender; } else { - sender.sendMessage(new TranslationContainer("commands.generic.ingame")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.ingame")); return true; } if (args.length == 1) { diff --git a/src/main/java/cn/nukkit/command/defaults/TellCommand.java b/src/main/java/cn/nukkit/command/defaults/TellCommand.java index 37dc1426bd7..3fe237e7eb6 100644 --- a/src/main/java/cn/nukkit/command/defaults/TellCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/TellCommand.java @@ -16,7 +16,7 @@ public class TellCommand extends VanillaCommand { public TellCommand(String name) { - super(name, "%nukkit.command.tell.description", "%commands.message.usage", new String[]{"w", "msg"}); + super(name, "%nukkit.command.tell.description", "%nukkit.command.message.usage", new String[]{"w", "msg"}); this.setPermission("nukkit.command.tell"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ @@ -41,7 +41,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) Player player = sender.getServer().getPlayer(name); if (player == null) { - sender.sendMessage(new TranslationContainer("commands.generic.player.notFound")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.player.notFound")); return true; } diff --git a/src/main/java/cn/nukkit/command/defaults/TimeCommand.java b/src/main/java/cn/nukkit/command/defaults/TimeCommand.java index 5d6f39ad95d..e668c9d1a41 100644 --- a/src/main/java/cn/nukkit/command/defaults/TimeCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/TimeCommand.java @@ -50,7 +50,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) if ("start".equals(args[0])) { if (!sender.hasPermission("nukkit.command.time.start")) { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.unknown", this.getName())); return true; } @@ -63,7 +63,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) return true; } else if ("stop".equals(args[0])) { if (!sender.hasPermission("nukkit.command.time.stop")) { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.unknown", this.getName())); return true; } @@ -76,7 +76,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) return true; } else if ("query".equals(args[0])) { if (!sender.hasPermission("nukkit.command.time.query")) { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.unknown", this.getName())); return true; } @@ -99,7 +99,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) if ("set".equals(args[0])) { if (!sender.hasPermission("nukkit.command.time.set")) { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.unknown", this.getName())); return true; } @@ -134,7 +134,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) Command.broadcastCommandMessage(sender, new TranslationContainer("commands.time.set", String.valueOf(value))); } else if ("add".equals(args[0])) { if (!sender.hasPermission("nukkit.command.time.add")) { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.unknown", this.getName())); return true; } diff --git a/src/main/java/cn/nukkit/command/defaults/TitleCommand.java b/src/main/java/cn/nukkit/command/defaults/TitleCommand.java index 2bdf150c741..b2697c5d082 100644 --- a/src/main/java/cn/nukkit/command/defaults/TitleCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/TitleCommand.java @@ -81,20 +81,20 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) player.setSubtitle(args[2]); sender.sendMessage(new TranslationContainer("nukkit.command.title.subtitle", TextFormat.clean(args[2]), player.getName())); break; - /*case "actionbar": - player.sendActionBarTitle(args[2]); - sender.sendMessage(new TranslationContainer("nukkit.command.title.actionbar", new String[]{TextFormat.clean(args[2]), player.getName()})); - break;*/ + case "actionbar": + player.sendActionBar(args[2]); + sender.sendMessage(new TranslationContainer("nukkit.command.title.actionbar", TextFormat.clean(args[2]), player.getName())); + break; default: sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage)); return false; } } else if (args.length == 5) { - if (args[1].toLowerCase().equals("times")) { + if (args[1].equalsIgnoreCase("times")) { try { - /*player.setTitleAnimationTimes(Integer.valueOf(args[2]), //fadeIn - Integer.valueOf(args[3]), //stay - Integer.valueOf(args[4])); //fadeOut*/ + player.setTitleAnimationTimes(Integer.parseInt(args[2]), //fadeIn + Integer.parseInt(args[3]), //stay + Integer.parseInt(args[4])); //fadeOut sender.sendMessage(new TranslationContainer("nukkit.command.title.times.success", args[2], args[3], args[4], player.getName())); } catch (NumberFormatException exception) { diff --git a/src/main/java/cn/nukkit/command/defaults/VersionCommand.java b/src/main/java/cn/nukkit/command/defaults/VersionCommand.java index 0fbfe8a6949..a58559b5218 100644 --- a/src/main/java/cn/nukkit/command/defaults/VersionCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/VersionCommand.java @@ -80,7 +80,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) sender.sendMessage("Authors: " + authorsString[0]); } } else { - sender.sendMessage(new TranslationContainer("nukkit.command.version.noSuchPlugin")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%nukkit.command.version.noSuchPlugin")); } } return true; diff --git a/src/main/java/cn/nukkit/command/defaults/WeatherCommand.java b/src/main/java/cn/nukkit/command/defaults/WeatherCommand.java index f85de3c6d19..cf5c04c1371 100644 --- a/src/main/java/cn/nukkit/command/defaults/WeatherCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/WeatherCommand.java @@ -16,7 +16,7 @@ public class WeatherCommand extends VanillaCommand { public WeatherCommand(String name) { - super(name, "%nukkit.command.weather.description", "%commands.weather.usage"); + super(name, "%nukkit.command.weather.description", "%nukkit.command.weather.usage"); this.setPermission("nukkit.command.weather"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ @@ -31,7 +31,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) return true; } if (args.length == 0 || args.length > 2) { - sender.sendMessage(new TranslationContainer("commands.weather.usage", this.usageMessage)); + sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage)); return false; } @@ -78,7 +78,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) new TranslationContainer("commands.weather.thunder")); return true; default: - sender.sendMessage(new TranslationContainer("commands.weather.usage", this.usageMessage)); + sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage)); return false; } diff --git a/src/main/java/cn/nukkit/command/defaults/WhitelistCommand.java b/src/main/java/cn/nukkit/command/defaults/WhitelistCommand.java index 39b3a487e21..751eec16727 100644 --- a/src/main/java/cn/nukkit/command/defaults/WhitelistCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/WhitelistCommand.java @@ -15,7 +15,7 @@ public class WhitelistCommand extends VanillaCommand { public WhitelistCommand(String name) { - super(name, "%nukkit.command.whitelist.description", "%commands.whitelist.usage"); + super(name, "%nukkit.command.whitelist.description", "%nukkit.command.whitelist.usage"); this.setPermission( "nukkit.command.whitelist.reload;" + "nukkit.command.whitelist.enable;" + @@ -52,17 +52,17 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) switch (args[0].toLowerCase()) { case "reload": sender.getServer().reloadWhitelist(); - Command.broadcastCommandMessage(sender, new TranslationContainer("commands.whitelist.reloaded")); + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.allowlist.reloaded")); return true; case "on": sender.getServer().setPropertyBoolean("white-list", true); - Command.broadcastCommandMessage(sender, new TranslationContainer("commands.whitelist.enabled")); + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.allowlist.enabled")); return true; case "off": sender.getServer().setPropertyBoolean("white-list", false); - Command.broadcastCommandMessage(sender, new TranslationContainer("commands.whitelist.disabled")); + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.allowlist.disabled")); return true; case "list": @@ -72,17 +72,17 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) result.append(player).append(", "); ++count; } - sender.sendMessage(new TranslationContainer("commands.whitelist.list", String.valueOf(count), String.valueOf(count))); + sender.sendMessage(new TranslationContainer("commands.allowlist.list", String.valueOf(count), String.valueOf(count))); sender.sendMessage(result.length() > 0 ? result.substring(0, result.length() - 2) : ""); return true; case "add": - sender.sendMessage(new TranslationContainer("commands.generic.usage", "%commands.whitelist.add.usage")); + sender.sendMessage(new TranslationContainer("commands.generic.usage", "%nukkit.command.whitelist.add.usage")); return true; case "remove": - sender.sendMessage(new TranslationContainer("commands.generic.usage", "%commands.whitelist.remove.usage")); + sender.sendMessage(new TranslationContainer("commands.generic.usage", "%nukkit.command.whitelist.remove.usage")); return true; } } else if (args.length == 2) { @@ -92,12 +92,12 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) switch (args[0].toLowerCase()) { case "add": sender.getServer().getOfflinePlayer(args[1]).setWhitelisted(true); - Command.broadcastCommandMessage(sender, new TranslationContainer("commands.whitelist.add.success", args[1])); + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.allowlist.add.success", args[1])); return true; case "remove": sender.getServer().getOfflinePlayer(args[1]).setWhitelisted(false); - Command.broadcastCommandMessage(sender, new TranslationContainer("commands.whitelist.remove.success", args[1])); + Command.broadcastCommandMessage(sender, new TranslationContainer("commands.allowlist.remove.success", args[1])); return true; } @@ -108,7 +108,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) private boolean badPerm(CommandSender sender, String perm) { if (!sender.hasPermission("nukkit.command.whitelist." + perm)) { - sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.unknown", this.getName())); return true; } diff --git a/src/main/java/cn/nukkit/command/defaults/XpCommand.java b/src/main/java/cn/nukkit/command/defaults/XpCommand.java index 26a5a5f9323..7d146fc2790 100644 --- a/src/main/java/cn/nukkit/command/defaults/XpCommand.java +++ b/src/main/java/cn/nukkit/command/defaults/XpCommand.java @@ -14,7 +14,7 @@ */ public class XpCommand extends Command { public XpCommand(String name) { - super(name, "%nukkit.command.xp.description", "%commands.xp.usage"); + super(name, "%nukkit.command.xp.description", "%nukkit.command.xp.usage"); this.setPermission("nukkit.command.xp"); this.commandParameters.clear(); this.commandParameters.put("default", new CommandParameter[]{ @@ -91,7 +91,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args) if (amount > 0) { sender.sendMessage(new TranslationContainer("commands.xp.success.levels", String.valueOf(amount), player.getName())); } else { - sender.sendMessage(new TranslationContainer("commands.xp.success.levels.minus", String.valueOf(-amount), player.getName())); + sender.sendMessage(new TranslationContainer("commands.xp.success.negative.levels", String.valueOf(-amount), player.getName())); } return true; } else { diff --git a/src/main/java/cn/nukkit/command/simple/SimpleCommand.java b/src/main/java/cn/nukkit/command/simple/SimpleCommand.java index 6fae8ab119f..26b02132e3e 100644 --- a/src/main/java/cn/nukkit/command/simple/SimpleCommand.java +++ b/src/main/java/cn/nukkit/command/simple/SimpleCommand.java @@ -5,6 +5,7 @@ import cn.nukkit.command.CommandSender; import cn.nukkit.command.ConsoleCommandSender; import cn.nukkit.lang.TranslationContainer; +import cn.nukkit.utils.TextFormat; import java.lang.reflect.Method; @@ -43,7 +44,7 @@ public void sendUsageMessage(CommandSender sender) { } public void sendInGameMessage(CommandSender sender) { - sender.sendMessage(new TranslationContainer("commands.generic.ingame")); + sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.ingame")); } @Override diff --git a/src/main/java/cn/nukkit/event/entity/EntityDamageEvent.java b/src/main/java/cn/nukkit/event/entity/EntityDamageEvent.java index 5f640894c85..15705f9df6c 100644 --- a/src/main/java/cn/nukkit/event/entity/EntityDamageEvent.java +++ b/src/main/java/cn/nukkit/event/entity/EntityDamageEvent.java @@ -224,6 +224,10 @@ public enum DamageCause { /** * Damage caused by hunger */ - HUNGER + HUNGER, + /** + * Damage caused in retaliation to another attack by the Thorns enchantment. + */ + THORNS, } } diff --git a/src/main/java/cn/nukkit/item/enchantment/EnchantmentThorns.java b/src/main/java/cn/nukkit/item/enchantment/EnchantmentThorns.java index cf85ed2cb97..e5c2915251e 100644 --- a/src/main/java/cn/nukkit/item/enchantment/EnchantmentThorns.java +++ b/src/main/java/cn/nukkit/item/enchantment/EnchantmentThorns.java @@ -52,7 +52,7 @@ public void doPostAttack(Entity attacker, Entity entity) { ThreadLocalRandom random = ThreadLocalRandom.current(); if (shouldHit(random, thornsLevel)) { - attacker.attack(new EntityDamageByEntityEvent(entity, attacker, EntityDamageEvent.DamageCause.ENTITY_ATTACK, getDamage(random, level), 0f)); + attacker.attack(new EntityDamageByEntityEvent(entity, attacker, EntityDamageEvent.DamageCause.THORNS, getDamage(random, level), 0f)); } } diff --git a/src/main/java/cn/nukkit/utils/Watchdog.java b/src/main/java/cn/nukkit/utils/Watchdog.java index 54ce13617e4..f8af202c914 100644 --- a/src/main/java/cn/nukkit/utils/Watchdog.java +++ b/src/main/java/cn/nukkit/utils/Watchdog.java @@ -40,7 +40,7 @@ public void run() { MainLogger logger = this.server.getLogger(); logger.emergency("--------- Server stopped responding --------- (" + Math.round(diff / 1000d) + "s)"); logger.emergency("Please report this to Nukkit:"); - logger.emergency(" - https://github.com/NukkitX/Nukkit/issues/new"); + logger.emergency(" - https://github.com/CloudburstMC/Nukkit/issues/new"); logger.emergency("---------------- Main thread ----------------"); dumpThread(ManagementFactory.getThreadMXBean().getThreadInfo(this.server.getPrimaryThread().getId(), Integer.MAX_VALUE), logger);