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

Помогите ProtocolLib Пакеты, как их вообще использовать?

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

Метки:
Статус темы:
Закрыта.
  1. Автор темы
    bristol

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

    Баллы:
    46
    Qq all!
    Вопрос в названии, как использовать пакеты, как их использовать без ProtocolLib я понял, но не совсем понял как их использовать через ProtocolLib. Спасибо за помощь заранее!
     
  2. alexandrage

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

    Баллы:
    173
  3. alexandrage

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

    Баллы:
    173
    Код:
        public void hack(Main plugin) {
            ProtocolManager manager = ProtocolLibrary.getProtocolManager();
            manager.addPacketListener(new PacketServerChat(plugin, new PacketType[] { PacketType.Play.Server.CHAT }));
        }

    Код:
    package Example.chatser;
    
    import org.bukkit.plugin.Plugin;
    
    import com.comphenix.packetwrapper.WrapperPlayServerChat;
    import com.comphenix.protocol.PacketType;
    import com.comphenix.protocol.events.PacketAdapter;
    import com.comphenix.protocol.events.PacketEvent;
    import com.comphenix.protocol.wrappers.EnumWrappers.ChatType;
    import com.comphenix.protocol.wrappers.WrappedChatComponent;
    import com.google.gson.Gson;
    
    public class PacketServerChat extends PacketAdapter {
        private static Gson gson = new Gson();
        public PacketServerChat(Plugin plugin, PacketType[] type) {
            super(plugin, type);
        }
    
        public void onPacketSending(PacketEvent event) {
            WrapperPlayServerChat packet = new WrapperPlayServerChat(event.getPacket());
            WrappedChatComponent wchat = packet.getMessage();
            ChatType ctype = packet.getChatType();
            if (ctype == ChatType.SYSTEM) {
                if (wchat != null) {
                    BaseComponent bs = gson.fromJson(wchat.getJson(), BaseComponent.class);
                }
            }
        }
    }
     
  4. alexandrage

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

    Баллы:
    173
    Код:
                        PacketContainer chat = new PacketContainer(PacketType.Play.Server.CHAT);
                        chat.getChatTypes().write(0, ChatType.GAME_INFO);
                        chat.getChatComponents().write(0,
                                WrappedChatComponent.fromJson("{\"text\": \"§4§l❤§r " + (int) p.getHealth() + "/"
                                        + (int) p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getBaseValue() + "\"}"));
                        ProtocolLibrary.getProtocolManager().sendServerPacket(p, chat);
     
  5. Автор темы
    bristol

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

    Баллы:
    46
    Спасибо, вроде бы разобрался.
     
Статус темы:
Закрыта.

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