Added an alias system so that a command can be called with different names.
The alias commands respects the permission system and can be used seemingly with the help and alias command.
The commands command still only lists the original/full command name, it doesn't list aliases
CreateCommand now has an addition argument commands can use: commandAliases
Added a new !alias or !aliases command
With these commands you can get the available alias(es) of a command by its original name or one of its alias
For example !alias god or !alias godmode
Some refactor to make the ChatListener function easier to read along with some comments to separate each command logic (built-in commands and "any other command")
Added CommandAliasesDoesNotExistError
Added GetCommandNameFromAlias util function
This update adds an optional permission system that commands can use to determine what the minimum permission level is to be able to access that specific command
This update forces changes on the other commands scripts. If you download this version make sure to download the updated version of your individual chat command(s) script as well
Added cc_debug dvar
Added cc_permission_enabled
Added cc_commands_mode dvar
Added cc_permission_mode dvar
Added cc_permission_default dvar
Added cc_permission_max dvar
Added cc_permission_0, cc_permission_1, cc_permission_2, cc_permission_3 & cc_permission_4 dvars
Added InsufficientPermissionError error
Added InvalidPermissionLevelError error
Added GetPlayerPermissionLevelFromDvar util function
Added GetPlayerPermissionLevel util function
Added SetPlayerPermissionLevel util function
Added PlayerHasSufficientPermissions util function
Added SetDvarIfNotInitialized util function
Added IsBot util function
Added DebugIsOn util function
Added PermissionIsEnabled util function
[Refactor]
Replaced player.chat_commands with player.pers["chat_commands"]
This is to make sure the variables are kept between rounds
Replaced level scoped variables with a single level scoped array variable <level.chat_commands> holding all properties (prefix, ports etc.)
This is a refactor/dev that changes how the commands work but the usage stays the same for the end user. The only difference is that you now have to install each command as a separate file
[Refactor]
Moved all the commands to their respective file, just like a plugin system to easily allow the user to add/remove commands
If the server has no commands it will display a message when trying to run any command with the prefix
[Dev]
Added args comment for the CreateCommand function (commandValue and commandHelp)