I recently came across this bug and am similarly frustrated with how long this has been open. It looks like Mojang is opening those for "auto-discovery" to work but if you don't care about that, this is seriously annoying.
For those using Linux, I do have a quick, exceedingly ugly hack to work around this though. This is, admittedly, hideous. But it works!
tldr, this hooks calls to glibc bind() and, if the requested port is 19132 or 19133, redirects it into the ephemeral range (typically 32768-61000) where they won't get in the way of anything. Yes, it would be much cleaner to simply not open them at all, but this is simply transparent to bedrock_server (it just thinks it opened the ports and nobody is connecting to them).
Working happily with multiple bedrock_server instances on one system (obviously no auto-discovery) and using BedrockConnect (which uses the default ports).
/*
* An incredibly ugly hack to hook bedrock_server's
* superfluous bind to the default ports (19132 and 19133)
* and redirect them out of the way into the ephemeral range
*
* Instructions:
* Save this file as bindhook.c in the same dir as bedrock_server
* compile with `gcc -o libhook.so -shared -fPIC -ldl bindhook.c`
* run with `LD_PRELOAD=./libhook.so ./bedrock_server`
*/
#define _GNU_SOURCE
#include <dlfcn.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stddef.h>
int bind (int fd, const struct sockaddr *sk, socklen_t sl) {
static int (*real_bind)(int, const struct sockaddr *, socklen_t) = NULL;
static struct sockaddr_in *sk_in;
uint16_t port;
if (!real_bind)
real_bind = dlsym(RTLD_NEXT, "bind");
// AF_INET or AF_INET6, sin_port is in the same place
sk_in = (struct sockaddr_in *) sk;
port = ntohs(sk_in->sin_port);
if ((port == 19132) || (port == 19133))
sk_in->sin_port = htons(0);
return real_bind(fd, sk, sl);
}
This should theoretically be possible on Windows as well using DLL injection and API hooks, but it is much more involved than a simple call to dlsym() and I haven't really worked on Windows for 20+ years at this point.
Cartoon pack also is not working
started having this issue with my son's tablet. running android 4.4.2. updated to the newest version. 1.2.13. its a wifi only tablet. with WIFI on the game crashed when trying to sign into xbox live. turned off wifi and game doesnt crash, though that still makes it where he cannot join my worlds.
Edit: disabling xbox live sign in makes the game playable but cannot load any texture packs because they are tied to the Xbox live account.
I agree, the same has been happening for me and my friends realm. No matter what we do, we keep logging on to find our progress reset. It’s like Groundhog Day but in Minecraft.