Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем ItzFirstException, 5 мар 2017.

  1. Автор темы
    ItzFirstException

    ItzFirstException Новичок Пользователь

    Баллы:
    11
    Имя в Minecraft:
    FirstException
    Всех приветсвую.
    Можете подсказать как изменить игроку имя в чате? И вообще в игровом процессе, возможно визуально, но главное изменить его в чате?
     
  2. Хостинг MineCraft
    <
  3. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    Либо поиграйся с ChatEvent.setFormat(...), либо вовсе его отменяй и костыль собственную отправку сообщения игрокам. Можешь ещё попробовать Player.setDisplayName(...), но тут не уверен - возможно сработает только при наличии какого-либо чат-менеджера.
     
  4. Автор темы
    ItzFirstException

    ItzFirstException Новичок Пользователь

    Баллы:
    11
    Имя в Minecraft:
    FirstException
    Может написать как-нибудь свой чат?
     
  5. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Ага. А еще собственный майнкрафт, сервер, с блекджеком и криперами..
     
  6. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    /**
    * 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);
     
  7. Dan_Ender

    Dan_Ender Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Dan_Ender
    Чат:
    Код:
    p.setDisplayName("name");
    Полностью:
    Код:
    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();
            }
        }
     
    Последнее редактирование: 9 апр 2017
  8. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    ,,,,
    Дата...,
     
  9. Dan_Ender

    Dan_Ender Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Dan_Ender
    Извиняюсь.
     

Поделиться этой страницей