Git Product home page Git Product logo

fastmotd's Introduction

Elytrium

FastMOTD

Join our Discord Proxy Stats Proxy Stats

A MOTD plugin for Velocity that caches network packets. This helps it be the fastest one of the MOTD plugins.
Test server: ely.su

Features

  • Fake online (percent + static sum)
  • Multiple descriptions/favicons support
  • Set information (custom text in the player list)
  • Caching of network packets
  • Max count "just add up" support
  • PNG built-in compression

Comparison with other MOTD plugins

Intel Core i9-9700K, DDR4 (a server that is not running any programs):

Plugin Pings per second count
FastMOTD 1 700 000 - 2 000 000 pings per second
Without MOTD plugins 900 000 - 1 100 000 pings per second
MiniMOTD 480 000 - 580 000 pings per second

Intel Xeon E3-1270, DDR3 (a PC with several applications running):

Plugin Pings per second count
FastMOTD 840 000 - 1 000 000 pings per second
Without MOTD plugins 330 000 - 430 000 pings per second
MiniMOTD 150 000 - 200 000 pings per second

fastmotd's People

Contributors

anamespace avatar hevav avatar jnngl avatar spirit55555 avatar usernugget avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

fastmotd's Issues

Error while pinging server: `NoSuchMethodError: 'com.velocitypowered.proxy.connection.MinecraftSessionHandler com.velocitypowered.proxy.connection.MinecraftConnection.getSessionHandler()'`

Error while pinging server (Velocity):

[01:05:04] [Application-Thread/INFO] [com.velocitypowered.proxy.Velocity]: Done (11,89s)!
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: java.lang.reflect.InvocationTargetException
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at org.geysermc.floodgate.util.ReflectionUtils.invoke(ReflectionUtils.java:509)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at org.geysermc.floodgate.inject.velocity.VelocityInjector$VelocityChannelInitializer.initChannel(VelocityInjector.java:103)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at dev.simplix.protocolize.velocity.netty.ProtocolizeServerChannelInitializer.initChannel(ProtocolizeServerChannelInitializer.java:46)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at com.viaversion.viaversion.velocity.handlers.VelocityChannelInitializer.initChannel(VelocityChannelInitializer.java:57)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:1114)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:609)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1463)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1115)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:650)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.Thread.run(Thread.java:833)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: Caused by: java.lang.NoSuchMethodError: 'com.velocitypowered.proxy.connection.MinecraftSessionHandler com.velocitypowered.proxy.connection.MinecraftConnection.getSessionHandler()'
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at net.elytrium.fastmotd.injection.ServerChannelInitializerHook.initChannel(ServerChannelInitializerHook.java:70)
[01:05:04] [Netty NIO Worker #0/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	... 35 more
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: java.lang.reflect.InvocationTargetException
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at org.geysermc.floodgate.util.ReflectionUtils.invoke(ReflectionUtils.java:509)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at org.geysermc.floodgate.inject.velocity.VelocityInjector$VelocityChannelInitializer.initChannel(VelocityInjector.java:103)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at dev.simplix.protocolize.velocity.netty.ProtocolizeServerChannelInitializer.initChannel(ProtocolizeServerChannelInitializer.java:46)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at com.viaversion.viaversion.velocity.handlers.VelocityChannelInitializer.initChannel(VelocityChannelInitializer.java:57)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:1114)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:609)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1463)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1115)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:650)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.Thread.run(Thread.java:833)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: Caused by: java.lang.NoSuchMethodError: 'com.velocitypowered.proxy.connection.MinecraftSessionHandler com.velocitypowered.proxy.connection.MinecraftConnection.getSessionHandler()'
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at net.elytrium.fastmotd.injection.ServerChannelInitializerHook.initChannel(ServerChannelInitializerHook.java:70)
[01:05:05] [Netty NIO Worker #1/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	... 35 more
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: java.lang.reflect.InvocationTargetException
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at org.geysermc.floodgate.util.ReflectionUtils.invoke(ReflectionUtils.java:509)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at org.geysermc.floodgate.inject.velocity.VelocityInjector$VelocityChannelInitializer.initChannel(VelocityInjector.java:103)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at dev.simplix.protocolize.velocity.netty.ProtocolizeServerChannelInitializer.initChannel(ProtocolizeServerChannelInitializer.java:46)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at com.viaversion.viaversion.velocity.handlers.VelocityChannelInitializer.initChannel(VelocityChannelInitializer.java:57)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:1114)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:609)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1463)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1115)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:650)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at java.base/java.lang.Thread.run(Thread.java:833)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: Caused by: java.lang.NoSuchMethodError: 'com.velocitypowered.proxy.connection.MinecraftSessionHandler com.velocitypowered.proxy.connection.MinecraftConnection.getSessionHandler()'
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	at net.elytrium.fastmotd.injection.ServerChannelInitializerHook.initChannel(ServerChannelInitializerHook.java:70)
[01:05:06] [Netty NIO Worker #2/ERROR] [com.velocitypowered.proxy.console.VelocityConsole]: 	... 35 more
[01:05:07] [Netty NIO Worker #2/INFO] [limboapi]: Bl_ckBuster (/127.0.0.1:50541) has connected to the LimboFilter Limbo
[01:05:07] [Netty NIO Worker #2/INFO] [limbofilter]: [connected player] Bl_ckBuster (/127.0.0.1:50541) has client brand vanilla
[01:05:08] [nioEventLoopGroup-5-1/INFO] [geyser]: Geyser runned on 0.0.0.0:19132
[01:05:08] [Velocity Async Event Executor - #2/INFO] [geyser]: Done (4,919s)! Use command /geyser help for help!
[01:05:14] [Netty NIO Worker #2/INFO] [limboapi]: Bl_ckBuster (/127.0.0.1:50541) has disconnected from the LimboFilter Limbo
[01:05:14] [Netty NIO Worker #2/INFO] [com.velocitypowered.proxy.connection.client.ConnectedPlayer]: [connected player] Bl_ckBuster (/127.0.0.1:50541) has disconnected: There are no servers available to connect to. Please try again later or contact your administrator.
[01:05:15] [Thread-3/INFO] [CommandSync]: Received new connection from 127.0.0.1
[01:05:15] [Thread-3/INFO] [CommandSync]: Connection from 127.0.0.1:50650 under name Hub-1 has been authorised

[Bug] Player online count not updating

4c0c015
Happened after this update

[12:57:10] [Velocity Task Scheduler - #76/ERROR]: Exception in task net.elytrium.fastmotd.FastMOTD$$Lambda$1166/0x00000001007bbc10@37e1b46d by plugin FastMOTD
java.util.ConcurrentModificationException: null
	at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:970) ~[?:?]
	at java.util.LinkedList$ListItr.next(LinkedList.java:892) ~[?:?]
	at net.elytrium.fastmotd.utils.ByteBufCopyThreadLocal.release(ByteBufCopyThreadLocal.java:42) ~[?:?]
	at net.elytrium.fastmotd.holder.MOTDBytesHolder.localReplaceOnline(MOTDBytesHolder.java:132) ~[?:?]
	at net.elytrium.fastmotd.holder.MOTDBytesHolder.replaceOnline(MOTDBytesHolder.java:116) ~[?:?]
	at net.elytrium.fastmotd.holder.MOTDHolder.replaceOnline(MOTDHolder.java:46) ~[?:?]
	at net.elytrium.fastmotd.utils.MOTDGenerator.update(MOTDGenerator.java:120) ~[?:?]
	at net.elytrium.fastmotd.FastMOTD.updateMOTD(FastMOTD.java:286) ~[?:?]
	at com.velocitypowered.proxy.scheduler.VelocityScheduler$VelocityTask.lambda$run$1(VelocityScheduler.java:228) ~[velocity-3.1.2-SNAPSHOT.jar:3.1.2-SNAPSHOT (git-57ca66de-b181)]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) [?:?]
[12:57:13] [Velocity Task Scheduler - #76/ERROR]: Exception in task net.elytrium.fastmotd.FastMOTD$$Lambda$1166/0x00000001007bbc10@37e1b46d by plugin FastMOTD
io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
	at io.netty.util.internal.ReferenceCountUpdater.toLiveRealRefCnt(ReferenceCountUpdater.java:83) ~[velocity-3.1.2-SNAPSHOT.jar:3.1.2-SNAPSHOT (git-57ca66de-b181)]
	at io.netty.util.internal.ReferenceCountUpdater.release(ReferenceCountUpdater.java:147) ~[velocity-3.1.2-SNAPSHOT.jar:3.1.2-SNAPSHOT (git-57ca66de-b181)]
	at io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:101) ~[velocity-3.1.2-SNAPSHOT.jar:3.1.2-SNAPSHOT (git-57ca66de-b181)]
	at net.elytrium.fastmotd.utils.ByteBufCopyThreadLocal.release(ByteBufCopyThreadLocal.java:43) ~[?:?]
	at net.elytrium.fastmotd.holder.MOTDBytesHolder.localReplaceOnline(MOTDBytesHolder.java:132) ~[?:?]
	at net.elytrium.fastmotd.holder.MOTDBytesHolder.replaceOnline(MOTDBytesHolder.java:116) ~[?:?]
	at net.elytrium.fastmotd.holder.MOTDHolder.replaceOnline(MOTDHolder.java:46) ~[?:?]
	at net.elytrium.fastmotd.utils.MOTDGenerator.update(MOTDGenerator.java:120) ~[?:?]
	at net.elytrium.fastmotd.FastMOTD.updateMOTD(FastMOTD.java:286) ~[?:?]
	at com.velocitypowered.proxy.scheduler.VelocityScheduler$VelocityTask.lambda$run$1(VelocityScheduler.java:228) ~[velocity-3.1.2-SNAPSHOT.jar:3.1.2-SNAPSHOT (git-57ca66de-b181)]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) [?:?]

https://mclo.gs/589Vm39

Compatibility issues with PacketEvents

Velocity version: 3.3.0-SNAPSHOT-build410
FastMOTD version: 1.0.7
Use default configuration file (with check for updates turned off)

I am pleased to learn that the FastMotd plugin has been updated to address several previous issues. I have installed the plugin into my server's plugin folder and attempted to run it. However, upon pinging the server using Minecraft, I encountered a problem where the server continuously displayed 'pinging' and eventually failed to respond.

As shown in the picture:
image

I have identified a compatibility issue with the plugin: when it is installed alongside PacketEvents, an exception is thrown. Removing PacketEvents allows the server to be detected normally.

I believe this to be a critical bug since many plugins rely on PacketEvents for their functionality. I hope you can address this issue in a future update.

This is my log file:
latest.log

Improvements

  • Add responses to commands /maintenance & /fastmotdreload
  • Add more ways to bypass maintenance kick fastmotd.bypass permission or add a command /maintenance allow <playername>
  • Add version-name in main (Currently only works when you enable maintenance)
  • Add minimessage support to version-name
  • Add placeholders for online maxonline #12

Error with old pingers

Pinger https://mcsrvstat.us/: Could not get the server status

Console:
x.x.x.x:xxxx is pinging the server with version Unknown (0x00)

Apparently FastMOTD does not respond to protocol 0x00, although the vanilla server is responding, please fix it.

changed the hover function on the server list tab.

Is it possible to change the hover function on the server list tab when the mouse cursor hovers over it, not to the custom text that we create, but to be able to see the names of the players on the server?

serverlist2

Motd per domain

Добавить поддержку мотд для определенного домена

Error when using multiple MOTD

The version I used:

1.0.1 for jdk 17.
Velocity the last version.

The problem:

After switching from 1.0.0 to 1.0.1, I got an error:

[00:12:42 ERROR]: Exception in task net.elytrium.fastmotd.FastMOTD$$Lambda$528/0x0000000801007510@6659d37c by plugin FastMOTD
java.lang.NullPointerException: Cannot invoke "net.elytrium.fastmotd.holder.MOTDHolder.replaceOnline(int, int)" because "holder" is null
        at net.elytrium.fastmotd.utils.MOTDGenerator.update(MOTDGenerator.java:125) ~[?:?]
        at net.elytrium.fastmotd.FastMOTD.updateMOTD(FastMOTD.java:198) ~[?:?]
        at com.velocitypowered.proxy.scheduler.VelocityScheduler$VelocityTask.lambda$run$1(VelocityScheduler.java:229) ~[velocity-161.jar:3.1.2-SNAPSHOT (git-e8bf6ab5-b161)]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) [?:?]

After researching, I found out that this error gets out when using more than 1 motds.

reload error

java.util.concurrent.CompletionException: java.lang.RuntimeException: Unable to invoke command fastmotdreload for com.velocitypowered.proxy.console.VelocityConsole@6bbcba25
        at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
        at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:649) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.RuntimeException: Unable to invoke command fastmotdreload for com.velocitypowered.proxy.console.VelocityConsole@6bbcba25
        at com.velocitypowered.proxy.command.VelocityCommandManager.executeImmediately0(VelocityCommandManager.java:223) ~[velocity.jar:3.1.2-SNAPSHOT (git-1a3fba42-b163)]
        at com.velocitypowered.proxy.command.VelocityCommandManager.lambda$executeAsync$0(VelocityCommandManager.java:237) ~[velocity.jar:3.1.2-SNAPSHOT (git-1a3fba42-b163)]
        at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?]
        ... 4 more
Caused by: java.lang.NullPointerException: Cannot invoke "net.elytrium.fastmotd.holder.MOTDHolder.dispose()" because "holder" is null
        at net.elytrium.fastmotd.utils.MOTDGenerator.dispose(MOTDGenerator.java:144) ~[?:?]
        at net.elytrium.fastmotd.FastMOTD.reload(FastMOTD.java:117) ~[?:?]
        at net.elytrium.fastmotd.command.ReloadCommand.execute(ReloadCommand.java:35) ~[?:?]
        at net.elytrium.fastmotd.command.ReloadCommand.execute(ReloadCommand.java:24) ~[?:?]
        at com.velocitypowered.proxy.command.registrar.InvocableCommandRegistrar.lambda$createLiteral$1(InvocableCommandRegistrar.java:81) ~[velocity.jar:3.1.2-SNAPSHOT (git-1a3fba42-b163)]
        at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:262) ~[velocity.jar:3.1.2-SNAPSHOT (git-1a3fba42-b163)]
        at com.velocitypowered.proxy.command.VelocityCommandManager.executeImmediately0(VelocityCommandManager.java:210) ~[velocity.jar:3.1.2-SNAPSHOT (git-1a3fba42-b163)]
        at com.velocitypowered.proxy.command.VelocityCommandManager.lambda$executeAsync$0(VelocityCommandManager.java:237) ~[velocity.jar:3.1.2-SNAPSHOT (git-1a3fba42-b163)]
        at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?]
        ... 4 more

Can't get good support in China.

Hello, Elytrium and programmers. I am using your plugin but am unable to receive proper support. When I attempt to update your plugin, it fails to check for updates. I understand this may be related to the GFW issue. To use fastmotd, I must connect through VPN-TUN. However, when I try to run the plugin, the terminal reports an update error. While your other plugins function correctly, fastmotd does not display messages properly on the Minecraft server page.

Here is my error log: log when I am not using the VPN.

This is my motd show.

image
It seemed try to connect my server (spent a long time. sometimes it shows a connection error message) but the lastly it return me a velocity default motd message.

image

This is my true motd text.
image

Thank you for reading my issue. I hope you have a good time!
Lastly, I sincerely hope this problem can be resolved.
Looking forward to your prompt reply!
Love from China❤

Добавить поддержку устаревшей версии

Хотелось бы видеть функционал как в вашем же плагине velocitytools - чтобы если сервер пытаются пропинговать с неподходящей версии, то в мотд и бренде выводился бы текст о том, что версия устарела, а так же красный крестик справа вместо зеленых полос.

Raknetify support?

I test install FastMOTD and Raknetify together on Velocity, add server with IP raknetl;localhost:25577, refresh server list, see motd can't show correctly.

This still can connect to server, but would be great if this can show normal motd.

Release 1.0.4 error

After updating from 1.0.4-SNAPSHOT to just 1.0.4 (from GitHub releases page) I getting this startup error:

[23:20:05 WARN] [net.elytrium.fastmotd.thirdparty.serializer.language.reader.YamlReader]: Skipping node prefix due to missing field
[23:20:05 ERROR]: Couldn't pass ProxyInitializeEvent to fastmotd
java.lang.IllegalStateException: Got unknown marker when reading map: n
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.YamlReader.readMapFromMarker(YamlReader.java:455) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.YamlReader.readMap(YamlReader.java:255) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readMap(AbstractReader.java:335) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readMapByType(AbstractReader.java:285) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readByType(AbstractReader.java:210) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readAndDeserializeByType(AbstractReader.java:176) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readNode(AbstractReader.java:135) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.YamlReader.readSerializableObject(YamlReader.java:137) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readByType(AbstractReader.java:239) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readAndDeserializeByType(AbstractReader.java:176) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readNode(AbstractReader.java:135) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.YamlReader.readSerializableObject(YamlReader.java:137) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readByType(AbstractReader.java:239) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readAndDeserializeByType(AbstractReader.java:176) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readNode(AbstractReader.java:135) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.YamlReader.readSerializableObject(YamlReader.java:137) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readSerializableObject(AbstractReader.java:76) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.object.AbstractSerializable.load(AbstractSerializable.java:119) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.object.AbstractSerializable.load(AbstractSerializable.java:108) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.object.AbstractSerializable.reload(AbstractSerializable.java:75) ~[?:?]
        at net.elytrium.fastmotd.FastMOTD.reload(FastMOTD.java:145) ~[?:?]
        at net.elytrium.fastmotd.FastMOTD.onProxyInitialization(FastMOTD.java:141) ~[?:?]
        at net.elytrium.fastmotd.Lmbda$4.execute(Unknown Source) ~[?:?]
        at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:56) ~[velocity-3.3.0-SNAPSHOT-320.jar:3.3.0-SNAPSHOT (git-08c03aae-b320)]
        at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:597) ~[velocity-3.3.0-SNAPSHOT-320.jar:3.3.0-SNAPSHOT (git-08c03aae-b320)]
        at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:478) ~[velocity-3.3.0-SNAPSHOT-320.jar:3.3.0-SNAPSHOT (git-08c03aae-b320)]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
        at java.lang.Thread.run(Unknown Source) [?:?]

config.yml:

version: "1.0.4-SNAPSHOT"
# Available serializers:
# LEGACY_AMPERSAND - "&c&lExample &c&9Text".
# LEGACY_SECTION - "§c§lExample §c§9Text".
# MINIMESSAGE - "<bold><red>Example</red> <blue>Text</blue></bold>". (https://webui.adventure.kyori.net/)
# GSON - "[{"text":"Example","bold":true,"color":"red"},{"text":" ","bold":true},{"text":"Text","bold":true,"color":"blue"}]". (https://minecraft.tools/en/json_text.php/)
# GSON_COLOR_DOWNSAMPLING - Same as GSON, but uses downsampling.
serializer: LEGACY_AMPERSAND
prefix: "FastMOTD &6>>"

main:
  version-name: "Mine.by"
  descriptions:
    - "&a▛&2▜ &7&lИГРАЙ НА &c&lMINE&a&l.BY&7!{NL}&2▙&a▟ &2Версия игры: &c1.8 &2-&c 1.16.5"
  favicons:
    - "server-icon.png"
  information:
    - "&aДавай к нам!"
  # How frequently online player count will be updated (in ms)
  update-rate: 3000
  # VARIABLE - from max-count parameter
  # ADD_SOME - will add up the number from max-count parameter to current online players amount
  max-count-type: VARIABLE
  max-count: 75000
  fake-online-add-single: 0
  fake-online-add-percent: 0
  # Accepted values: from 0.0 to 1.0.
  # Keep this value as low as possible
  # Set -1 to disable PNG recompression
  png-quality: 0.0
  log-pings: false
  # Separate MOTDs/favicons/information for different protocol versions
  # See https://wiki.vg/Protocol_version_numbers
  versions:
    # null = disabled
    descriptions: null
    # null = disabled
    favicons: null
    # null = disabled
    information: null
  domains:
    example.com:25565:
      description:
        - "Description for example.com"
      favicon:
        - "server-icon.png"
      information:
        - "Information for example.com"

maintenance:
  maintenance-enabled: false
  show-version: true
  should-kick-on-join: true
  kick-whitelist:
    - "127.0.0.1"
  kick-message: "&6Ведутся технические работы. &eПожалуйста, зайдите позже"
  version-name: "Технические работы"
  descriptions:
    - "&cMine&a.by&r | &6Ведутся технические работы"
  favicons:
    - "server-icon.png"
  information:
    - "&eСвязаться с нами:"
    - "&bhttps://mine.by/support"
  # -1 = disabled
  override-online: -1
  # -1 = disabled
  override-max-online: -1
  # Separate MOTDs/favicons/information for different protocol versions
  # See https://wiki.vg/Protocol_version_numbers
  versions:
    # null = disabled
    descriptions: null
    # null = disabled
    favicons: null
    # null = disabled
    information: null
  domains:
    example.com:25565:
      description:
        - "Description for example.com"
      favicon:
        - "server-icon.png"
      information:
        - "Information for example.com"
  command:
    usage: "{PRFX} Формат: &6/maintenance <off|on|toggle>"

shutdown-scheduler:
  # Server will stop accepting new connections
  shutdown-scheduler-enabled: false
  # Server will shut down after everyone has left the server
  shutdown-on-zero-players: false
  whitelist:
    - "127.0.0.1"

Maintenance Kick Internal Exception 1.19.2

When trying to connect while maintenance is enabled, the kick on join message returns the following error:
This error seems to be solved by mojang since the new versions (1.19.4).

(Using FabricMC + Sodium):
image

(Vanilla excpetion stacktrace):
image

Couldn't pass ProxyInitializeEvent to fastmotd

Sometimes when this kind of error occurs, motd will not be displayed correctly.
image

[23:43:27 INFO]: Booting up Velocity 3.3.0-SNAPSHOT (git-08c03aae-b320)...
[23:43:28 INFO]: Loading localizations...
[23:43:28 INFO]: Connections will use NIO channels, Java compression, Java ciphers
[23:43:28 INFO]: Loading plugins...
[23:43:28 INFO]: Loaded plugin alwaysonline 6.2.8 by Dablakbandit
[23:43:28 INFO]: Loaded plugin fastmotd 1.0.4 by Elytrium (https://elytrium.net/)
[23:43:28 INFO]: Loaded plugin geyser 2.2.0-SNAPSHOT (git-master-58ff00d) by GeyserMC
[23:43:28 INFO]: Loaded plugin luckperms 5.4.108 by Luck
[23:43:28 INFO]: Loaded plugin raknetify 0.1.0+alpha.5.109 by ishland
[23:43:28 INFO]: Loaded plugin send 3.0.0 by OskarsMC, OskarZyg
[23:43:28 INFO]: Loaded plugin vpacketevents 1.1.0 by 4drian3d
[23:43:28 INFO]: Loaded plugin signedvelocity 1.2.1 by 4drian3d
[23:43:28 INFO]: Loaded plugin velocityrcon 1.0 by UnioDex
[23:43:28 INFO]: Loaded plugin viaversion 4.9.3-SNAPSHOT by _MylesC, creeper123123321, Gerrygames, kennytv, Matsv [23:43:28 INFO]: Loaded plugin viabackwards 4.9.2-SNAPSHOT by Matsv, kennytv, Gerrygames, creeper123123321, ForceUpdate1
[23:43:28 INFO]: Loaded 11 plugins
[23:43:28 INFO]:         __
[23:43:28 INFO]:   |    |__)   LuckPerms v5.4.108
[23:43:28 INFO]:   |___ |      Running on Velocity - Velocity
[23:43:28 INFO]:
[23:43:28 INFO] [luckperms]: Loading configuration...
[23:43:29 INFO] [luckperms]: Loading storage provider... [H2]
[23:43:29 INFO] [luckperms]: Loading internal permission managers...
[23:43:29 INFO] [luckperms]: Performing initial data load...
[23:43:29 INFO] [luckperms]: Successfully enabled. (took 665ms)
[23:43:29 INFO] [alwaysonline]: Loading configuration...
[23:43:29 INFO] [alwaysonline]: Successfully loaded previous state variables!
[23:43:29 INFO] [alwaysonline]: Loading file database...
[23:43:29 INFO] [alwaysonline]: Database is ready to go!
[23:43:29 INFO] [alwaysonline]: Head Session server check: true
[23:43:29 INFO] [alwaysonline]: Total check methods active: 1
[23:43:29 INFO] [fastmotd]: Hooked into ServerChannelInitializer
[23:43:34 ERROR]: Couldn't pass ProxyInitializeEvent to fastmotd
java.io.UncheckedIOException: Unable to check for updates.
        at net.elytrium.fastmotd.thirdparty.commons.utils.updates.UpdatesChecker.checkVersionByURL(UpdatesChecker.java:47) ~[?:?]
        at net.elytrium.fastmotd.FastMOTD.reload(FastMOTD.java:147) ~[?:?]
        at net.elytrium.fastmotd.FastMOTD.onProxyInitialization(FastMOTD.java:141) ~[?:?]
        at net.elytrium.fastmotd.Lmbda$2.execute(Unknown Source) ~[?:?]
        at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:56) ~[velocity-3.3.0-SNAPSHOT-320.jar:3.3.0-SNAPSHOT (git-08c03aae-b320)]
        at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:597) ~[velocity-3.3.0-SNAPSHOT-320.jar:3.3.0-SNAPSHOT (git-08c03aae-b320)]
        at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:478) ~[velocity-3.3.0-SNAPSHOT-320.jar:3.3.0-SNAPSHOT (git-08c03aae-b320)]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
        at java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.net.SocketTimeoutException: Read timed out
        at sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:278) ~[?:?]
        at sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:304) ~[?:?]
        at sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:346) ~[?:?]
        at sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:796) ~[?:?]
        at java.net.Socket$SocketInputStream.read(Socket.java:1099) ~[?:?]
        at sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:489) ~[?:?]
        at sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:483) ~[?:?]
        at sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:160) ~[?:?]
        at sun.security.ssl.SSLTransport.decode(SSLTransport.java:111) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) ~[?:?]
        at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:586) ~[?:?]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:187) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1675) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1599) ~[?:?]
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:223) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.commons.utils.updates.UpdatesChecker.checkVersionByURL(UpdatesChecker.java:45) ~[?:?]
        ... 9 more
[23:43:34 INFO] [geyser]: 正在載入擴展...
[23:43:34 INFO] [geyser]: 已載入 0 個擴展程序
[23:43:34 INFO] [raknetify]: Bootstrapping raknetify in wrapped environment
[23:43:34 INFO] [signedvelocity]: Starting SignedVelocity
[23:43:34 INFO] [velocityrcon]: Binding rcon to address: /0.0.0.0:25576
[23:43:34 INFO] [viaversion]: Loading block connection mappings ...
[23:43:34 INFO] [viaversion]: Replacing channel initializers; you can safely ignore the following two warnings.
[23:43:34 WARN]: The server channel initializer has been replaced by java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[23:43:34 WARN]: The backend channel initializer has been replaced by java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[23:43:34 INFO] [viabackwards]: Loading translations...
[23:43:34 INFO] [viabackwards]: Registering protocols...
[23:43:35 INFO] [viaversion]: ViaVersion detected lowest supported version by the proxy: 1.13 (393)
[23:43:35 INFO] [viaversion]: Highest supported version by the proxy: 1.20.3/1.20.4 (765)
[23:43:35 INFO] [viaversion]: Finished mapping loading, shutting down loader executor!
[23:43:35 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565
[23:43:35 INFO] [geyser]: ******************************************
[23:43:35 INFO] [geyser]:
[23:43:35 INFO] [geyser]: 正在載入 Geyser 版本 2.2.0-SNAPSHOT (git-master-58ff00d)
[23:43:35 INFO] [geyser]:
[23:43:35 INFO] [geyser]: ******************************************
[23:43:35 INFO]: Listening for GS4 query on /[0:0:0:0:0:0:0:0]:25566
[23:43:35 INFO]: Done (7.61s)!
[23:43:36 INFO] [geyser]: Geyser 在 0.0.0.0:19132 啟動
[23:43:36 INFO] [geyser]: 完成 (1.468s)! 執行 /geyser help 來取得說明!
[23:43:36 INFO] [raknetify]: Raknetify server started on /[fe80:0:0:0:b01c:3a9d:bbb2:a14e%48]:25565
[23:43:36 INFO] [raknetify]: Raknetify server started on /172.28.28.14:25565
[23:43:36 INFO] [raknetify]: Raknetify server started on /[0:0:0:0:0:0:0:1]:25565
[23:43:36 INFO] [raknetify]: Raknetify server started on /127.0.0.1:25565

Couldn't pass ProxyPingEvent to fastmotd

Couldn't pass ProxyPingEvent to fastmotd
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[?:?]
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) ~[?:?]
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) ~[?:?]
at java.base/java.util.Objects.checkIndex(Objects.java:359) ~[?:?]
at java.base/java.util.ArrayList.get(ArrayList.java:427) ~[?:?]
at net.elytrium.fastmotd.FastMOTD.getNextCompat(FastMOTD.java:367) ~[?:?]
at net.elytrium.fastmotd.listener.CompatPingListener.onPing(CompatPingListener.java:36) ~[?:?]
at net.elytrium.fastmotd.listener.Lmbda$39.execute(Unknown Source) ~[?:?]
at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:56) ~[velocity-3.3.0-SNAPSHOT-361.jar:3.3.0-SNAPSHOT (git-fc3bc1f3-b361)]

Couldn't pass ProxyInitializeEvent to fastmotd

[19:15:26 INFO] [fastmotd]: Hooked into ServerChannelInitializer
[19:15:26 ERROR]: Couldn't pass ProxyInitializeEvent to fastmotd
java.lang.IllegalStateException: Got unknown marker when reading map: n
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.YamlReader.readMapFromMarker(YamlReader.java:455) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.YamlReader.readMap(YamlReader.java:255) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readMap(AbstractReader.java:335) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readMapByType(AbstractReader.java:285) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readByType(AbstractReader.java:210) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readAndDeserializeByType(AbstractReader.java:176) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readNode(AbstractReader.java:135) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.YamlReader.readSerializableObject(YamlReader.java:137) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readByType(AbstractReader.java:239) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readAndDeserializeByType(AbstractReader.java:176) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readNode(AbstractReader.java:135) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.YamlReader.readSerializableObject(YamlReader.java:137) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readByType(AbstractReader.java:239) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readAndDeserializeByType(AbstractReader.java:176) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readNode(AbstractReader.java:135) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.YamlReader.readSerializableObject(YamlReader.java:137) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.reader.AbstractReader.readSerializableObject(AbstractReader.java:76) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.object.AbstractSerializable.load(AbstractSerializable.java:119) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.object.AbstractSerializable.load(AbstractSerializable.java:108) ~[?:?]
        at net.elytrium.fastmotd.thirdparty.serializer.language.object.AbstractSerializable.reload(AbstractSerializable.java:75) ~[?:?]
        at net.elytrium.fastmotd.FastMOTD.reload(FastMOTD.java:145) ~[?:?]
        at net.elytrium.fastmotd.FastMOTD.onProxyInitialization(FastMOTD.java:141) ~[?:?]
        at net.elytrium.fastmotd.Lmbda$1.execute(Unknown Source) ~[?:?]
        at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:56) ~[velocity.jar:3.3.0-SNAPSHOT (git-74c932e5-b363)]
        at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:597) ~[velocity.jar:3.3.0-SNAPSHOT (git-74c932e5-b363)]
        at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:478) ~[velocity.jar:3.3.0-SNAPSHOT (git-74c932e5-b363)]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
        at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]

When I change in config this ( look on code bellow ) to null this error ( look on console log above ) show.

  versions:
    #null = disabled
    descriptions: null
    #null = disabled
    favicons: null
    #null = disabled
    information: null

Centering a MOTD

Adding an option/placeholder that will allow centering of text in MOTD.

`server-icon.png` not found. Where to place it?

Tried to place icon in Velocity root folder and tried to place icon in FastMOTD config folder, but still the same:

[20:52:21 WARN] [fastmotd]: Failed to load favicon server-icon.png. Ensure that the file exists or modify config.yml
[20:52:21 WARN] [fastmotd]: Failed to load favicon server-icon.png. Ensure that the file exists or modify config.yml
[20:52:21 WARN] [fastmotd]: Failed to load favicon server-icon.png. Ensure that the file exists or modify config.yml
[20:52:21 WARN] [fastmotd]: Failed to load favicon server-icon.png. Ensure that the file exists or modify config.yml
[20:52:21 WARN] [fastmotd]: Failed to load favicon server-icon.png. Ensure that the file exists or modify config.yml
[20:52:21 WARN] [fastmotd]: Failed to load favicon server-icon.png. Ensure that the file exists or modify config.yml
[20:52:21 WARN] [fastmotd]: Failed to load favicon server-icon.png. Ensure that the file exists or modify config.yml
[20:52:21 WARN] [fastmotd]: Failed to load favicon server-icon.png. Ensure that the file exists or modify config.yml
[20:52:21 WARN] [fastmotd]: Failed to load favicon server-icon.png. Ensure that the file exists or modify config.yml

velocity-3.3.0-SNAPSHOT-304 support

[com.velocitypowered.proxy.event.VelocityEventManager]: Couldn't pass ProxyInitializeEvent to fastmotd

[10:04:58] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Booting up Velocity 3.3.0-SNAPSHOT (git-e703e9d2-b304)...
[10:04:58] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Loading localizations...
[10:04:59] [main/INFO] [com.velocitypowered.proxy.network.ConnectionManager]: Connections will use NIO channels, Java compression, Java ciphers
[10:05:01] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Loading plugins...
[10:05:03] [main/INFO] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Loaded plugin alwaysonline 6.2.4 by Dablakbandit
[10:05:04] [main/INFO] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Loaded plugin fastmotd 1.0.4-SNAPSHOT by Elytrium (https://elytrium.net/)
[10:05:04] [main/INFO] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Loaded plugin geyser 2.2.0-SNAPSHOT (git-master-58ff00d) by GeyserMC
[10:05:04] [main/INFO] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Loaded plugin luckperms 5.4.108 by Luck
[10:05:04] [main/INFO] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Loaded plugin raknetify 0.1.0+alpha.5.109 by ishland
[10:05:05] [main/INFO] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Loaded plugin send 3.0.0 by OskarsMC, OskarZyg
[10:05:05] [main/INFO] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Loaded plugin vpacketevents 1.1.0 by 4drian3d
[10:05:05] [main/INFO] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Loaded plugin signedvelocity 1.2.1 by 4drian3d
[10:05:05] [main/INFO] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Loaded plugin velocityrcon 1.0 by UnioDex
[10:05:06] [main/INFO] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Loaded plugin viaversion 4.9.3-SNAPSHOT by _MylesC, creeper123123321, Gerrygames, kennytv, Matsv
[10:05:06] [main/INFO] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Loaded plugin viabackwards 4.9.2-SNAPSHOT by Matsv, kennytv, Gerrygames, creeper123123321, ForceUpdate1
[10:05:06] [main/INFO] [com.velocitypowered.proxy.VelocityServer]: Loaded 11 plugins
[10:05:09] [Velocity Async Event Executor - #0/INFO] [com.velocitypowered.proxy.console.VelocityConsole]: �[96m       �[36m __    �[0m
[10:05:09] [Velocity Async Event Executor - #0/INFO] [com.velocitypowered.proxy.console.VelocityConsole]: �[96m  |    �[36m|__)   �[0m�[32mLuckPerms�[0m �[96mv5.4.108�[0m
[10:05:09] [Velocity Async Event Executor - #0/INFO] [com.velocitypowered.proxy.console.VelocityConsole]: �[96m  |___ �[36m|      �[90mRunning on Velocity - Velocity�[0m
[10:05:09] [Velocity Async Event Executor - #0/INFO] [com.velocitypowered.proxy.console.VelocityConsole]: 
[10:05:09] [Velocity Async Event Executor - #0/INFO] [luckperms]: Loading configuration...
[10:05:14] [Velocity Async Event Executor - #0/INFO] [luckperms]: Loading storage provider... [H2]
[10:05:15] [Velocity Async Event Executor - #0/INFO] [luckperms]: Loading internal permission managers...
[10:05:15] [Velocity Async Event Executor - #0/INFO] [luckperms]: Performing initial data load...
[10:05:15] [Velocity Async Event Executor - #0/INFO] [luckperms]: Successfully enabled. (took 8711ms)
[10:05:15] [Velocity Async Event Executor - #0/INFO] [alwaysonline]: Loading configuration...
[10:05:15] [Velocity Async Event Executor - #0/INFO] [alwaysonline]: Successfully loaded previous state variables!
[10:05:15] [Velocity Async Event Executor - #0/INFO] [alwaysonline]: Loading file database...
[10:05:15] [Velocity Async Event Executor - #0/INFO] [alwaysonline]: Database is ready to go!
[10:05:15] [Velocity Async Event Executor - #0/INFO] [alwaysonline]: Head Session server check: true
[10:05:15] [Velocity Async Event Executor - #0/INFO] [alwaysonline]: Total check methods active: 1
[10:05:15] [Velocity Async Event Executor - #0/INFO] [fastmotd]: Hooked into ServerChannelInitializer
[10:05:17] [Velocity Async Event Executor - #0/ERROR] [com.velocitypowered.proxy.event.VelocityEventManager]: Couldn't pass ProxyInitializeEvent to fastmotd
java.lang.NoSuchMethodError: 'com.velocitypowered.proxy.protocol.packet.Disconnect com.velocitypowered.proxy.protocol.packet.Disconnect.create(net.kyori.adventure.text.Component, com.velocitypowered.api.network.ProtocolVersion)'
	at net.elytrium.fastmotd.FastMOTD.lambda$reload$0(FastMOTD.java:202) ~[?:?]
	at net.elytrium.fastmotd.thirdparty.fastprepare.PreparedPacket.prepare(PreparedPacket.java:132) ~[?:?]
	at net.elytrium.fastmotd.thirdparty.fastprepare.PreparedPacket.prepare(PreparedPacket.java:118) ~[?:?]
	at net.elytrium.fastmotd.FastMOTD.reload(FastMOTD.java:202) ~[?:?]
	at net.elytrium.fastmotd.FastMOTD.onProxyInitialization(FastMOTD.java:142) ~[?:?]
	at net.elytrium.fastmotd.Lmbda$2.execute(Unknown Source) ~[?:?]
	at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:56) ~[velocity-3.3.0-SNAPSHOT-304.jar:3.3.0-SNAPSHOT (git-e703e9d2-b304)]
	at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:597) ~[velocity-3.3.0-SNAPSHOT-304.jar:3.3.0-SNAPSHOT (git-e703e9d2-b304)]
	at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:478) ~[velocity-3.3.0-SNAPSHOT-304.jar:3.3.0-SNAPSHOT (git-e703e9d2-b304)]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
	at java.lang.Thread.run(Thread.java:1583) [?:?]
[10:05:17] [Velocity Async Event Executor - #0/INFO] [geyser]: 正在載入擴展...
[10:05:17] [Velocity Async Event Executor - #0/INFO] [geyser]: 已載入 0 個擴展程序
[10:05:17] [Velocity Async Event Executor - #0/INFO] [raknetify]: Bootstrapping raknetify in wrapped environment
[10:05:18] [Velocity Async Event Executor - #0/INFO] [signedvelocity]: Starting SignedVelocity
[10:05:18] [Velocity Async Event Executor - #0/INFO] [velocityrcon]: Binding rcon to address: /0.0.0.0:25576
[10:05:18] [Via-Mappingloader-0/INFO] [viaversion]: Loading block connection mappings ...
[10:05:19] [Velocity Async Event Executor - #0/INFO] [viaversion]: Replacing channel initializers; you can safely ignore the following two warnings.
[10:05:19] [Velocity Async Event Executor - #0/WARN] [com.velocitypowered.proxy.network.ConnectionManager]: The server channel initializer has been replaced by java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[10:05:19] [Velocity Async Event Executor - #0/WARN] [com.velocitypowered.proxy.network.ConnectionManager]: The backend channel initializer has been replaced by java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[10:05:19] [Velocity Async Event Executor - #0/INFO] [viabackwards]: Loading translations...
[10:05:20] [Velocity Async Event Executor - #0/INFO] [viabackwards]: Registering protocols...
[10:05:21] [Velocity Async Event Executor - #0/INFO] [viaversion]: ViaVersion detected lowest supported version by the proxy: 1.13 (393)
[10:05:21] [Velocity Async Event Executor - #0/INFO] [viaversion]: Highest supported version by the proxy: 1.20.3/1.20.4 (765)
[10:05:21] [ViaVersion - Task Executor #2/INFO] [viaversion]: Finished mapping loading, shutting down loader executor!
[10:05:21] [Netty NIO Boss #0/INFO] [com.velocitypowered.proxy.network.ConnectionManager]: Listening on /[0:0:0:0:0:0:0:0]:25565
[10:05:21] [Velocity Async Event Executor - #2/INFO] [geyser]: ******************************************
[10:05:21] [Velocity Async Event Executor - #2/INFO] [geyser]: 
[10:05:21] [Velocity Async Event Executor - #2/INFO] [geyser]: 正在載入 Geyser 版本 2.2.0-SNAPSHOT (git-master-58ff00d)
[10:05:21] [Velocity Async Event Executor - #2/INFO] [geyser]: 
[10:05:21] [Velocity Async Event Executor - #2/INFO] [geyser]: ******************************************
[10:05:21] [Netty NIO Worker #3/INFO] [com.velocitypowered.proxy.network.ConnectionManager]: Listening for GS4 query on /[0:0:0:0:0:0:0:0]:25566
[10:05:21] [main/INFO] [com.velocitypowered.proxy.Velocity]: Done (24.37s)!
[10:05:21] [ViaVersion - Task Executor #1/WARN] [viaversion]: You are running a development version of the plugin, please report any bugs to GitHub.
[10:05:26] [Velocity Async Event Executor - #2/INFO] [geyser]: Geyser 在 0.0.0.0:19132 啟動
[10:05:26] [Velocity Async Event Executor - #2/INFO] [geyser]: 完成 (5.151s)! 執行 /geyser help 來取得說明!
[10:05:27] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /[fe80:0:0:0:b0f0:38c6:ba24:910d%59]:25565
[10:05:27] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /172.19.249.153:25565
[10:05:27] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /[0:0:0:0:0:0:0:1]:25565
[10:05:27] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /127.0.0.1:25565
[10:06:05] [Thread-3/INFO] [com.velocitypowered.proxy.VelocityServer]: Shutting down the proxy...
[10:06:05] [Velocity Async Event Executor - #6/INFO] [raknetify]: Closing Raknetify server /127.0.0.1:25565
[10:06:05] [Velocity Async Event Executor - #6/INFO] [raknetify]: Closing Raknetify server /172.19.249.153:25565
[10:06:05] [Velocity Async Event Executor - #6/INFO] [raknetify]: Closing Raknetify server /[0:0:0:0:0:0:0:1]:25565
[10:06:05] [Velocity Async Event Executor - #6/INFO] [raknetify]: Closing Raknetify server /[fe80:0:0:0:b0f0:38c6:ba24:910d%59]:25565
[10:06:05] [Thread-3/INFO] [com.velocitypowered.proxy.network.ConnectionManager]: Closing endpoint /0.0.0.0:25565
[10:06:05] [Thread-3/INFO] [com.velocitypowered.proxy.network.ConnectionManager]: Closing endpoint /0.0.0.0:25566
[10:06:05] [Velocity Async Event Executor - #8/INFO] [geyser]: 正在關閉 Geyser。
[10:06:05] [Velocity Async Event Executor - #8/INFO] [geyser]: Geyser 成功關閉。
[10:06:05] [Velocity Async Event Executor - #8/INFO] [velocityrcon]: Trying to stop RCON listener
[10:06:05] [Velocity Async Event Executor - #8/INFO] [luckperms]: Starting shutdown process...
[10:06:05] [Velocity Async Event Executor - #8/INFO] [luckperms]: Closing storage...
[10:06:05] [Velocity Async Event Executor - #8/INFO] [luckperms]: Goodbye!

Auto-updater toggle option needed

My server has a poor Internet connection to GitHub, thus errors concerning auto updaters often occurs. It will be great if you could offer an option to toggle off the auto update checker.

[11:28:21 ERROR]: Couldn't pass ProxyInitializeEvent to fastmotd
java.io.UncheckedIOException: Unable to check for updates.
        at net.elytrium.java.commons.updates.UpdatesChecker.checkVersionByURL(UpdatesChecker.java:48) ~[?:?]
        at net.elytrium.fastmotd.FastMOTD.reload(FastMOTD.java:108) ~[?:?]
        at net.elytrium.fastmotd.FastMOTD.onProxyInitialization(FastMOTD.java:102) ~[?:?]
        at net.elytrium.fastmotd.Lmbda$1.execute(Unknown Source) ~[?:?]
        at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:47) ~[velocity.jar:3.1.2-SNAPSHOT (git-e8bf6ab5-b161)]
        at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:598) ~[velocity.jar:3.1.2-SNAPSHOT (git-e8bf6ab5-b161)]
        at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:479) ~[velocity.jar:3.1.2-SNAPSHOT (git-e8bf6ab5-b161)]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.Net.pollConnect(Native Method) ~[?:?]
        at sun.nio.ch.Net.pollConnectNow(Net.java:672) ~[?:?]
        at sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) ~[?:?]
        at sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597) ~[?:?]
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[?:?]
        at java.net.Socket.connect(Socket.java:633) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) ~[?:?]
        at sun.net.NetworkClient.doConnect(NetworkClient.java:178) ~[?:?]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:498) ~[?:?]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:603) ~[?:?]
        at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266) ~[?:?]
        at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380) ~[?:?]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:189) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) ~[?:?]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:175) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) ~[?:?]
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224) ~[?:?]
        at net.elytrium.java.commons.updates.UpdatesChecker.checkVersionByURL(UpdatesChecker.java:46) ~[?:?]
        ... 9 more

[bug] Using 'null' causes a bug

146b089
Happened after this update

ex)

descriptions: null
favicons: null
information: null
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "value" is null
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at net.elytrium.java.commons.config.YamlConfig.toYamlString(YamlConfig.java:578)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at net.elytrium.java.commons.config.YamlConfig.toYamlString(YamlConfig.java:530)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at net.elytrium.java.commons.config.YamlConfig.writeConfigKeyValue(YamlConfig.java:362)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at net.elytrium.java.commons.config.YamlConfig.writeConfigKeyValue(YamlConfig.java:358)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at net.elytrium.java.commons.config.YamlConfig.writeConfigKeyValue(YamlConfig.java:358)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at net.elytrium.java.commons.config.YamlConfig.save(YamlConfig.java:302)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at net.elytrium.java.commons.config.YamlConfig.reload(YamlConfig.java:80)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at net.elytrium.fastmotd.FastMOTD.reload(FastMOTD.java:143)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at net.elytrium.fastmotd.FastMOTD.onProxyInitialization(FastMOTD.java:139)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at net.elytrium.fastmotd.Lmbda$11.execute(Unknown Source)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:47)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:598)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:479)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[01:17:46] [Velocity Async Event Executor - #0/ERROR]: 	at java.base/java.lang.Thread.run(Thread.java:833)
[01:17:47] [Velocity Async Event Executor - #0/WARN]: Failed to load favicon second-server-icon.png. Ensure that the file exists or modify config.yml
[01:17:47] [Velocity Async Event Executor - #0/WARN]: Failed to load favicon second-server-icon.png. Ensure that the file exists or modify config.yml
[01:17:47] [Velocity Async Event Executor - #0/WARN]: Failed to load favicon second-server-icon.png. Ensure that the file exists or modify config.yml

new dev version erro:

[20:06:19 ERROR]: Exception in task net.elytrium.fastmotd.FastMOTD$$Lambda$1175/0x0000000801780f58@7414bf05 by plugin FastMOTD
io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
        at io.netty.util.internal.ReferenceCountUpdater.toLiveRealRefCnt(ReferenceCountUpdater.java:83) ~[velocity.jar:3.1.2-SNAPSHOT (git-7d77bfb5-b184)]
        at io.netty.util.internal.ReferenceCountUpdater.release(ReferenceCountUpdater.java:147) ~[velocity.jar:3.1.2-SNAPSHOT (git-7d77bfb5-b184)]
        at io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:101) ~[velocity.jar:3.1.2-SNAPSHOT (git-7d77bfb5-b184)]
        at net.elytrium.fastmotd.utils.ByteBufCopyThreadLocal.release(ByteBufCopyThreadLocal.java:43) ~[?:?]
        at net.elytrium.fastmotd.holder.MOTDBytesHolder.localReplaceOnline(MOTDBytesHolder.java:132) ~[?:?]
        at net.elytrium.fastmotd.holder.MOTDBytesHolder.replaceOnline(MOTDBytesHolder.java:116) ~[?:?]
        at net.elytrium.fastmotd.holder.MOTDHolder.replaceOnline(MOTDHolder.java:46) ~[?:?]
        at net.elytrium.fastmotd.utils.MOTDGenerator.update(MOTDGenerator.java:120) ~[?:?]
        at net.elytrium.fastmotd.FastMOTD.updateMOTD(FastMOTD.java:286) ~[?:?]
        at com.velocitypowered.proxy.scheduler.VelocityScheduler$VelocityTask.lambda$run$1(VelocityScheduler.java:228) ~[velocity.jar:3.1.2-SNAPSHOT (git-7d77bfb5-b184)]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]

PremiumVanish Velocity support

Hello, I'm updating this thread. Since I created it, to my positive surprise, the PremiumVanish plugin has received an update for Velocity!
I would appreciate if FastMotd used the new API to hook into PremiumVanish so that the player count FastMotd shows in the server selection list includes hidden players. This means that this number would be 1 less for each active online player with vanish enabled.

https://www.spigotmc.org/resources/premiumvanish-stay-hidden-bungee-velocity-support.14404/update?update=522238

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.