package universalteam.universalcore.command; import codechicken.lib.packet.PacketCustom; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; import net.minecraft.command.WrongUsageException; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ChatComponentTranslation; import universalteam.universalcore.network.PacketConstants; import universalteam.universalcore.nick.NicknameData; import java.util.Arrays; import java.util.List; public class CommandNick extends CommandBase { @Override public String getCommandName() { return "nick"; } @Override public List getCommandAliases() { return Arrays.asList("nickname"); } @Override public String getCommandUsage(ICommandSender sender) { return "command.nick.usage"; } @Override public void processCommand(ICommandSender sender, String[] args) { if (args.length < 1 || !(sender instanceof EntityPlayer)) throwWrongUsage(); EntityPlayer player = (EntityPlayer) sender; if (args.length == 1 && args[0].equalsIgnoreCase("reset")) { updateNick(player.getGameProfile().getName(), player.getGameProfile().getName()); sender.addChatMessage(new ChatComponentTranslation("command.nick.reset.success")); } else if (args.length == 1) { updateNick(player.getGameProfile().getName(), args[0]); sender.addChatMessage(new ChatComponentTranslation("command.nick.success")); } else throwWrongUsage(); } private void updateNick(String username, String nickname) { NicknameData.setNickname(username, nickname); PacketCustom packet = new PacketCustom(PacketConstants.CHANNEL, PacketConstants.UPDATE_NICK_NAME); packet.writeString(username); packet.writeString(nickname); packet.sendToClients(); } private void throwWrongUsage() { throw new WrongUsageException("command.nick.usage", new Object[0]); } @Override public List addTabCompletionOptions(ICommandSender sender, String[] args) { return args.length == 1 ? getListOfStringsMatchingLastWord(args, "reset") : null; } }