Open unascribed opened 3 years ago
So this is the result of a fundamental difference between commands originating on the server and client act. A command registered on the server will go through the requires
check and will be omitted from the command tree the client receives if a player cannot access the command.
Likewise the command dispatcher on the client has no filtering of these "inaccessible" nodes, so some internal logic changes would be required to handle that.
I see; still getting used to Brigadier.
If this is complicated to implement it's probably not worth bothering. Just noticed the discrepancy between server and client command behavior.
Juuz has been working on integrating this into fabric api, so fixing this is going to be essential.
Registering a client command that has a requires() check does not remove it from tab complete like it does on the server.
Accepting the completion shows an immediate syntax error and highlights the command in red, so the requirement is recognized, but the tab complete isn't honoring it.
Minecraft 1.16.3, Fabric Loader v0.10.0+build.208, Fabric API 0.22.0+build.408-1.16
Workaround: Just don't register the command. Works in my case as my requires() check was "integrated server is absent", but more complex checks don't have that luxury.