Dear PE Gods,

===short version===

Issue: When client receives a disconnect packet, it tears down all UDP sessions.

Suggested solution: When the client receives a disconnect packet, only disconnect the session for that source address rather then tearing down the whole network session.

===long version & background===

In PE .11 server ops had capability to send a “strange packet” to the client which would redirect the client to another server. This could be done for example when the user clicks a sign, or walks through a portal, or any other thing tied to an event. It was flexible and gave servers BungeeCord like capabilities for game lobbies, etc.

PE .12 reacts a bit differently to the “strange” transfer packet. It redirects the user to the other server, but keeps both the current and previous UDP sessions alive, in effect ddosing the original server! If the client receives a disconnect from either server, then both sessions are terminated, rendering the solution unusable as the disconnect is "all or nothing." We could keep the client connected to both servers, but would cause network overloads.

I’m sure this behavior makes total sense on the client side, and I’m guessing no-one ever intended the strange packet to work, I just wanted to lay it out all here.

As a PocketMine server operator I'm extremely thankful for MCPE and hope you guys find a way to implement this type of functionality in a future version of the client in support of the community.

I've attached a copy of the "strange packet" written by Shoghi if you'd like to check it out. And the issue is profiled in detail here in Post #2:

https://forums.pocketmine.net/threads/current-major-core-issues-with-pm-1-6-non-php-7-build.11266/

Thanks!