Hello everyone! Today we'd like to introduce our Android application project (in Java), called FakeClient. FakeClient is an application that, as its name tells, sends data to a server as an MCPE client. You might be thinking about this: since we already have MCPE, why do we still need this app? Let's think about this. In Android MCPE, it takes approximately 20 to 30 seconds for my 17-month-old Nexus 4 to log in into a server due to the time consumed for world generating. This is especially annoying for plugin developers who is writing a plugin that always crashes when the player joins. The developer may want to add debug info to the console, but he has to add different types of info and change different things over the time to fix the bug. In some large projects, a developer may need to test for tens of times, and it could probably take hours to debug without a convenient tester. Therefore, this app will connect to a server on button clicked. Once connection is created, after ping-ponging some login packets, the app will send a ready packet to the server which spawns the player in the server. Convenient buttons will allow you to send different types of actions, such as to hit a player, break a block, etc. However, to avoid this being abused in some servers, we may add some simple quiz questions about PocketMine plugins that you must answer one correctly so that you can enter the main user interface. Another possible solution to this problem is to check some information from the server such that if the server does not want to allow this "bot" (e.g. by not installing a particular plugin) the app will not connect further. The project repository can be found at https://github.com/LegendOfMCPE/FakeClient and issues submitting and pull requests are welcome, as long as they are not spam and do not abuse the functions. We still have a long way to go until this app can at least login into the server, but we feel that it is suitable for us to introduce this project first. Sorry if this thread is posted incorrectly. I checked all the points in the README and I don't think this thread violates any. Spoiler: Disclaimer This post is posted by @PEMapModder using the organization account.
This would help me a ton, I hate it when I have to relog onto my server to test a function and wait for a min. for it to let me join. Thanks for making this.
I've a really fast connection so I don't need this. Only takes 3 - 10 seconds (depends on how the internet feels) to load a world from a server.
I have Time Warner Cables 50mb/sec internet plan and it still takes me up to a minute to join a server regardless of how many other people are connected to the internet at the same time yet I can play Battlefield 3 on Xbox LIVE while in a party with a ton of friends, and everyone in my house using the internet while im playing a game with absolutly no lag. I can even download an entire game in 15 mins or less (usually 6.6-8.2GB or in GTA Vs case a whole 15GB for an Xbox 360 game) straight to my console... Ive never understood how that kind of thing could happen since Xbox LIVE uses a lot of resources by itelf but it doesnt seem like Minecraft PE would need to use enough to make it take forever...
Battlefield 3 has pre-made maps stored on the disk. The server can just tell the client to pick out a certain map. Minecraft PE maps aren't pre-made, so the server has to send the entire map's data.
This is cool. An idea to prevent trolling/spamming on peoples' servers is maybe only allowing the fake client to connect to a local server.
Yes but it uses a lot of resources due to the servers being required to update rigibodies (I probably spelled that wrong ) after each explosion, show each player who is where, figure out where the bullet clones are and what they have hit, atc. (Ive made a simple FPS video game before, its easy to do but gets complicated client side)
It is not the problem of the internet, those 20 seconds. In Android, probably a bug, every time we login, it is the same speed as generating a new world. Especially how long the "Saving chunks" screen is. I "sniffed" the packet by echoing the packets' IO on console and I discovered that during the building terrain screen and saving chunks screen, except for some random SetTimePacket etc., the packets are all ping packets, which means it is nothing about slow connection that it loads slowly. @Dinokiller you are on iOS? I thought you were on Android. (In fact I just don't know )
the loading chunks is not the problem, its the progress screen you see before you could play. it takes ages to load on some devices that has low specs. (in my case, joining to a server is not a problem since i can join a server within 2-4 seconds in progress screen, the progress bar thingy that is loading screen if you call it)
Loading chunks means the progress screen I mean from the player receives an OPEN_CONNECTION_REPLY_2 packet to the player send a LoginReadyPacket it is the progress screen, and instead of the normal load single player world, on android the speed of entering a server is same as that generating a new world. My guess is the client, regardless of the server ID and seed, generated one anyways.
well it loads fast to me anyways even the chunk loading updating in-game (even i have crappy internet xD). its each devices fault for having a bad specs on it. and thats why this project is great since you dont have to worry anymore about these types of inconvenience anymore