elytrium / limboreconnect Goto Github PK
View Code? Open in Web Editor NEWReconnect your players after server restart
License: GNU General Public License v3.0
Reconnect your players after server restart
License: GNU General Public License v3.0
First off, this plugin was exactly what I was looking for! Thanks very much for creating it 😁
I think the ability to put players into spectator would be a good addition to this plugin - mainly, it would hide the UI and hand of the playermodel, making the experience feel somewhat cleaner in my opinion (see attached screenshots).
The config option could be something like:
world:
# Dimensions: OVERWORLD, NETHER, THE_END
dimension: "THE_END"
# Gamemodes: SURVIVAL, CREATIVE, SPECTATOR, ADVENTURE
gamemode: "SPECTATOR"
# Load world from file
# etc...
Во время перезагрузки сервера, если новый игрок пытается подключится к серверу, то его отключает от velocity полностью с ошибкой:
Серверная информация:
velocity dump - https://pastebin.com/hHEtjXmC
Воспроизведение бага:
Ожидаемый результат:
Игроку напишет сообщение "сервер выключен" / "сервер перезапускается"
Фактический результат:
Игрока выкидывает с Proxy-сервера (velocity) с ошибкой "Connection Lost"
With the release of the new limbohub plugin I had the idea that instead of sending the server to an empty world or a schematic where you can't move, why not send it to limbohub while waiting to reconnect to the server?
[17:00:35 INFO]: [connected player] boberKurva (/95.24.21.170:64487) has disconnected: В вашем подключении произошла внутренняя ошибка.
[17:00:35 ERROR]: [connected player] boberKurva (/95.24.21.170:64487): exception encountered in com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler@86d677
java.lang.IllegalStateException: Not connected to server!
at com.velocitypowered.proxy.connection.backend.VelocityServerConnection.ensureConnected(VelocityServerConnection.java:220) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at com.velocitypowered.proxy.protocol.packet.chat.ChatQueue.queuePacket(ChatQueue.java:60) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at com.velocitypowered.proxy.protocol.packet.chat.CommandHandler.queueCommandResult(CommandHandler.java:58) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at com.velocitypowered.proxy.protocol.packet.chat.session.SessionCommandHandler.handlePlayerCommandInternal(SessionCommandHandler.java:46) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at com.velocitypowered.proxy.protocol.packet.chat.session.SessionCommandHandler.handlePlayerCommandInternal(SessionCommandHandler.java:29) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at com.velocitypowered.proxy.protocol.packet.chat.CommandHandler.handlePlayerCommand(CommandHandler.java:42) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler.handle(ClientPlaySessionHandler.java:216) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at com.velocitypowered.proxy.protocol.packet.chat.session.SessionPlayerCommandPacket.handle(SessionPlayerCommandPacket.java:72) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at com.velocitypowered.proxy.connection.MinecraftConnection.channelRead(MinecraftConnection.java:153) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.tryDecode(MinecraftDecoder.java:92) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.channelRead(MinecraftDecoder.java:61) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[velocity.jar:3.3.0-SNAPSHOT (git-a9a31f69-b385)]
at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
Couldn't pass ProxyInitializeEvent to limboreconnect
java.lang.IllegalAccessError: class net.elytrium.limboapi.server.LimboImpl tried to access private method 'void com.velocitypowered.proxy.protocol.packet.config.StartUpdatePacket.<init>()' (net.elytrium.limboapi.server.LimboImpl is in unnamed module of loader com.velocitypowered.proxy.plugin.PluginClassLoader @58e85c6f; com.velocitypowered.proxy.protocol.packet.config.StartUpdatePacket is in unnamed module of loader 'app')
at net.elytrium.limboapi.server.LimboImpl.refresh(LimboImpl.java:220) ~[?:?]
at net.elytrium.limboapi.server.LimboImpl.<init>(LimboImpl.java:174) ~[?:?]
at net.elytrium.limboapi.LimboAPI.createLimbo(LimboAPI.java:382) ~[?:?]
at net.elytrium.limboreconnect.LimboReconnect.reload(LimboReconnect.java:138) ~[?:?]
at net.elytrium.limboreconnect.LimboReconnect.onProxyInitialization(LimboReconnect.java:108) ~[?:?]
at net.elytrium.limboreconnect.Lmbda$22.execute(Unknown Source) ~[?:?]
at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:56) ~[Velocity.jar:3.3.0-SNAPSHOT (git-53923ed8-b351)]
at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:597) ~[Velocity.jar:3.3.0-SNAPSHOT (git-53923ed8-b351)]
at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:478) ~[Velocity.jar:3.3.0-SNAPSHOT (git-53923ed8-b351)]
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) [?:?]
An exception is thrown here, not printed, caught by me with java debugger
This leads to ghost-like state, where player is not on backend and not in limbo, just waiting for time out.
Writing anything in chat in that state leads to issues like #21 #23.
I'm not an expert in Java, but I would suggest adding try-catch
blocks there, kicking player on any errors.
Also, precompiling Pattern
in advance while loading config can make this error more descriptive. Also javadoc says it can squish a bit of performance that way.
When there are a lot of plugins, shutting down the server may take a long time, or some plugins may take a long time to turn off. I have such a problem that when the server turns off, the plugin does not have time to process the trigger message of the player’s kick (because it takes time to turn off, and the kick message is at the very end) and nothing happens, in the end the velocity just kicks it itself. I think it’s worth adding some other triggers to trigger the limbo, for example, at least adding kick messages with velocity (currently doesn’t work) or so that the plugin is triggered by the very first "Stopping server" on server message or sees that is server turned off. But srsly, one trigger with a message is not enough on big projects
On the latest update to velocity and limboAPI
The client when kicked for the right reason connects to the virtual limbo server
but gets kicked immediately with no error message
here is a log: (although not much is visible)
[18:08:53] [main/INFO]: Done (7,61s)!
[18:10:20] [Netty NIO Worker #8/INFO]: [connected player] Hbarni_ (/127.0.0.1:24569): kicked from server AHMS-main: restart
[18:10:21] [Netty NIO Worker #8/INFO]: Hbarni_ (/127.0.0.1:24569) has connected to the LimboReconnect Limbo
[18:10:21] [Netty NIO Worker #8/INFO]: Hbarni_ (/127.0.0.1:24569) has disconnected from the LimboReconnect Limbo
[18:10:45] [Netty NIO Worker #10/INFO]: [connected player] Hbarni_ (/127.0.0.1:24580): kicked from server AHMS-main: multiplayer.disconnect.kicked
[18:10:55] [Thread-0/INFO]: Shutting down the proxy...
[18:10:55] [Thread-0/INFO]: Closing endpoint /0.0.0.0:25565
This is on a fabric server and I can not reprodure this on paper
Do something similar to what this plugin does https://github.com/Matt-MX/ReconnectVelocity
I have an issue.
When I try to join to the server that I am whitelisted I got disconnected. I tried to remove all plugins and only when this one was on the server the error repeated.
Elytrium/LimboQueue#3
forgive my stupidity. i have too many windows open and dont pay attention to which plugin
When the server restarts and the Player gets reconnected to the Server the SImple VOice CHat does not connect to the server, i already spoke with the Simple Voice Chat Staff and they said it is unlikely that it is a problem from their side. Now i came here to see if maybe the Problem is on the side of the LimboReconnect Plugin
The title message of reconnecting does not print out. And if i try to type something in chat it disconnected me in a sudden.
[18:05:23 INFO]: [server connection] TonyPak386 -> skymob has disconnected
[18:05:23 INFO] [limboreconnect]: Component: TextComponentImpl{content="伺服器重啟中", style=StyleImpl{obfuscated=not_set, bold=not_set, strikethrough=not_set, underlined=not_set, italic=not_set, color=NamedTextColor{name="yellow", value="#ffff55"}, clickEvent=null, hoverEvent=null, insertion=null, font=null}, children=[]}
[18:05:23 INFO] [limboreconnect]: Kick message: 伺服器重啟中
[18:05:23 INFO] [limboreconnect]: Config: .*重啟中.*
[18:05:23 INFO] [limboreconnect]: Match: true
[18:05:33 INFO]: [connected player] TonyPak386 (210006239254.ctinets.com/210.xxx.239.xxx:14492) has disconnected: §c無法連接至伺服器,你已被傳送回大堂
[18:05:33 ERROR]: [connected player] TonyPak386 (210006239254.ctinets.com/210.xxx.239.xxx:14492): exception encountered in com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler@2503e82c
java.lang.IllegalStateException: Not connected to server!
at com.velocitypowered.proxy.connection.backend.VelocityServerConnection.ensureConnected(VelocityServerConnection.java:215) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at com.velocitypowered.proxy.protocol.packet.chat.ChatQueue.queuePacket(ChatQueue.java:60) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at com.velocitypowered.proxy.protocol.packet.chat.session.SessionChatHandler.handlePlayerChatInternal(SessionChatHandler.java:54) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at com.velocitypowered.proxy.protocol.packet.chat.session.SessionChatHandler.handlePlayerChatInternal(SessionChatHandler.java:32) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at com.velocitypowered.proxy.protocol.packet.chat.ChatHandler.handlePlayerChat(ChatHandler.java:30) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler.handle(ClientPlaySessionHandler.java:233) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at com.velocitypowered.proxy.protocol.packet.chat.session.SessionPlayerChatPacket.handle(SessionPlayerChatPacket.java:94) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at com.velocitypowered.proxy.connection.MinecraftConnection.channelRead(MinecraftConnection.java:153) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.tryDecode(MinecraftDecoder.java:92) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.channelRead(MinecraftDecoder.java:61) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[velocity.jar:3.3.0-SNAPSHOT (git-7ca06899-b362)]
at java.base/java.lang.Thread.run(Thread.java:840) [?:?]```
While on the server, I wrote restart, after it kicked with such an exception.
In the debag Match: true
config.yml:
serializer: LEGACY_AMPERSAND
# Send player to the limbo, if disconnect reason contains this text (using regex)
trigger-message: "(?i).*Restarting.*"
# Server status check interval in milliseconds
check-interval: 1000
# Server status check timeout in milliseconds
ping-timeout: 500
# Reconnect delay after server startup
join-delay: 10000
# Send to limbo or use current server's world
use-limbo: false
# Require permission to reconnect (limboreconnect.reconnect)
require-permission: false
world:
# Dimensions: OVERWORLD, NETHER, THE_END
dimension: "OVERWORLD"
# Load world from file
load-world: false
# Schematic file name
world-file-path: "world.schem"
world-file-type: WORLDEDIT_SCHEM
world-light-level: 15
gamemode: ADVENTURE
world-coords:
x: 0
y: 100
z: 0
player-coords:
x: 0
y: 100
z: 0
pitch: 0.0
yaw: 90.0
[00:25:53 INFO]: [!!!com.velocitypowered.proxy.connection.client.ConnectedPlayer@969a8ab=>java.lang.NullPointerException:Cannot invoke "java.net.InetSocketAddress.toString()" because the return value of "com.velocitypowered.proxy.connection.client.ConnectedPlayer.getRemoteAddress()" is null!!!] has disconnected: An internal error has occurred in your connection.
[00:25:53 ERROR]: [!!!com.velocitypowered.proxy.connection.client.ConnectedPlayer@969a8ab=>java.lang.NullPointerException:Cannot invoke "java.net.InetSocketAddress.toString()" because the return value of "com.velocitypowered.proxy.connection.client.ConnectedPlayer.getRemoteAddress()" is null!!!]: exception handling exception in com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler@138eff9b
java.lang.IllegalStateException: Not connected to server!
at com.velocitypowered.proxy.connection.client.ConnectedPlayer.ensureAndGetCurrentServer(ConnectedPlayer.java:243) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler.handle(ClientPlaySessionHandler.java:261) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at com.velocitypowered.proxy.protocol.packet.chat.legacy.LegacyChat.handle(LegacyChat.java:121) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at com.velocitypowered.proxy.connection.MinecraftConnection.channelRead(MinecraftConnection.java:151) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.tryDecode(MinecraftDecoder.java:92) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.channelRead(MinecraftDecoder.java:61) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at java.lang.Thread.run(Thread.java:833) [?:?]
[00:25:53 ERROR]: [!!!com.velocitypowered.proxy.connection.client.ConnectedPlayer@969a8ab=>java.lang.NullPointerException:Cannot invoke "java.net.InetSocketAddress.toString()" because the return value of "com.velocitypowered.proxy.connection.client.ConnectedPlayer.getRemoteAddress()" is null!!!]: exception encountered in com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler@138eff9b
java.lang.IllegalStateException: Not connected to server!
at com.velocitypowered.proxy.connection.client.ConnectedPlayer.ensureAndGetCurrentServer(ConnectedPlayer.java:243) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler.handle(ClientPlaySessionHandler.java:261) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at com.velocitypowered.proxy.protocol.packet.chat.legacy.LegacyChat.handle(LegacyChat.java:121) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at com.velocitypowered.proxy.connection.MinecraftConnection.channelRead(MinecraftConnection.java:151) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.tryDecode(MinecraftDecoder.java:92) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.channelRead(MinecraftDecoder.java:61) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[velocity.jar:3.2.0-SNAPSHOT (git-8dcc7ee3-b294)]
at java.lang.Thread.run(Thread.java:833) [?:?]
[07:55:44] [main/ERROR] [com.velocitypowered.proxy.plugin.VelocityPluginManager]: Can't create plugin limboreconnect
com.google.inject.ProvisionException: Unable to provision, see the following errors:
1) [Guice/ErrorInjectingConstructor]: NoSuchElementException: No value present
at LimboReconnect.<init>(LimboReconnect.java:74)
at VelocityPluginModule.configure(VelocityPluginModule.java:47)
while locating LimboReconnect
Learn more:
https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTOR
1 error
======================
Full classname legend:
======================
LimboReconnect: "net.elytrium.limboreconnect.LimboReconnect"
VelocityPluginModule: "com.velocitypowered.proxy.plugin.loader.java.VelocityPluginModule"
========================
End of classname legend:
========================
at com.google.inject.internal.InternalProvisionException.toProvisionException(InternalProvisionException.java:251) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1151) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.velocitypowered.proxy.plugin.loader.java.JavaPluginLoader.createPlugin(JavaPluginLoader.java:134) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.velocitypowered.proxy.plugin.VelocityPluginManager.loadPlugins(VelocityPluginManager.java:155) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.velocitypowered.proxy.VelocityServer.loadPlugins(VelocityServer.java:364) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.velocitypowered.proxy.VelocityServer.start(VelocityServer.java:241) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.velocitypowered.proxy.Velocity.main(Velocity.java:71) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
Caused by: java.util.NoSuchElementException: No value present
at java.base/java.util.Optional.orElseThrow(Optional.java:377) ~[?:?]
at net.elytrium.limboreconnect.LimboReconnect.<init>(LimboReconnect.java:87) ~[?:?]
at net.elytrium.limboreconnect.LimboReconnect$$FastClassByGuice$$265cbd.GUICE$TRAMPOLINE(<generated>) ~[?:?]
at net.elytrium.limboreconnect.LimboReconnect$$FastClassByGuice$$265cbd.apply(<generated>) ~[?:?]
at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148) ~[server.jar:3.3.0-SNAPSHOT (git-3afd687b-b381)]
... 6 more
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.