[Решено] Установка DisplayName

Статус
Закрыто для дальнейших ответов.

FortiStrike

Активный участник
Пользователь
Баллы
66
Код:
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        
        if (sender.hasPermission("roleplay.changename") && args.length == 2) {
            Player p = (Player) sender;
            double amount = plugin.getConfig().getDouble("changename_cost");
            boolean sucess = (boolean) EconomyManager.takeMoney(p, amount);
            if (sucess == true) {
                p.setDisplayName(args[0]+" "+args[1]);
                
                Bukkit.broadcastMessage(p.getName()+" сменил имя на "+p.getDisplayName());
                return true;
            }
        }
        return false;
    }
Почему оно меняет никнейм на время пока не будет return true;
?
upload_2021-6-14_18-11-12.png
 
Код:
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
       
        if (sender.hasPermission("roleplay.changename") && args.length == 2) {
            Player p = (Player) sender;
            double amount = plugin.getConfig().getDouble("changename_cost");
            boolean sucess = (boolean) EconomyManager.takeMoney(p, amount);
            if (sucess == true) {
                p.setDisplayName(args[0]+" "+args[1]);
               
                Bukkit.broadcastMessage(p.getName()+" сменил имя на "+p.getDisplayName());
                return true;
            }
        }
        return false;
    }
Почему оно меняет никнейм на время пока не будет return true;
?
Посмотреть вложение 59633
А как ты команду вводишь? Ну всмысле /test 1 1 1. А так я пока подумаю как это решть
 
Попробуй удали Essentials Chat или просто Essentials если чата нету и проверь
 
Мне нужно что бы работало с Essentials и без него
 
Код:
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
       
        if (sender.hasPermission("roleplay.changename") && args.length == 2) {
            Player p = (Player) sender;
            double amount = plugin.getConfig().getDouble("changename_cost");
            boolean sucess = (boolean) EconomyManager.takeMoney(p, amount);
            if (sucess == true) {
                p.setDisplayName(args[0]+" "+args[1]);
               
                Bukkit.broadcastMessage(p.getName()+" сменил имя на "+p.getDisplayName());
                return true;
            }
        }
        return false;
    }
Почему оно меняет никнейм на время пока не будет return true;
?
Посмотреть вложение 59633
Единственный нормальный вариант, это заносить имя в карту, где ключ это ник а значение произвольный ник и в ивенте на чат форматировать текст, удаляя старое и вставляя новое имя.
 
Только что проверил на чистом сервере:
PHP:
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            StringBuilder builder = new StringBuilder();
            for (String arg : args)
                builder.append(arg).append(' ');
            builder.deleteCharAt(builder.length() - 1);
            player.setDisplayName(builder.toString());
            player.sendMessage("Имя изменено на " + builder);
        }
        return true;
    }
7sR3KMN.png
 
Только что проверил на чистом сервере:
PHP:
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            StringBuilder builder = new StringBuilder();
            for (String arg : args)
                builder.append(arg).append(' ');
            builder.deleteCharAt(builder.length() - 1);
            player.setDisplayName(builder.toString());
            player.sendMessage("Имя изменено на " + builder);
        }
        return true;
    }
7sR3KMN.png
Ошибку я уже давно исправил в конфиге Essentials нужно один пункт в false поменять.
change-displayname: false
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх