Closed DaMatrix closed 7 years ago
I'm going to need to figure out what DataCache is, as it seems to have been removed from the code.
Look at the code in 527b13245f10c20842fedd98c1a2ef41a1f1e4c1. Off the top of my head that is the last commit where the data cache system was still working. Look in UpstreamSeasion. I was planning to reimplement the system in ClientConnection if you want to do it yourself.
Awesome work, thanks for your help. Have you done anything with chunk translation yet?
I haven't started the chunk translator yet, I'm just going through the translators in the order they show up in my IDE.
OK. All the translators compile now, but there's lots of errors in the log when trying to connect. Working on that now
Hm. I'm kinda stuck here, if somebody who actually understands the MCPE protocol could give me a hand here, it would be greatly appreciated. Here's what I get when connecting to a server from MCPE: http://pastebin.com/EQhXCSYT I don't understand how there could be any ArrayIndexOutOfBoundsExceptions here...
I've solved all the exceptions, everything should work now, but it doesn't. The client waits a moment with a blank screen and then says "Disconnected from server". I don't understand the MCPE protocol in the slightest, so I can't really do much here. :/
We might want to get MrPowerGamerBR in on this.
@MrPowerGamerBR Would you be able to help with fixing the translators? I remember you had wanted to do that before the new network system was implemented.
@DaMatrix I do know that at least the chunk translator isn't translating properly because of the chunk format change. See issue #5 in my fork.
@robotman3000 sorry, I'm busy with my upcoming MCPE server. :/
(I actually wanted DragonProxy to use a PC server for my upcoming MCPE server, but since I got stuck in the chunk translator issue, I started poking the Nukkit source to see if I could understand something... then I said fuck it and forked Nukkit)
@MrPowerGamerBR Ok, Thanks anyway.
However you may be interested to know that the packets I was sending in mimimalClientHandshake may have had an affect on whether the chunks would render or not. PE -> PE packet passthrough worked except for chunk's until I stopped using minimalClientHandshake, at which point they just started appearing like normal.
@robotman3000 strange... so PE -> PE passthrough does work then? Maybe I will take a look later then.
The problem for me is the chunk packet, because I can't figure out why that doesn't work.
@MrPowerGamerBR Yes it works.
@MrPowerGamerBR I also had to change the RakNet packet reliability to unreliable, in addition to not using minimalClientHandshake. That is about the extent of my knowledge about this problem that you don't already know
@robotman3000 as far as I know MCPE uses RakNet reliable ordered, strange that it is causing issues with that.
@MrPowerGamerBR I forget whether it was the client or server protocol adapter I changed to make it work, but I think it was MCPEServerProtocolAdapter
@robotman3000
@MrPowerGamerBR What server software are you using? It looks like you have a win10 client from the mouse cursor.
@DragonetMC Are any of you guys available to help with updating the translators?
@robotman3000 yes, MCW10 trying to connect to DragonProxy to a 1.11.2 server (to see what happens to fix the issues)
@MrPowerGamerBR Does the proxy or the server generate the full server message?
@robotman3000 the client doesn't even connect to the server
I forgot what causes the client to show "The server is full!".
Nothing in the 1.11.2 server.
(Maybe it is the protocol version? I'm testing with 1.0.3)
@MrPowerGamerBR This may be worth checking. If the max number of clients is set to -1 in the proxy config file it will refuse all connections. It's a bug that i haven't yet bothered to fix. Basically -1 (MaxOnline) < 0 (CurrentOnline) so the server is full.
@MrPowerGamerBR Also if that is your problem, I gather that you have a new config file, so set the authentication mode to offline (from cls which is the default). That's the only one that works right now.
@MrPowerGamerBR If the protocol version were a problem your disconnect message would be different
@MrPowerGamerBR It would be something about an outdated client or server
@robotman3000 okay, the max player was the issue, but now...
Also I'm compiling with the latest version here, not @DaMatrix's fork.
@MrPowerGamerBR Which latest version, my fork or the refactor branch?
@robotman3000 your fork
@MrPowerGamerBR Is that exception keeping you from connecting now?
@robotman3000 yep
@MrPowerGamerBR Also what issues are you referring to in particular?
@robotman3000 NullPointerException when trying to join the proxy.
I will probably take a look on what is causing this issue later. Also, I'm using "offline" mode in DragonProxy's config.
Yeah, as I said I don't get any RuntimeExceptions on my end, it looks like it's running fine but the client doesn't even get to the "Building terrain" screen.
@MrPowerGamerBR Something to try is using 7e9ed9e7401262a9d1f9b76dece890a49c564704 it's a few commits before the latest one. It is right before the negative-array-size fix which I haven't yet been able to test. The commit I've referenced is the last time I knew both passthrough modes to be working. All packet translation is broken though (The translators won't compile and have to be removed)
@DaMatrix Are you using a passthrough mode or a translator mode?
I'm talking about the translators (because that's what this PR is about)
@DaMatrix Is minimalClientHandshake enabled. The purpose of that code was to get the client to allow access to the chat by spawning it into the world, which would get you past the loading screens.
And I'm trying to get the proxy working to fix the translators. (Probably I will compile @DaMatrix's fork to see what happens)
@DaMatrix: If you don't send the: PlayStatusPacket, ResourcePackInfoPacket, StartGamePacket and PlayStatusPacket (in this order) you wouldn't get past the "building terrain" screen
@DaMatrix Yes, MrPowerGamerBR said it better than I did. Look at my comments in the code about those packets for a little more about this
@DaMatrix I just checked and in MCPEClientProtocolAdapter minimalClientHandshake is never called
That fixes the connection exceptions, but it still doesn't seem to work
That's why I'm confused :/
Also vaguely on topic: how are you pushing commits to my branch???
The arrayIndex error was caused by onClientLoginRequest sending the login packet and not the status packet. Look at line 290 in MCPEClientProtocolAdapter
@DaMatrix Uhh, I have absolutely no idea.
@DaMatrix Perhaps I have push permissions since your branch is currently in a pull request to mine?
This is still WIP, do not merge I'm working on fixing the translators. Yeah. What do I say?