Open intexisty opened 4 years ago
I have already started implementing certain defaults regarding the commands. There is already a commangrouping. However, the grouping is done via parent commands that refer to children. For example server join
actually calls server join
and so on ...
Therefore I am against a parent command for all parent commands as of now, as it's quite verbose and doesn't seem to provide much value. However, we could add a manpage called admin-commands
, server administration
or whatever.
Looking at nick-set
for example, it isn't really an admin command, as users with permissions can use it on themselves.
I am also not quite sure whether I want commands that take empty arguments such as admin kick
, where the message is optional. I'd rather have kick -m "message" username_here
.
Sorry for typos, I suck at typing on phone
What do you want
I really like how cordless has its command system setup, it just lacks some features. Adding administrative commands to cordless' command system would make Cordless an actual alternative to the native discord client for server administrators.
Why
The addition of administration on cordless would expand the user base of cordless and make cordless a viable alternative to discord's native client.
Implementation hints
I would personally like to have an 'Administration' category added to the command system. I've thought of a couple of "simple" commands
Every admin command would start off with
admin
by default, should assume the current guild selected, and obey role hierarchy.Nicknames
admin nick-set {mention} {text}
- sets a nickname for a mentioned user - if no {mention} refer back to the current user logged inadmin nick-clear {mention}
- clears a nickname for a mentoned user - if no {mention} refer back to the current user logged inChannels
admin chn-topic-set {channelmention} {text}
- sets a channel topic for a text channel - if no text argument entered clear the channel topicadmin chn-rename {channel} {text}
- renames the first channel found with the given name - if no channel provided return, if no channel name provided returnadmin chn-create-txt {text}
- creates a text channel with the name provided - if no name provided return an erroradmin chn-create-voice {text}
- creates a voice channel with the name provided - if no name provided return an erroradmin chn-delete-txt {text}
- deletes the first text channel found with the name provided - if no name provided return an erroradmin chn-delete-voice {text}
- deletes the first voice channel found with the name provided - if no name provided return an errorRoles
admin role-rename {rolename} {text}
- renames the first found role with the given name - if no roles found return an error, if no text provided return an erroradmin role-mentionable {rolename}
- makes the first role found with the given name mentionable or unmentionable - if no roles found return an erroradmin role-visible {rolename}
- makes the first role found with the given name visible on the user list or invisibleadmin role-color {rolename} {rolecolor}
- changes the color of the first role found with the given name to whatever color is givenadmin role-add {mention} {rolename}
- adds the first role found with the given name to the mentioned useradmin role-remove {mention} {rolename}
- removes the first role found with the given name from the mentioned useradmin role-create {rolename} {rolecolor}
- creates a role with a given name and/or color. - if no color provided give default color, if no name provided return an erroradmin role-delete {rolename}
- deletes the first role found with the given name - if no role provided return an errorMisc
admin ban {id} {Xd} "{text}"
ORadmin ban {mention} {Xd} "{text}"
- bans a given user - if neither an id or a mention is provided return an error, if no text argument provided put""
as banMessage, if no Time argument provided for discord to delete messages provide "" to discordadmin kick {id} {text}
ORadmin kick {mention} {text}
- kicks a given user - if neither an id or a mention is provided return an error, if no text argument provided put""
as kickMessage