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

[Tutorial] Сообщения при наводе на список игроков

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

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

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

    Баллы:
    88
    Имя в Minecraft:
    StealerSlain
    Сразу к делу. В 1.7, благодаря новым нововведениям можно делать сообщения в списке серверов, при наведения курсора на список игроков. Примерно так:
    [​IMG]
    [​IMG]

    Для того, чтобы сделать это, вам обязательно понадобится ProtocolLib.

    Пример кода из первого изображения:

    Код:
    @Override
    public void onEnable() {
    ProtocolLibrary.getProtocolManager().addPacketListener(
    new PacketAdapter(this, ListenerPriority.NORMAL,
    Arrays.asList(PacketType.Status.Server.OUT_SERVER_INFO), ListenerOptions.ASYNC) {
    @Override
    public void onPacketSending(PacketEvent event) { //регистрируем event, отправляющий пакеты
    handlePing(event.getPacket().getServerPings().read(0));
    }
    });
    }
    private void handlePing(WrappedServerPing ping) {
    ping.setPlayers(Arrays.asList(
    new WrappedGameProfile("id1", ChatColor.RED + "rubukkit " + ChatColor.RESET + //добавляем 1 строку
    "tutorial"),
    new WrappedGameProfile("id2", "Hello. This is line number two."), //добавляем 2 строку
    new WrappedGameProfile("id3", "Hello. This is line number three.") //добавляем 3 строку
    ));
    }
    Удачи :)

    извините за кривое оформление, торопился
     
    Bars, fromgate, skynetxxx и 4 другим нравится это.
  2. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Код:
    [18:19:09 ERROR]: [GuiServerInfo] Unhandled exception occured in onPacketSending(PacketEvent) for GuiServerInfo
    java.lang.ArrayStoreException: net.minecraft.util.com.mojang.authlib.GameProfile
        at com.comphenix.protocol.wrappers.BukkitConverters$2.getGenericValue(BukkitConverters.java:287) ~[ProtocolLib-3.0.1.jar:?]
        at com.comphenix.protocol.wrappers.BukkitConverters$2.getGenericValue(BukkitConverters.java:261) ~[ProtocolLib-3.0.1.jar:?]
        at com.comphenix.protocol.wrappers.BukkitConverters$IgnoreNullConverter.getGeneric(BukkitConverters.java:111) ~[ProtocolLib-3.0.1.jar:?]
        at com.comphenix.protocol.wrappers.WrappedServerPing.setPlayers(WrappedServerPing.java:188) ~[ProtocolLib-3.0.1.jar:?]
        at ServerInfo.ServerInfo.handlePing(ServerInfo.java:34) ~[GuiServerInfo.jar:?]
        at ServerInfo.ServerInfo.access$0(ServerInfo.java:33) ~[GuiServerInfo.jar:?]
        at ServerInfo.ServerInfo$1.onPacketSending(ServerInfo.java:25) ~[GuiServerInfo.jar:?]
        at com.comphenix.protocol.injector.SortedPacketListenerList.invokeSendingListener(SortedPacketListenerList.java:195) [ProtocolLib-3.0.1.jar:?]
        at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending(SortedPacketListenerList.java:149) [ProtocolLib-3.0.1.jar:?]
        at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:576) [ProtocolLib-3.0.1.jar:?]
        at com.comphenix.protocol.injector.PacketFilterManager.invokePacketSending(PacketFilterManager.java:552) [ProtocolLib-3.0.1.jar:?]
        at com.comphenix.protocol.injector.netty.NettyProtocolInjector.packetQueued(NettyProtocolInjector.java:251) [ProtocolLib-3.0.1.jar:?]
        at com.comphenix.protocol.injector.netty.NettyProtocolInjector.onPacketSending(NettyProtocolInjector.java:202) [ProtocolLib-3.0.1.jar:?]
        at com.comphenix.protocol.injector.netty.ChannelInjector.processSending(ChannelInjector.java:260) [ProtocolLib-3.0.1.jar:?]
        at com.comphenix.protocol.injector.netty.ChannelInjector.encode(ChannelInjector.java:317) [ProtocolLib-3.0.1.jar:?]
        at com.comphenix.protocol.injector.netty.ChannelInjector$1.encode(ChannelInjector.java:227) [ProtocolLib-3.0.1.jar:?]
        at net.minecraft.util.io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:111) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeWrite(DefaultChannelHandlerContext.java:644) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.write(DefaultChannelHandlerContext.java:698) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.writeAndFlush(DefaultChannelHandlerContext.java:688) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.writeAndFlush(DefaultChannelHandlerContext.java:717) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:893) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:239) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at com.comphenix.protocol.injector.netty.ChannelProxy.writeAndFlush(ChannelProxy.java:268) [ProtocolLib-3.0.1.jar:?]
        at net.minecraft.server.v1_7_R1.NetworkManager.b(NetworkManager.java:108) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.server.v1_7_R1.NetworkManager.handle(NetworkManager.java:88) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.server.v1_7_R1.PacketStatusListener.a(PacketStatusListener.java:55) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.server.v1_7_R1.PacketStatusInStart.a(SourceFile:25) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.server.v1_7_R1.PacketStatusInStart.handle(SourceFile:8) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:72) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.server.v1_7_R1.NetworkManager.channelRead0(NetworkManager.java:192) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.server.v1_7_R1.LegacyPingHandler.channelRead(SourceFile:89) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:149) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:100) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:480) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:447) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:341) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at net.minecraft.util.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [craftbukkit.jar:git-Bukkit-1.7.2-R0.1-b2969jnks]
        at java.lang.Thread.run(Thread.java:744) [?:1.7.0_45]
    [18:19:09 ERROR]: Parameters:
      net.minecraft.server.v1_7_R1.PacketStatusOutServerInfo@6611e305[
        b=net.minecraft.server.v1_7_R1.ServerPing@22bf8de6
        timestamp=1387462749475
      ]
    Версия 1.7.2, ProtocolLib 3.0.1
     
    caNek нравится это.
  3. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Вот! Вот под что я жду раздел на этом недофоруме.
     
    fromgate и Hephest нравится это.
  4. Автор темы
    StealerSlain

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

    Баллы:
    88
    Имя в Minecraft:
    StealerSlain
    Что опять-то не так?
     
  5. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Как исправить ошибку?
     
  6. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Всё хорошо. Просто администрация не делает никаких шагов к тому, чтобы туториалов тут стало больше.
     
  7. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    А мне кто поможет?
    Up!
     
  8. JustBlender

    JustBlender Старожил Девелопер Пользователь

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Интересно... Надо бы попробовать сделать такое на сервере, а в моем-то случае это может мне помочь!
     
  9. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Ау! Помогите, у меня ошибка!
     
  10. Jers

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

    Баллы:
    153
    Вы добавили в свой плагин ProtocolLib ?
     
  11. 0bsid1

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

    Баллы:
    123
    Имя в Minecraft:
    Artarious
    А куда эту хрень кидать? :D
     
  12. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Да, уже писал про это
     
  13. Автор темы
    StealerSlain

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

    Баллы:
    88
    Имя в Minecraft:
    StealerSlain
    Как пишет Comphenix, тебе нужно скачать девелоперскую версию протокола с его Jenkins'a.
     
  14. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Спасибо, работает
    Могу ли я сделать и выложить такой плагин?
    Сделал уже:
    http://www.rubukkit.org/threads/mech-guiserverinfo-v1-0-Ваш-текст-вместо-списка-игроков-1-7-2-r0-2.55782/
     
    fromgate нравится это.
  15. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    serega6531, молодец, я тоже сегодня добрался - добавил в FakePlayersOnline эту фишку.
     

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