From 470c6c604575cc7d083b5ad6263645ab1eb11074 Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 17 Jan 2024 00:10:02 -0300 Subject: [PATCH] Updated /nickname command --- .../commands/server/NicknameCommand.java | 51 +++++++++++++++---- src/main/resources/lang/commander/en_US.lang | 3 ++ 2 files changed, 45 insertions(+), 9 deletions(-) diff --git a/src/main/java/net/pedroricardo/commander/content/commands/server/NicknameCommand.java b/src/main/java/net/pedroricardo/commander/content/commands/server/NicknameCommand.java index 316136e..e2008d9 100644 --- a/src/main/java/net/pedroricardo/commander/content/commands/server/NicknameCommand.java +++ b/src/main/java/net/pedroricardo/commander/content/commands/server/NicknameCommand.java @@ -34,7 +34,7 @@ public static void register(CommandDispatcher dispatcher EntitySelector entitySelector = c.getArgument("target", EntitySelector.class); String nickname = c.getArgument("nickname", String.class); if (nickname.length() > 16) throw NICKNAME_TOO_LARGE.create(); - if (nickname.length() < 1) throw NICKNAME_TOO_SMALL.create(); + if (nickname.isEmpty()) throw NICKNAME_TOO_SMALL.create(); List entities = entitySelector.get(source); EntityPlayerMP player = (EntityPlayerMP) entities.get(0); @@ -55,7 +55,7 @@ public static void register(CommandDispatcher dispatcher CommanderCommandSource source = (CommanderCommandSource) c.getSource(); String nickname = c.getArgument("nickname", String.class); if (nickname.length() > 16) throw NICKNAME_TOO_LARGE.create(); - if (nickname.length() < 1) throw NICKNAME_TOO_SMALL.create(); + if (nickname.isEmpty()) throw NICKNAME_TOO_SMALL.create(); EntityPlayerMP player = (EntityPlayerMP) source.getSender(); @@ -64,12 +64,9 @@ public static void register(CommandDispatcher dispatcher player.nickname = nickname; player.hadNicknameSet = true; player.mcServer.playerList.sendPacketToAllPlayers(new Packet72UpdatePlayerProfile(player.username, player.nickname, player.score, player.chatColor, true, player.isOperator())); - if (source.getSender() == player) { - source.sendTranslatableMessage("commands.commander.nickname.set.success", nickname); - } else { - source.sendTranslatableMessage("commands.commander.nickname.set.success_other", player.username, nickname); - source.sendTranslatableMessage(player, "commands.commander.nickname.set.success_receiver", nickname); - } + + source.sendTranslatableMessage("commands.commander.nickname.set.success", nickname); + return Command.SINGLE_SUCCESS; }))) .then(LiteralArgumentBuilder.literal("get") @@ -82,7 +79,43 @@ public static void register(CommandDispatcher dispatcher source.sendTranslatableMessage("commands.commander.nickname.get.success", player.username, player.nickname); return Command.SINGLE_SUCCESS; - })))); + }))) + .then(LiteralArgumentBuilder.literal("reset") + .then(RequiredArgumentBuilder.argument("target", EntityArgumentType.player()) + .requires(source -> ((CommanderCommandSource)source).hasAdmin()) + .executes(c -> { + CommanderCommandSource source = (CommanderCommandSource) c.getSource(); + EntitySelector entitySelector = c.getArgument("target", EntitySelector.class); + List entities = entitySelector.get(source); + + EntityPlayerMP player = (EntityPlayerMP) entities.get(0); + + player.nickname = ""; + player.hadNicknameSet = false; + player.mcServer.playerList.sendPacketToAllPlayers(new Packet72UpdatePlayerProfile(player.username, player.nickname, player.score, player.chatColor, true, player.isOperator())); + if (source.getSender() == player) { + source.sendTranslatableMessage("commands.commander.nickname.reset.success"); + } else { + source.sendTranslatableMessage("commands.commander.nickname.reset.success_other", player.username); + source.sendTranslatableMessage(player, "commands.commander.nickname.reset.success_receiver"); + } + return Command.SINGLE_SUCCESS; + })) + .executes(c -> { + CommanderCommandSource source = (CommanderCommandSource) c.getSource(); + + EntityPlayerMP player = (EntityPlayerMP) source.getSender(); + + if (player == null) throw CommanderExceptions.notInWorld().create(); + + player.nickname = ""; + player.hadNicknameSet = false; + player.mcServer.playerList.sendPacketToAllPlayers(new Packet72UpdatePlayerProfile(player.username, player.nickname, player.score, player.chatColor, true, player.isOperator())); + + source.sendTranslatableMessage("commands.commander.nickname.reset.success", player.username); + + return Command.SINGLE_SUCCESS; + }))); dispatcher.register((LiteralArgumentBuilder) LiteralArgumentBuilder.literal("nick") .redirect(command)); } diff --git a/src/main/resources/lang/commander/en_US.lang b/src/main/resources/lang/commander/en_US.lang index 31d5327..f883c9d 100644 --- a/src/main/resources/lang/commander/en_US.lang +++ b/src/main/resources/lang/commander/en_US.lang @@ -111,6 +111,9 @@ commands.commander.nickname.set.success=Set own nickname to %s commands.commander.nickname.set.success_other=Set %s's nickname to %s commands.commander.nickname.set.success_receiver=Your nickname has been set to %s commands.commander.nickname.get.success=%s's nickname is %s +commands.commander.nickname.reset.success=Reset own nickname +commands.commander.nickname.reset.success_other=Reset %s's nickname +commands.commander.nickname.reset.success_receiver=Your nickname has been reset commands.commander.chunk.reset.success=Reset chunk at %s, %s commands.commander.setspawn.success=Set world spawn point to %s, %s, %s commands.commander.whois.success=%s's username is %s