Помогите Изменяем имя игрока в чате.

ItzFirstException

Новичок
Пользователь
Баллы
11
Имя в Minecraft
FirstException
Всех приветсвую.
Можете подсказать как изменить игроку имя в чате? И вообще в игровом процессе, возможно визуально, но главное изменить его в чате?
 
Либо поиграйся с ChatEvent.setFormat(...), либо вовсе его отменяй и костыль собственную отправку сообщения игрокам. Можешь ещё попробовать Player.setDisplayName(...), но тут не уверен - возможно сработает только при наличии какого-либо чат-менеджера.
 
Может написать как-нибудь свой чат?
 
/**
* Sets the "friendly" name to display of this player. This may include
* color.
* <p>
* Note that this name will not be displayed in game, only in chat and
* places defined by plugins.
*
* @param name The new display name.
*/
public void setDisplayName(String name);
 
Чат:
JavaScript:
p.setDisplayName("name");
Полностью:
JavaScript:
public static void setNte(Player p,String name) {
        EntityHuman ent = ((CraftPlayer)p).getHandle();
        Field pname= null;
        try {
            pname = ent.getClass().getSuperclass().getDeclaredField("bH");
            pname.setAccessible(true);
            Field modifiersField = Field.class.getDeclaredField("modifiers");
            modifiersField.setAccessible(true);
            modifiersField.set(pname,pname.getModifiers() & ~Modifier.FINAL);
            pname.set(ent, new GameProfile(p.getUniqueId(),ChatColor.translateAlternateColorCodes('&',name)));
        } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
            Bukkit.getConsoleSender().sendMessage("Error changing nte for:"+p.getCustomName());
            e.printStackTrace();
        }
    }
 
Последнее редактирование:
,,,,
Чат:
JavaScript:
p.setDisplayName("name");
Полностью:
JavaScript:
public static void setNte(Player p,String name) {
        EntityHuman ent = ((CraftPlayer)p).getHandle();
        Field pname= null;
        try {
            pname = ent.getClass().getSuperclass().getDeclaredField("bH");
            pname.setAccessible(true);
            Field modifiersField = Field.class.getDeclaredField("modifiers");
            modifiersField.setAccessible(true);
            modifiersField.set(pname,pname.getModifiers() & ~Modifier.FINAL);
            pname.set(ent, new GameProfile(p.getUniqueId(),ChatColor.translateAlternateColorCodes('&',name)));
        } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
            Bukkit.getConsoleSender().sendMessage("Error changing nte for:"+p.getCustomName());
            e.printStackTrace();
        }
    }
Дата...,
 
Назад
Верх