publicstaticCommandSystemInfo=newCommand("system","system [system]","Looks up information about a system");
publicstaticCommandSystemNew=newCommand("system new","system new [name]","Creates a new system");
publicstaticCommandSystemRename=newCommand("system name","system rename [name]","Renames your system");
publicstaticCommandSystemDesc=newCommand("system description","system description [description]","Changes your system's description");
publicstaticCommandSystemColor=newCommand("system color","system color [color]","Changes your system's color");
publicstaticCommandSystemTag=newCommand("system tag","system tag [tag]","Changes your system's tag");
publicstaticCommandSystemServerTag=newCommand("system servertag","system servertag [tag|enable|disable]","Changes your system's tag in the current server");
publicstaticCommandSystemAvatar=newCommand("system icon","system icon [url|@mention]","Changes your system's icon");
publicstaticCommandSystemBannerImage=newCommand("system banner","system banner [url]","Set the system's banner image");
publicstaticCommandSystemDelete=newCommand("system delete","system delete","Deletes your system");
publicstaticCommandSystemTimezone=newCommand("system timezone","system timezone [timezone]","Changes your system's time zone");
publicstaticCommandSystemProxy=newCommand("system proxy","system proxy [server id] [on|off]","Enables or disables message proxying in a specific server");
publicstaticCommandSystemList=newCommand("system list","system [system] list [full]","Lists a system's members");
publicstaticCommandSystemFind=newCommand("system find","system [system] find [full] <search term>","Searches a system's members given a search term");
publicstaticCommandSystemFronter=newCommand("system fronter","system [system] fronter","Shows a system's fronter(s)");
publicstaticCommandSystemFrontHistory=newCommand("system fronthistory","system [system] fronthistory","Shows a system's front history");
publicstaticCommandSystemFrontPercent=newCommand("system frontpercent","system [system] frontpercent [timespan]","Shows a system's front breakdown");
publicstaticCommandSystemPing=newCommand("system ping","system ping <enable|disable>","Changes your system's ping preferences");
publicstaticCommandSystemPrivacy=newCommand("system privacy","system privacy <description|members|fronter|fronthistory|all> <public|private>","Changes your system's privacy settings");
publicstaticCommandAutoproxySet=newCommand("autoproxy","autoproxy [off|front|latch|member]","Sets your system's autoproxy mode for the current server");
publicstaticCommandAutoproxyTimeout=newCommand("autoproxy","autoproxy timeout [<duration>|off|reset]","Sets the latch timeout duration for your system");
publicstaticCommandAutoproxyAccount=newCommand("autoproxy","autoproxy account [on|off]","Toggles autoproxy globally for the current account");
publicstaticCommandMemberInfo=newCommand("member","member <member>","Looks up information about a member");
publicstaticCommandMemberNew=newCommand("member new","member new <name>","Creates a new member");
publicstaticCommandMemberRename=newCommand("member rename","member <member> rename <new name>","Renames a member");
publicstaticCommandMemberDesc=newCommand("member description","member <member> description [description]","Changes a member's description");
publicstaticCommandMemberPronouns=newCommand("member pronouns","member <member> pronouns [pronouns]","Changes a member's pronouns");
publicstaticCommandMemberColor=newCommand("member color","member <member> color [color]","Changes a member's color");
publicstaticCommandMemberBirthday=newCommand("member birthday","member <member> birthday [birthday]","Changes a member's birthday");
publicstaticCommandMemberProxy=newCommand("member proxy","member <member> proxy [add|remove] [example proxy]","Changes, adds, or removes a member's proxy tags");
publicstaticCommandMemberDelete=newCommand("member delete","member <member> delete","Deletes a member");
publicstaticCommandMemberBannerImage=newCommand("member banner","member <member> banner [url]","Set the member's banner image");
publicstaticCommandMemberAvatar=newCommand("member avatar","member <member> avatar [url|@mention]","Changes a member's avatar");
publicstaticCommandMemberGroups=newCommand("member group","member <member> group","Shows the groups a member is in");
publicstaticCommandMemberGroupAdd=newCommand("member group","member <member> group add <group> [group 2] [group 3...]","Adds a member to one or more groups");
publicstaticCommandMemberGroupRemove=newCommand("member group","member <member> group remove <group> [group 2] [group 3...]","Removes a member from one or more groups");
publicstaticCommandMemberServerAvatar=newCommand("member serveravatar","member <member> serveravatar [url|@mention]","Changes a member's avatar in the current server");
publicstaticCommandMemberDisplayName=newCommand("member displayname","member <member> displayname [display name]","Changes a member's display name");
publicstaticCommandMemberServerName=newCommand("member servername","member <member> servername [server name]","Changes a member's display name in the current server");
publicstaticCommandMemberAutoproxy=newCommand("member autoproxy","member <member> autoproxy [on|off]","Sets whether a member will be autoproxied when autoproxy is set to latch or front mode.");
publicstaticCommandMemberKeepProxy=newCommand("member keepproxy","member <member> keepproxy [on|off]","Sets whether to include a member's proxy tags when proxying");
publicstaticCommandMemberRandom=newCommand("random","random","Shows the info card of a randomly selected member in your system.");
publicstaticCommandMemberPrivacy=newCommand("member privacy","member <member> privacy <name|description|birthday|pronouns|metadata|visibility|all> <public|private>","Changes a members's privacy settings");
publicstaticCommandGroupInfo=newCommand("group","group <name>","Looks up information about a group");
publicstaticCommandGroupNew=newCommand("group new","group new <name>","Creates a new group");
publicstaticCommandGroupList=newCommand("group list","group list","Lists all groups in this system");
publicstaticCommandGroupMemberList=newCommand("group members","group <group> list","Lists all members in a group");
publicstaticCommandGroupRename=newCommand("group rename","group <group> rename <new name>","Renames a group");
publicstaticCommandGroupDisplayName=newCommand("group displayname","group <group> displayname [display name]","Changes a group's display name");
publicstaticCommandGroupDesc=newCommand("group description","group <group> description [description]","Changes a group's description");
publicstaticCommandGroupColor=newCommand("group color","group <group> color [color]","Changes a group's color");
publicstaticCommandGroupAdd=newCommand("group add","group <group> add <member> [member 2] [member 3...]","Adds one or more members to a group");
publicstaticCommandGroupRemove=newCommand("group remove","group <group> remove <member> [member 2] [member 3...]","Removes one or more members from a group");
publicstaticCommandGroupPrivacy=newCommand("group privacy","group <group> privacy <description|icon|visibility|all> <public|private>","Changes a group's privacy settings");
publicstaticCommandGroupBannerImage=newCommand("group banner","group <group> banner [url]","Set the group's banner image");
publicstaticCommandGroupIcon=newCommand("group icon","group <group> icon [url|@mention]","Changes a group's icon");
publicstaticCommandGroupDelete=newCommand("group delete","group <group> delete","Deletes a group");
publicstaticCommandGroupFrontPercent=newCommand("group frontpercent","group <group> frontpercent [timespan]","Shows a group's front breakdown.");
publicstaticCommandGroupMemberRandom=newCommand("group random","group <group> random","Shows the info card of a randomly selected member in a group.");
publicstaticCommandGroupRandom=newCommand("random","random group","Shows the info card of a randomly selected group in your system.");
publicstaticCommandSwitch=newCommand("switch","switch <member> [member 2] [member 3...]","Registers a switch");
publicstaticCommandSwitchOut=newCommand("switch out","switch out","Registers a switch with no members");
publicstaticCommandSwitchMove=newCommand("switch move","switch move <date/time>","Moves the latest switch in time");
publicstaticCommandSwitchEdit=newCommand("switch edit","switch edit <member> [member 2] [member 3...]","Edits the members in the latest switch");
publicstaticCommandSwitchEditOut=newCommand("switch edit out","switch edit out","Turns the latest switch into a switch-out");
publicstaticCommandSwitchDelete=newCommand("switch delete","switch delete","Deletes the latest switch");
publicstaticCommandSwitchDeleteAll=newCommand("switch delete","switch delete all","Deletes all logged switches");
publicstaticCommandLink=newCommand("link","link <account>","Links your system to another account");
publicstaticCommandUnlink=newCommand("unlink","unlink [account]","Unlinks your system from an account");
publicstaticCommandTokenGet=newCommand("token","token","Gets your system's API token");
publicstaticCommandTokenRefresh=newCommand("token refresh","token refresh","Resets your system's API token");
publicstaticCommandImport=newCommand("import","import [fileurl]","Imports system information from a data file");
publicstaticCommandExport=newCommand("export","export","Exports system information to a data file");
publicstaticCommandHelp=newCommand("help","help","Shows help information about PluralKit");
publicstaticCommandExplain=newCommand("explain","explain","Explains the basics of systems and proxying");
publicstaticCommandMessage=newCommand("message","message <id|link> [delete|author]","Looks up a proxied message");
publicstaticCommandMessageEdit=newCommand("edit","edit [link] <text>","Edit a previously proxied message");
publicstaticCommandProxyCheck=newCommand("debug proxy","debug proxy [link|reply]","Checks why your message has not been proxied");
publicstaticCommandLogChannel=newCommand("log channel","log channel <channel>","Designates a channel to post proxied messages to");
publicstaticCommandLogChannelClear=newCommand("log channel","log channel -clear","Clears the currently set log channel");
publicstaticCommandLogEnable=newCommand("log enable","log enable all|<channel> [channel 2] [channel 3...]","Enables message logging in certain channels");
publicstaticCommandLogDisable=newCommand("log disable","log disable all|<channel> [channel 2] [channel 3...]","Disables message logging in certain channels");
publicstaticCommandLogClean=newCommand("logclean","logclean [on|off]","Toggles whether to clean up other bots' log channels");
publicstaticCommandBlacklistShow=newCommand("blacklist show","blacklist show","Displays the current proxy blacklist");
publicstaticCommandBlacklistAdd=newCommand("blacklist add","blacklist add all|<channel> [channel 2] [channel 3...]","Adds certain channels to the proxy blacklist");
publicstaticCommandBlacklistRemove=newCommand("blacklist remove","blacklist remove all|<channel> [channel 2] [channel 3...]","Removes certain channels from the proxy blacklist");
publicstaticCommandInvite=newCommand("invite","invite","Gets a link to invite PluralKit to other servers");
publicstaticCommandPermCheck=newCommand("permcheck","permcheck <guild>","Checks whether a server's permission setup is correct");
$"{Emojis.Error} Unknown command `pk;{ctx.FullCommand().Truncate(100)}`. Perhaps you meant to use one of the following commands?\n{commandListStr}\n\nFor a full list of possible commands, see <https://pluralkit.me/commands>.");
$"{Emojis.Error} You need to pass a command. Perhaps you meant to use one of the following commands?\n{commandListStr}\n\nFor a full list of possible commands, see <https://pluralkit.me/commands>.");
awaitctx.Reply($"Here is a list of commands related to {subject}: \n{str}\nFor a full list of possible commands, see <https://pluralkit.me/commands>.");