Git Product home page Git Product logo

limboreconnect's People

Contributors

en0tuk avatar hilltty avatar skywatcher2019 avatar usernugget avatar whiler-sesame 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

limboreconnect's Issues

Feature Request - Option to change gamemode to spectator for limbo world

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...

Before

2023-06-22_11 10 14

After

2023-06-22_11 10 14_mod

Bug - Connection Lost for new players connections to reboting server

Во время перезагрузки сервера, если новый игрок пытается подключится к серверу, то его отключает от velocity полностью с ошибкой:
image

Серверная информация:
velocity dump - https://pastebin.com/hHEtjXmC

Воспроизведение бага:

  1. Перезапустить сервер
  2. Попытаться войти на сервер, когда тот перезагружается
  3. получение ошибки

Ожидаемый результат:
Игроку напишет сообщение "сервер выключен" / "сервер перезапускается"

Фактический результат:
Игрока выкидывает с Proxy-сервера (velocity) с ошибкой "Connection Lost"

suggestion: add that the player can be sent to the hub

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?

Not connected to 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) [?:?]

ERROR Velocity 3.3.0-351

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) [?:?]

Invalid regex in trigger-message will cause it to fail in a way hard to debug

An exception is thrown here, not printed, caught by me with java debugger

if (kickMessage.matches(CONFIG.triggerMessage)) {

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.

Problem with limbo

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

1.19.3 update breaks plugin

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

[Bug]: Simple Voice Chat not connecting after reconnecting

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

Not working at Purpur-2113 with Velocity 3.3.0-SNAPSHOT (git-7ca06899-b362)

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) [?:?]```

[BUG] Not connected to server! (IllegalStateException and NPE)

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) [?:?]

1.20.5 not working due to ProvisionException

[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

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.