Bungeecord/Lilypad如何将玩家发送到其他服务器

How does Bungeecord/Lilypad send players to other servers

所以我之前问过一个问题,是否可以将 ServerSocket 上的客户端发送到不同的服务器。但是现在,我想问一下如何使用 Bungeecord and/or Lilypad 从一个服务器发送到另一个服务器的 minecraft 玩家。我知道 LilyPad 使用代理和那些东西,但是当连接到 Bungeecord/Lilypad 服务器时,玩家如何发送到 hub/spawn and/or 到其他服务器,例如生存服务器和创意服务器。你可以在有网络的服务器上找到这样的服务器。我知道 Treasure wars 使用 lilypad,如果有帮助的话。

您回答了自己的问题。 Bungeecord 和 LilyPad 都是代理服务器网络。

虽然服务器无法在未经许可的情况下将客户端重定向到另一台服务器,但服务器 可以 连接到另一台服务器(意味着第一台服务器是代理服务器)并发回该服务器的消息给客户。由于第一台服务器本质上也是第二台服务器的客户端,因此第一台服务器可以在任何需要的点切换连接。

换句话说,Minecraft 客户端不会在任何时候切换连接。 Minecraft 客户端连接的服务器 IP 永远不会改变,它是代理服务器的 IP。但是,真正改变的是代理所连接的服务器。如果客户端向代理发送一些消息,表明它希望转到集线器,代理就会断开与当前连接的任何服务器的连接,连接到集线器,并将集线器响应的任何消息发送回 Minecraft 客户端.

这是我根据快速搜索得出的理解。

但是,如果 Minecraft 客户端 也进行了修改,则可以拥有类似的网络而无需像这样的代理:

  • 客户端与服务器的交互方式(可能是玩家走进了一个门户)触发了一些服务器切换动作。
  • 服务器识别此交互,并且由于它和客户端都已修改,因此知道如何响应。响应只是向客户端发送一条消息,说 "Switch to a different server. Here is the IP: (Insert IP here)"
  • 客户端收到来自服务器的消息,并根据自己的意愿,断开与当前服务器的连接并重新连接到新服务器。