Fix soft enum validation.
Currently, soft enum validation was entirely broken. In some cases, you could enter any string value and it would validate it. In others, it would match a completely incorrect overload.
This fix will correctly validate overloads server-side, since we currently can't rely on client-side validation.
This is not an alternative to real enum support. Client will still not be able to differentiate between two enum overloads due to both using the string symbol, which renders overload feedback incorrect when typing a command using multiple enums. See my issue for more information.
Added bad alias support to this PR because it's better than no alias support, and this is a missing feature currently as well. All I've done is register the command under each alias, if there is a better way to do this we can improve this for this pr or in the future.
I'm done making changes now (unless changes are requested to merge the pr).
EDIT: nevermind, guess I'm not, lol
@PMK744 I think this should get merged since no more edits are being pushed?
Is it up to date? Is it working properly? We want to make sure it doesn't break other stuff if possible.
Also please run linter before commits but looks good i guess