1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Отличить фейк игрока от настоящего

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

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

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

    Баллы:
    76
    Делаю надписи под никнеймами игроков с помощью scoreboard api. Обратил внимание на то, что у нпс из citizens появляются эти же надписи под никами.
    Созрел резонный вопрос - как отличить обычного, настоящего игрока и фейкового, чтобы рисовать надпись только под настоящим игроком?
     
  2. MurlikMurlik

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

    Баллы:
    96
    Citizens добавляет в своих нпс метадату, чтобы можно было их отличить.
    Код:
    if (player.hasMetadata("NPC")) {
        return;
    }
     
  3. Автор темы
    reZero

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

    Баллы:
    76
    А если будут другие плагины, которые добавляют фейк игроков?
     
  4. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    У нпс по идее должен быть один айпишник, по нему и проверяй
     
  5. MurlikMurlik

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

    Баллы:
    96
    Уже зависит от них. Нормальные плагины внедряют именно такую мету.
     
  6. Автор темы
    reZero

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

    Баллы:
    76
    Значит, единого метода нет?
    Если какой-то недальновидный дев не добавил такую метку, я пойду накуй со своими системами? Прикольно =)
     
  7. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Плагины обычно в принципе не создают сущность игрока, а обходятся пакетами и дают свои события. T.к. сущности нет, для сервера игрок ни с кем и не контактирует, потому и всяких PlayerInteractEntityEvent вызываться не будет.
    Создание сущности игрока требует усилий для разработчика, потому ты вероятнее все же наткнешься на эту мету.
     
  8. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Да, именно так. Мета NPC это просто общая конвенция разработчиков. Ты в принципе можешь попробовать конечно посмотреть класс который реалиаует игрока, если там наследник EntityPlayer, а не он сам, то скорее всего это npc.
     

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