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

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

Discussion in 'Разработка плагинов для новичков' started by Henry436, Feb 1, 2017.

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

    Henry436 Новичок

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

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

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

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

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

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

    Henry436 Новичок

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

    Я уже ставил FakePlayersOnline, там есть команда для изменения количества, так вот она не работает, количество игроков не меняется[DOUBLEPOST=1485960560,1485958798][/DOUBLEPOST]Что не так? Почему не работает?
    Code:
    @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]Хотя иногда вот это появляется:

    Code:
    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:?]
     

Share This Page