-
Notifications
You must be signed in to change notification settings - Fork 273
Sometimes all commands are unknown #1378
Comments
Only for IOS users. |
Can confirm on android |
Windows10 is the same. |
How to solve this problem? |
It is because of the loss of AvailableCommandsPacket. It is really a big packet. |
But...it's no use sending it back again |
Now . The only way to do this is to cancel OP, and then give it back to OP to use the command!!! |
That's obvious. When permissions are changed, allowed commands are recalculated and sent to the client. |
This is a serious problem. Probably it's caused by packet loss #blameUDP |
A temporary fix would be to send the packet three or four times, just to make sure that the packet gets to the client eventually. Not very efficient though, I don't think the client reports if it receives a packet.
|
@Snake1999 are you sending the avaliable commands packet as a reliable packet? It shouldn't have any packet loss if you are using RakNet + send as reliable. (Well, if Nukkit's RakNet is properly implemented of course, reliable will try to send the packet and make sure that the packet reached it's destination) |
http://www.jenkinssoftware.com/raknet/manual/reliabilitytypes.html Couldn't it be sent with RELIABLE_WITH_ACK_RECEIPT? MCPE should reply with a ACK receipt so you can figure out if the client did receive the packet or not. |
Well, it doesn't help that the Nukkit's Notify ACK implementation is missing, really:
Uhhh... where is the rest of the code? Anyway, the client does send a ACK response if you ask it to, I will try to fix this issue by checking if the client sent a ACK response, if it doesn't resend the packet until the client receives it. |
but why this doesn't happen to chunks? Why chunk packets don't lose? |
@Creeperface01 I think it's because the chunks are compressed more nicely when sent and the available commands packet may get even bigger than a chunk packet if you have a lot of commands. |
I think it might be Rak Network layer, for there is no code written for 'TCP packet resend'. Rak simulates TCP connection by UDP diagram packets, that means 'resend' should be written. |
Issue description
Write a short description about the issue
-Sometimes all commands are unknown
Steps to reproduce the issue
-There is no step,just when server is running,and some of the players enter the command is unknown command.
-Sometimes getting out of the server can not only solve the problem,but sometimes not.
-Restart the server can solve this problem.
!!!This problem is only for some players,other players are normal.
OS and versions
Crashdump, backtrace or other files
The text was updated successfully, but these errors were encountered: