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

Помогите Thermos модификация пакетов, отправляемых сервером

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

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

    Henry436 Новичок

    Баллы:
    16
    Добрый вечер, стоит задача модифицировать данные, которые отправляет Thermos-сервер версии 1.7.10 последнего билда (в частности, интересует информация о количестве игроков и блоках в чанках)

    Для изменения количества игроков пытался юзать ProtocolLib API, но ничего не добился. Плагин запускается, вроде работает, но данные не меняются. Пробовал и FakePlayersOnline - ситуация абсолютно аналогичная

    Но либо ProtocolLib не поможет мне модифицировать пакеты, либо я что-то делаю не так. Прошу совета и подсказок, в каком направлении копать.

    Изначально требовалось подменивать количество игроков онлайн на сервере и написание аналога Orebfuscator'а (который, как я понял, на Thermos'е не работает), но что-то не так. Я не пойму в чём проблема - я что-то делаю не так или же ProtocolLib на Thermos'е бесполезен?
     
  2. Хостинг MineCraft
    <
  3. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Скорее твои руки там бесполезны.
     
  4. Автор темы
    Henry436

    Henry436 Новичок

    Баллы:
    16
    Хорошо. Какой можете посоветовать плагин, который бы менял количество игроков онлайн (чтобы даже мониторинг видел другое количество)? Thermos 1.7.10, ProtocolLib 3.7.0. Дальше я уже на его основе сделал бы то, что мне нужно, но я не нашёл РАБОЧЕГО плагина. Может быть какие-то дополнительные плагины мешают, конечно... ScoreBoardStats мб?

    Я уже ставил FakePlayersOnline, там есть команда для изменения количества, так вот она не работает, количество игроков не меняется[DOUBLEPOST=1485960560,1485958798][/DOUBLEPOST]Что не так? Почему не работает?
    Код:
    @Override
    public void onEnable() {
        ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(this, ListenerPriority.MONITOR, Arrays.asList(new PacketType[] { PacketType.Status.Server.OUT_SERVER_INFO }))
        {
             public void onPacketSending(PacketEvent event)
             {
                  ((WrappedServerPing)event.getPacket().getServerPings().read(0)).setPlayersOnline(10);
             }
        });
    }
    [DOUBLEPOST=1485960998][/DOUBLEPOST]В логе/консоли ошибок нет, плагин запускается, но онлайн показывает настоящий, а не 10[DOUBLEPOST=1485965311][/DOUBLEPOST]Хотя иногда вот это появляется:

    Код:
    java.lang.NoClassDefFoundError: Could not initialize class com.comphenix.protocol.wrappers.WrappedServerPing
        at com.comphenix.protocol.wrappers.BukkitConverters$13.getSpecificValue(BukkitConverters.java:657) ~[ProtocolLib-3.7.0.jar:?]
        at com.comphenix.protocol.wrappers.BukkitConverters$13.getSpecificValue(BukkitConverters.java:649) ~[ProtocolLib-3.7.0.jar:?]
        at com.comphenix.protocol.wrappers.BukkitConverters$IgnoreNullConverter.getSpecific(BukkitConverters.java:143) ~[ProtocolLib-3.7.0.jar:?]
        at com.comphenix.protocol.reflect.StructureModifier.read(StructureModifier.java:201) ~[ProtocolLib-3.7.0.jar:?]
        at mytestplugin.Test$1.onPacketSending(Test.java:24) ~[Test.jar:?]
     

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