/[sudobot]/trunk/src/utils/Help.ts
ViewVC logotype

Diff of /trunk/src/utils/Help.ts

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/commands/help.js revision 11 by rakin, Mon Jul 29 17:28:13 2024 UTC trunk/src/utils/Help.ts revision 295 by rakin, Mon Jul 29 17:29:24 2024 UTC
# Line 1  Line 1 
1  const { MessageActionRow, MessageButton } = require("discord.js");  import { CommandHelpData } from "../types/CommandHelpData";
 const MessageEmbed = require("../src/MessageEmbed");  
 const { escapeRegex } = require("../src/util");  
2    
3  module.exports = {  export default <CommandHelpData[]> [
4      version: "1.0.0-beta",      {
5      commands: [          name: 'about',
6          {          shortBrief: "Show information about the bot.",
7              name: 'addsnippet',          description: null,
8              shortBrief: "Adds a snippet.",          structure: "",
9              description: null,          example: "`%%about`",
10              structure: "<Name> <Content>",          notes: null,
11              example: "`%%addsnippet roles There are 2 roles`\n`%%addsnippet roles There are 2 roles\nAdmin - Administrator\nMod - Moderator`",          slashCommand: true,
12              notes: null          legacyCommand: true
13          },      },
14          {      {
15              name: 'announce',          name: 'addqueue',
16              shortBrief: "Announce something in the given channel.",          shortBrief: "Add a queue job.",
17              description: "Announce something in the given channel. The channel should be set in the configuration.",          description: 'Adds a queued command to the bot\'s memory and after the given amount of time it gets executed.',
18              structure: "<Content>",          structure: "<time> <command>",
19              example: "`%%announce Hello there!\nWe've just finished our job!\n@everyone`",          example: "`%%addqueue 15m echo Hello world`\n`%%addqueue 12h kick 875275828247255`",
20              notes: null          notes: null,
21          },          slashCommand: false,
22          {          legacyCommand: true
23              name: 'ban',      },
24              shortBrief: "Ban someone in this server.",      {
25              description: null,          name: 'addsnippet',
26              structure: "<UserID|Mention> [Reason]",          shortBrief: "Adds a snippet.",
27              example: "`%%ban 385753607325075320`\n`%%ban @Someone You are spamming a lot`",          description: null,
28              notes: null          structure: "<Name> <Content>",
29          },          example: "`%%addsnippet roles There are 2 roles`\n`%%addsnippet roles There are 2 roles\nAdmin - Administrator\nMod - Moderator`",
30          {          notes: null,
31              name: 'bean',          slashCommand: true,
32              shortBrief: "Bean someone in this server.",          legacyCommand: true
33              description: "Bean someone. It doesn't do anything except pretending.",      },
34              structure: "<UserID|Mention> [Reason]",      {
35              example: "`%%bean 385753607325075320`\n`%%bean @Someone You are spamming a lot`",          name: 'afk',
36              notes: null          shortBrief: "Keeps track of your mentions and tells other users that you're AFK.",
37          },          description: null,
38          {          structure: "[Reason]",
39              name: 'cat',          example: "`%%afk`\n`%%afk Having dinner`",
40              shortBrief: "Get a random kitty picture.",          notes: null,
41              description: "Fetches a random cat picture from `thecatapi.com` API.",          slashCommand: true,
42              structure: "",          legacyCommand: true
43              example: "`%%cat`",      },
44              notes: null      {
45          },          name: 'announce',
46          {          shortBrief: "Announce something in the given channel.",
47              name: 'delsnippet',          description: "Announce something in the given channel. The channel should be set in the configuration.",
48              shortBrief: "Deletes a snippet.",          structure: "<Content>",
49              description: null,          example: "`%%announce Hello there!\nWe've just finished our job!\n@everyone`",
50              structure: "<Name>",          notes: null,
51              example: "`%%delsnippet roles`",          slashCommand: true,
52              notes: null          legacyCommand: true
53          },      },
54          {      {
55              name: 'dog',          name: 'antijoin',
56              shortBrief: "Get a random doggy picture.",          shortBrief: "Enable the AntiJoin shield.",
57              description: "Fetches a random cat picture from `thedogapi.com` API.",          description: "Enables the AntiJoin shield.\nWhile AntiJoin is active, users will not be able to join the server (they will be kicked). This is useful when handling a raid.",
58              structure: "",          structure: "",
59              example: "`%%dog`",          example: "`%%antijoin",
60              notes: null          notes: null,
61          },          slashCommand: true,
62          {          legacyCommand: true
63              name: 'echo',      },
64              shortBrief: "Echo (re-send) a message.",      {
65              description: "Re-send a message from the bot.",          name: 'appeal',
66              structure: "<content> [channelMention]",          shortBrief: "Send a message to staff members about a punishment appeal.",
67              example: "`%%echo Something\nVery Cool`\n`%%echo Something\nVery Cool #general`",          description: null,
68              notes: null          structure: "",
69          },          example: "`%%appeal`",
70          {          notes: null,
71              name: 'general-role',          slashCommand: true,
72              shortBrief: "Set the general role.",          legacyCommand: false
73              description: null,      },
74              structure: "<RoleID|RoleMention>",      {
75              example: "`%%general-role 937923625698638`\n`%%general-role @General`",          name: 'avatar',
76              notes: null          shortBrief: "Show someone's avatar.",
77          },          description: null,
78          {          structure: "[UserID|UserTag|Mention=CURRENT_USER]",
79              name: 'help',          example: "`%%avatar 385753607325075320`\n`%%avatar`",
80              shortBrief: "Show this help and exit.",          notes: null,
81              description: null,          slashCommand: true,
82              structure: "[command]",          legacyCommand: true
83              example: "`%%help`\n`%%help mute`",      },
84              notes: null      {
85          },          name: 'ban',
86          {          shortBrief: "Ban someone in this server.",
87              name: 'httpcat',          description: "Ban a user in this server.",
88              shortBrief: "Get some funny cat memes related to HTTP.",          structure: "<UserID|UserTag|Mention> [-d=DAYS] [Reason]",
89              description: "Get some funny cat memes related to HTTP status codes, using http.cat API.",          example: "`%%ban 385753607325075320`\n`%%ban @Someone You are spamming a lot`\n`%%ban @Someone -d 5`\n`%%ban 385753607325075320 -d 5 You are spamming a lot`",
90              structure: "<status>",          notes: null,
91              example: "`%%httpcat 403`",          options: {
92              notes: null              "-d": "The number of days old messages to delete. It must be in range 0-7. An argument is required.",
         },  
         {  
             name: 'httpdog',  
             shortBrief: "Get some funny dog memes related to HTTP.",  
             description: "Get some funny dog memes related to HTTP status codes, using http.dog API.",  
             structure: "<status>",  
             example: "`%%httpdog 403`",  
             notes: null  
         },  
         {  
             name: 'kick',  
             shortBrief: "Kick someone from this server.",  
             description: null,  
             structure: "<UserID|Mention> [Reason]",  
             example: "`%%kick 385753607325075320`\n`%%kick @Someone You are spamming a lot`",  
             notes: null  
         },  
         {  
             name: 'lock',  
             shortBrief: "Lock a specific channel.",  
             description: "Makes the given channel read-only for the general members. If no channel is present, the current channel will be locked.",  
             structure: "[ChannelID|ChannelMention] [...options]",  
             example: "`%%lock 385753607325075320`\n`%%lock #general`\n`%%lock`",  
             notes: null,  
             options: {  
                 "--no-send": "Do not send a confirmation message to the locked channel",  
                 "--everyone": "Lock the channels for @everyone rather than the general role",  
             }  
         },  
         {  
             name: 'lockall',  
             shortBrief: "Lock all the channels given in the configuration.",  
             description: "Makes the given channels read-only for the general members.",  
             structure: "[...options]",  
             example: "`%%lockall --no-send\n`%%lockall`\n`%%lockall --everyone`",  
             notes: null,  
             options: {  
                 "--no-send": "Do not send a confirmation message to the locked channel",  
                 "--everyone": "Lock the channels for @everyone rather than the general role",  
             }  
         },  
         {  
             name: 'mod-role',  
             shortBrief: "Set the moderator role.",  
             description: null,  
             structure: "<RoleID|RoleMention>",  
             example: "`%%mod-role 937923625698638`\n`%%mod-role @Moderator`",  
             notes: null  
         },  
         {  
             name: 'mute',  
             shortBrief: "Mute someone in this server.",  
             description: null,  
             structure: "<UserID|Mention> [-t=DURATION] [Reason]",  
             example: "`%%mute 385753607325075320`\n`%%mute @Someone You are spamming a lot`\n`%%mute @Someone -t 10m You are spamming a lot`",  
             options: {  
                 "-t": "Set the mute duration"  
             },  
             notes: null  
         },  
         {  
             name: 'muted-role',  
             shortBrief: "Set the muted role.",  
             description: null,  
             structure: "<RoleID|RoleMention>",  
             example: "`%%muted-role 937923625698638`\n`%%muted-role @Muted`",  
             notes: null  
         },  
         {  
             name: 'mvsnippet',  
             shortBrief: "Rename a snippet.",  
             description: null,  
             structure: "<oldName> <newName>",  
             example: "`%%mvsnippet abc bca`",  
             notes: null  
         },  
         {  
             name: 'note',  
             shortBrief: "Take a note about an user.",  
             description: null,  
             structure: "<UserID|UserMention> <note>",  
             example: "`%%note @Someone Simple note.`",  
             notes: null  
         },  
         {  
             name: 'note',  
             shortBrief: "Take a note about an user.",  
             description: null,  
             structure: "<UserID|UserMention> <note>",  
             example: "`%%note @Someone Simple note.`",  
             notes: null  
         },  
         {  
             name: 'notedel',  
             shortBrief: "Delete a note.",  
             description: null,  
             structure: "<NoteID>",  
             example: "`%%notedel 922`",  
             notes: null  
         },  
         {  
             name: 'noteget',  
             shortBrief: "Get a note.",  
             description: null,  
             structure: "<NoteID>",  
             example: "`%%noteget 922`",  
             notes: null  
         },  
         {  
             name: 'notes',  
             shortBrief: "Get all notes for a specific user.",  
             description: null,  
             structure: "<UserID|UserMention>",  
             example: "`%%notes @Someone`",  
             notes: null  
         },  
         {  
             name: 'pixabay',  
             shortBrief: "Fetch images from Pixabay.",  
             description: "Search & fetch images from Pixabay API.\n\nAvailable Subcommands:\n\tphoto - Fetch photos only.\n\tvector - Fetch vectors only.\n\tillustration - Fetch illustrations only\n\timage - Fetch any image.",  
             structure: "<subcommand> [query]",  
             example: "`%%pixabay image`\n`%%pixabay photo birds`",  
             notes: null  
         },  
         {  
             name: 'prefix',  
             shortBrief: "Change the bot prefix.",  
             description: null,  
             structure: "<NewPrefix>",  
             example: "`%%prefix -`",  
             notes: null  
         },  
         {  
             name: 'setconfig',  
             shortBrief: "Change the bot configuration keys.",  
             description: null,  
             structure: "<key> <value>",  
             example: "`%%setconfig debug true`",  
             notes: null  
         },  
         {  
             name: 'spamfilter',  
             shortBrief: "Change the spam filter configuration keys.",  
             description: null,  
             structure: "<key> <value>",  
             example: "`%%spamfilter include #general`",  
             notes: null  
         },  
         {  
             name: 'unban',  
             shortBrief: "Unban a user from this server.",  
             description: null,  
             structure: "<UserID>",  
             example: "`%%unban 2946255269594753792`",  
             notes: null  
         },  
         {  
             name: 'unlock',  
             shortBrief: "Unock a specific channel.",  
             description: "Makes the given channel writable for the general members. If no channel is present, the current channel is unlocked.",  
             structure: "[ChannelID|ChannelMention] [...options]",  
             example: "`%%unlock 385753607325075320`\n`%%unlock #general`\n`%%unlock`",  
             notes: null,  
             options: {  
                 "--no-send": "Do not send a confirmation message to the locked channel",  
                 "--everyone": "Unock the channels for @everyone rather than the general role",  
             }  
         },  
         {  
             name: 'unlockall',  
             shortBrief: "Unlock all the channels given in the configuration.",  
             description: "Makes the given channels writable for the general members.",  
             structure: "[...options]",  
             example: "`%%unlockall --no-send\n`%%unlockall`\n`%%unlockall --everyone`",  
             notes: null,  
             options: {  
                 "--no-send": "Do not send a confirmation message to the locked channel",  
                 "--everyone": "Lock the channels for @everyone rather than the general role",  
             }  
         },  
         {  
             name: 'unmute',  
             shortBrief: "Unute someone in this server.",  
             description: null,  
             structure: "<UserID|Mention>",  
             example: "`%%unmute 385753607325075320`\n`%%unmute @Someone You are spamming a lot`",  
             notes: null  
         },  
         {  
             name: 'warn',  
             shortBrief: "Warn someone in this server.",  
             description: null,  
             structure: "<UserID|Mention> [Reason]",  
             example: "`%%warn 385753607325075320`\n`%%warn @Someone You are spamming a lot`",  
             notes: null  
         },  
         {  
             name: 'warndel',  
             shortBrief: "Delete a warning.",  
             description: null,  
             structure: "<ID>",  
             example: "`%%warndel 39`",  
             notes: null  
93          },          },
94          {          slashCommand: true,
95              name: 'warning',          legacyCommand: true
96              shortBrief: "Show a warning.",      },
97              description: null,      {
98              structure: "<ID>",          name: 'ballot',
99              example: "`%%warning 39`",          shortBrief: "Create/view a ballot (poll) message.",
100              notes: null          description: null,
101            subcommands: {
102                "create": "Create a ballot message. Argument 1 should be the ballot message content.",
103                "view": "View a ballot message stats. Argument 1 should be the ballot ID."
104            },
105            structure: "<subcommand> <subcommand-arguments>",
106            example: "`%%ballot create What do you think guys?`\n`%%ballot view 15`",
107            notes: null,
108            slashCommand: true,
109            legacyCommand: true
110        },
111        {
112            name: 'cat',
113            shortBrief: "Get a random kitty picture.",
114            description: "Fetches a random cat picture from `thecatapi.com` API.",
115            structure: "",
116            example: "`%%cat`",
117            notes: null,
118            slashCommand: true,
119            legacyCommand: true
120        },
121        {
122            name: 'clear',
123            shortBrief: "Clear all messages from a user.",
124            description: "Clear all messages from a user, in the current channel. This might take a while.",
125            structure: "<UserID|UserTag|UserMention>",
126            example: "`%%clear 83474924191884727`\n`%%clear @Someone`",
127            notes: null,
128            slashCommand: true,
129            legacyCommand: true
130        },
131        {
132            name: 'config',
133            shortBrief: "View or change the config options.",
134            description: "Configure the bot settings. This command is for advanced users.\nIf the user only gives one argument (setting key), then the value of the setting key will be shown. Otherwise the setting key will be modified with the given parameters.",
135            structure: "<key> [value]",
136            example: "`%%config spam_filter.enabled false`\n`%%config prefix -`",
137            notes: null,
138            slashCommand: true,
139            legacyCommand: true
140        },
141        {
142            name: 'delqueue',
143            shortBrief: "Delete a queue job.",
144            description: "Delete a queued command by its ID.",
145            structure: "<QueueID>",
146            example: "`%%delqueue 80`",
147            notes: null,
148            slashCommand: false,
149            legacyCommand: true
150        },
151        {
152            name: 'delsnippet',
153            shortBrief: "Deletes a snippet.",
154            description: null,
155            structure: "<Name>",
156            example: "`%%delsnippet roles`",
157            notes: null,
158            slashCommand: true,
159            legacyCommand: true
160        },
161        {
162            name: 'dog',
163            shortBrief: "Get a random doggy picture.",
164            description: "Fetches a random cat picture from `thedogapi.com` API.",
165            structure: "",
166            example: "`%%dog`",
167            notes: null,
168            slashCommand: true,
169            legacyCommand: true
170        },
171        {
172            name: 'echo',
173            shortBrief: "Echo (re-send) a message.",
174            description: "Re-send a message from the bot.",
175            structure: "<content> [channelMention]",
176            example: "`%%echo Something\nVery Cool`\n`%%echo Something\nVery Cool #general`",
177            notes: null,
178            slashCommand: true,
179            legacyCommand: true
180        },
181        {
182            name: 'embed',
183            shortBrief: "Build, send and make schemas of embeds!",
184            description: "Build, send and make schemas of embeds. Schemas are special kind of text which can be used in various commands to represent an embed.\n\n**Subcommands**:\n\n`send` - Build and send an embed from the given input.\n`schema` - Builds an embed and returns back the JSON schema of the embed so that you can use it in other places!\n`build` - Builds an embed from a JSON schema.",
185            structure: "<subcommand> <...args>",
186            example: "`/embed send title:Hello world description:This is an embed, awesome!`\n`/embed schema title:Hello world description:This is an embed, awesome!`\n`/embed build json_schema:embed:{\"title\": \"Hello world\", \"description\": \"This is an embed, awesome!\", \"fields\": []}`",
187            notes: null,
188            slashCommand: true,
189            legacyCommand: false
190        },
191        {
192            name: 'emoji',
193            shortBrief: "Get info about an emoji. Must be guild (server) specific emoji.",
194            description: null,
195            structure: "<GuildEmoji|GuildEmojiName>",
196            example: "`%%emoji check`\n`%%emoji error`",
197            notes: null,
198            slashCommand: false,
199            legacyCommand: true
200        },
201        {
202            name: 'eval',
203            shortBrief: "Execute raw Javascript code.\n*This command is owner-only*.",
204            description: null,
205            structure: "<code>",
206            example: "`%%eval console.log(\"Hello world!\")`",
207            notes: null,
208            slashCommand: true,
209            legacyCommand: true
210        },
211        {
212            name: 'expire',
213            shortBrief: "Echo (re-send) a message and delete it after the given time.",
214            description: "Re-send a message from the bot and delete it automatically after the given time interval.",
215            structure: "<timeInterval> <content> [channelMention]",
216            example: "`%%echo 25m Something\nVery Cool`\n`%%echo 1h Something\nVery Cool #general`",
217            notes: null,
218            slashCommand: true,
219            legacyCommand: true
220        },
221        {
222            name: 'expiresc',
223            shortBrief: "Schedule a message and delete it after the given time.",
224            description: "Schedule a message from the bot and delete it automatically after the given time interval.",
225            structure: "<scheduleTimeInterval> <expireTimeInterval> <content> [channelMention]",
226            example: "`%%echo 25m 5h Something\nVery Cool`\n`%%echo 1h 7d Something\nVery Cool #general`",
227            notes: null,
228            slashCommand: true,
229            legacyCommand: true
230        },
231        {
232            name: 'guildlookup',
233            shortBrief: "Lookup any Public Discord server/guild!",
234            description: "Lookup any Public Discord server/guild!\nThis command is a subcommand of the `/lookup` slash command.",
235            structure: "<UserID|Mention>",
236            example: "`%%guildlookup 385753607325075320`\n`",
237            notes: null,
238            slashCommand: true,
239            legacyCommand: true
240        },
241        {
242            name: 'hash',
243            shortBrief: "Generate a hash of the given text input.",
244            description: null,
245            structure: "<algorithm> <input>",
246            example: "`%%hash sha1 abc`",
247            notes: null,
248            slashCommand: true,
249            legacyCommand: true
250        },
251        {
252            name: 'help',
253            shortBrief: "Show this help and exit.",
254            description: null,
255            structure: "[command]",
256            example: "`%%help`\n`%%help mute`",
257            notes: null,
258            slashCommand: true,
259            legacyCommand: true
260        },
261        {
262            name: 'history',
263            shortBrief: "Show moderation history for a user.",
264            description: null,
265            structure: "<UserMention|UserID>",
266            example: "`%%history 27372628277272625`\n`%%history @Someone`",
267            notes: null,
268            slashCommand: true,
269            legacyCommand: true
270        },
271        {
272            name: 'httpcat',
273            shortBrief: "Get some funny cat memes related to HTTP.",
274            description: "Get some funny cat memes related to HTTP status codes, using http.cat API.",
275            structure: "<status>",
276            example: "`%%httpcat 403`",
277            notes: null,
278            slashCommand: true,
279            legacyCommand: true
280        },
281        {
282            name: 'httpdog',
283            shortBrief: "Get some funny dog memes related to HTTP.",
284            description: "Get some funny dog memes related to HTTP status codes, using http.dog API.",
285            structure: "<status>",
286            example: "`%%httpdog 403`",
287            notes: null,
288            slashCommand: true,
289            legacyCommand: true
290        },
291        {
292            name: 'joke',
293            shortBrief: "Fetch a random joke from The Joke API.",
294            description: null,
295            structure: "",
296            example: "`%%joke`",
297            notes: null,
298            slashCommand: true,
299            legacyCommand: true
300        },
301        {
302            name: 'kick',
303            shortBrief: "Kick someone from this server.",
304            description: null,
305            structure: "<UserID|UserTag|Mention> [Reason]",
306            example: "`%%kick 385753607325075320`\n`%%kick @Someone You are spamming a lot`",
307            notes: null,
308            slashCommand: true,
309            legacyCommand: true
310        },
311        {
312            name: 'lock',
313            shortBrief: "Lock a specific channel.",
314            description: "Makes the given channel read-only for the general members. If no channel is present, the current channel will be locked.",
315            structure: "[ChannelID|ChannelMention]",
316            example: "`%%lock 385753607325075320`\n`%%lock #general`\n`%%lock`",
317            notes: null,
318            slashCommand: true,
319            legacyCommand: true
320        },
321        {
322            name: 'lockall',
323            shortBrief: "Lock all given channels, in-bulk.",
324            description: "Makes the given channels read-only for the general members.",
325            structure: "<...ChannelMention|ChannelIDs> [--raid]",
326            example: "`%%lockall 2572562578247841786\n`%%lockall 2572562578247841786 2572562578247841782 2572562578247841783`\n`%%lockall 2572562578247841786 2572562578247841785`",
327            notes: null,
328            options: {
329                "--raid": "Lock all raid protected channels",
330          },          },
331          {          slashCommand: true,
332              name: 'warnings',          legacyCommand: true
333              shortBrief: "Show all warnings.",      },
334              description: "Show all warnings in this server. Passing an user will only show their warnings.",      {
335              structure: "[UserId|Mention]",          name: 'lookup',
336              example: "`%%warnings`\n`%%warnings 948489127957979253978538`",          shortBrief: "Lookup something.",
337              notes: null          description: null,
338            structure: "[ChannelID|ChannelMention]",
339            subcommands: {
340                "user": "Lookup a user around Discord",
341                "guild": "Lookup a Public Discord Server"
342            },
343            example: "`/lookup user user:384624924565405777`",
344            notes: null,
345            slashCommand: true,
346            legacyCommand: false
347        },
348        {
349            name: 'massban',
350            shortBrief: 'Mass ban (multiple) users',
351            description: null,
352            structure: '<...UserIDs|UserMentions> [Reason]',
353            example: '`%%massban 8247282727258725258 @someone Mass Banning`',
354            notes: null,
355            slashCommand: true,
356            legacyCommand: true
357        },
358        {
359            name: 'mute',
360            shortBrief: "Mute someone in this server.",
361            description: null,
362            structure: "<UserID|UserTag|Mention> [-t=DURATION] [Reason]",
363            example: "`%%mute 385753607325075320`\n`%%mute @Someone You are spamming a lot`\n`%%mute @Someone -t 10m You are spamming a lot`",
364            options: {
365                "-t": "Set the mute duration"
366            },
367            notes: null,
368            slashCommand: true,
369            legacyCommand: true
370        },
371        {
372            name: 'mvsnippet',
373            shortBrief: "Rename a snippet.",
374            description: null,
375            structure: "<oldName> <newName>",
376            example: "`%%mvsnippet abc bca`",
377            notes: null,
378            slashCommand: true,
379            legacyCommand: true
380        },
381        {
382            name: 'note',
383            shortBrief: "Take a note about an user.",
384            description: null,
385            structure: "<UserID|UserTag|UserMention> <note>",
386            example: "`%%note @Someone Simple note.`",
387            notes: null,
388            slashCommand: true,
389            legacyCommand: true
390        },
391        {
392            name: 'notedel',
393            shortBrief: "Delete a note.",
394            description: null,
395            structure: "<NoteID>",
396            example: "`%%notedel 922`",
397            notes: null,
398            slashCommand: true,
399            legacyCommand: true
400        },
401        {
402            name: 'noteget',
403            shortBrief: "Get a note.",
404            description: null,
405            structure: "<NoteID>",
406            example: "`%%noteget 922`",
407            notes: null,
408            slashCommand: true,
409            legacyCommand: true
410        },
411        {
412            name: 'notes',
413            shortBrief: "Get all notes for a specific user.",
414            description: null,
415            structure: "<UserID|UserTag|UserMention>",
416            example: "`%%notes @Someone`",
417            notes: null,
418            slashCommand: true,
419            legacyCommand: true
420        },
421        {
422            name: 'pixabay',
423            shortBrief: "Fetch images from Pixabay.",
424            description: "Search & fetch images from Pixabay API.\n\nAvailable Subcommands:\n\tphoto - Fetch photos only.\n\tvector - Fetch vectors only.\n\tillustration - Fetch illustrations only\n\timage - Fetch any image.",
425            structure: "<subcommand> [query]",
426            example: "`%%pixabay image`\n`%%pixabay photo birds`",
427            notes: null,
428            slashCommand: true,
429            legacyCommand: true
430        },
431        {
432            name: 'profile',
433            shortBrief: 'Show the server profile.',
434            description: null,
435            structure: '[UserID|UserTag|UserMention]',
436            example: '`%%profile`\n`%%profile @Someone`',
437            notes: null,
438            slashCommand: true,
439            legacyCommand: true
440        },
441        {
442            name: 'queues',
443            shortBrief: "Show a list of all queue jobs.",
444            description: null,
445            structure: "",
446            example: "`%%queues`",
447            notes: null,
448            slashCommand: true,
449            legacyCommand: true
450        },
451        {
452            name: 'rolelist',
453            shortBrief: 'List all roles in the server',
454            description: null,
455            structure: "[Page] [Role]",
456            example: "`%%rolelist`",
457            notes: null,
458            slashCommand: true,
459            legacyCommand: false
460        },
461        {
462            name: 'schedule',
463            shortBrief: "Echo (re-send) a message after the given time.",
464            description: "Re-send a message from the bot automatically after the given time interval.",
465            structure: "<timeInterval> <content> [channelMention]",
466            example: "`%%echo 25m Something\nVery Cool`\n`%%echo 1h Something\nVery Cool #general`",
467            notes: null,
468            slashCommand: true,
469            legacyCommand: true
470        },
471        {
472            name: 'send',
473            shortBrief: "Send a DM to a user.",
474            description: null,
475            structure: "<UserID|UserTag|Mention> <content>",
476            example: "`%%send 278358918549759428 Hello world`\n`%%send @Someone Hello world`",
477            notes: null,
478            slashCommand: true,
479            legacyCommand: true
480        },
481        {
482            name: 'setchperms',
483            shortBrief: "Set channel permissions in bulk.",
484            description: null,
485            structure: "<...ChannelIDs|ChannelMentions> <Role> <PermissionKey> <null|true|false>",
486            example: "`%%setchperms 827483719415287387 24872512882472142 #general @everyone SEND_MESSAGES false`",
487            notes: null,
488            slashCommand: true,
489            legacyCommand: true
490        },
491        {
492            name: 'shot',
493            shortBrief: "Give a shot to a user.",
494            description: "Give a shot to a user. This command actually doesn't do anything.",
495            structure: "<UserID|UserTag|Mention> [Reason]",
496            example: "`%%shot 385753607325075320`\n`%%shot @Someone You are spamming a lot`",
497            notes: null,
498            slashCommand: true,
499            legacyCommand: true
500        },
501        {
502            name: 'softban',
503            shortBrief: "Softban a user.",
504            description: "A softban means banning and unbanning a user immediately so that their messages gets deleted.",
505            structure: "<UserID|UserTag|UserMention> [-d=DAYS] [Reason]",
506            example: "`%%softban @Someone`\n`%%softban 44347362235774742 Hello world`",
507            notes: null,
508            slashCommand: true,
509            legacyCommand: true
510        },
511        {
512            name: 'stats',
513            shortBrief: "Show the server stats.",
514            description: null,
515            structure: "",
516            example: "`%%stats",
517            notes: null,
518            slashCommand: true,
519            legacyCommand: true
520        },
521        {
522            name: 'system',
523            shortBrief: "Show the system status.",
524            description: null,
525            structure: "",
526            example: "`%%system",
527            notes: null,
528            slashCommand: true,
529            legacyCommand: true
530        },
531        {
532            name: 'tempban',
533            shortBrief: "Temporarily ban a user.",
534            description: null,
535            structure: "<UserID|UserTag|UserMention> <Time> [-d=DAYS] [Reason]",
536            example: "`%%softban @Someone 20m`\n`%%softban 44347362235774742 50m Hello world`",
537            notes: null,
538            slashCommand: true,
539            legacyCommand: true
540        },
541        {
542            name: 'unban',
543            shortBrief: "Unban a user from this server.",
544            description: null,
545            structure: "<UserID>",
546            example: "`%%unban 2946255269594753792`",
547            notes: null,
548            slashCommand: true,
549            legacyCommand: true
550        },
551        {
552            name: 'unlock',
553            shortBrief: "Unlock a specific channel.",
554            description: "Makes the given channel writable for the general members. If no channel is present, the current channel is unlocked.",
555            structure: "[ChannelID|ChannelMention]",
556            example: "`%%unlock 385753607325075320`\n`%%unlock #general`\n`%%unlock`",
557            notes: null,
558            slashCommand: true,
559            legacyCommand: true
560        },
561        {
562            name: 'unlockall',
563            shortBrief: "Unlock all given channels, in bulk.",
564            description: "<...ChannelMention|ChannelIDs> [--raid]",
565            structure: "[...options]",
566            example: "`%%unlockall --raid\n`%%unlockall 348764381911364631 634894637314679163795`",
567            notes: null,
568            options: {
569                "--raid": "Unlock all Raid-protected channels"
570          },          },
571      ],          slashCommand: true,
572      async render() {          legacyCommand: true
         let string = '';  
   
         for (let cmd of this.commands) {  
             string += `\n\n**${cmd.name}**\n${cmd.shortBrief}`;  
         }  
   
         return string;  
573      },      },
574      async handle(msg, cm) {      {
575          if (typeof cm.args[0] === 'undefined') {          name: 'unmute',
576              // await msg.reply({          shortBrief: "Unmute someone in this server.",
577              //     embeds: [          description: null,
578              //         new MessageEmbed()          structure: "<UserID|UserTag|Mention>",
579              //         .setColor('#f14a60')          example: "`%%unmute 385753607325075320`\n`%%unmute @Someone You are spamming a lot`",
580              //         .setDescription(`This command requires at least one argument.`)          notes: null,
581              //     ]          slashCommand: true,
582              // });          legacyCommand: true
583        },
584              await msg.reply({      {
585                  embeds: [          name: 'userlookup',
586                      new MessageEmbed()          shortBrief: "Lookup any Discord user!",
587                      .setDescription("The command list. Run `" + app.config.get('prefix') + "help <commandName>` for more information about a specific command.\n" + await this.render())          description: "Lookup any Discord user! Doesn't matter if they are in the server or not.\nThis command is a subcommand of the `/lookup` slash command.",
588                      .setTitle('Help')          structure: "<UserID|Mention>",
589                  ],          example: "`%%userlookup 385753607325075320`\n`",
590              });          notes: null,
591            slashCommand: true,
592              return;          legacyCommand: true
593          }      },
594        {
595          const cmd = this.commands.find(c => c.name === cm.args[0]);          name: 'warn',
596            shortBrief: "Warn someone in this server.",
597          if (!cmd) {          description: null,
598              await msg.reply({          structure: "<UserID|UserTag|Mention> [Reason]",
599                  embeds: [          example: "`%%warn 385753607325075320`\n`%%warn @Someone You are spamming a lot`",
600                      new MessageEmbed()          notes: null,
601                      .setColor('#f14a60')          slashCommand: true,
602                      .setDescription(`Invalid command \`${cm.args[0]}\`.`)          legacyCommand: true
603                  ]      },
604              });      {
605            name: 'warning',
606              return;          shortBrief: "Operations with warnings.",
607          }          description: null,
608            structure: "<ID>",
609          let fields = [          example: "`%%warning list @Someone`\n`%%warning clear @Someone`\n`%%warning remove 24`\n`%%warning view 35`",
610              {          notes: null,
611                  name: "Usage",          slashCommand: true,
612                  value: `\`${app.config.get('prefix')}${cmd.name}\`` + (cmd.structure.trim() !== '' ? ` \`${cmd.structure}\`` : '')          legacyCommand: true,
613              },          subcommands: {
614              {              "list": "List all warnings for a user",
615                  name: 'Examples',              "clear": "Clear all warnings for a user",
616                  value: cmd.example.replace(/\%\%/g, app.config.get('prefix'))              "remove": "Remove a warning by ID",
617              }              "view": "View information about a warning by ID"
         ];  
   
         if (cmd.options !== undefined) {  
             let str = '';  
   
             for (let opt in cmd.options)  
                 str += `\`${opt}\` - ${cmd.options[opt]}\n`;  
   
             str = str.substring(0, str.length - 1);  
   
             fields.push({  
                 name: 'Options',  
                 value: str  
             });  
618          }          }
619        },
620          if (cmd.notes !== null) {      {
621              fields.push({          name: 'welcomer',
622                  name: "Notes",          shortBrief: "Configure the welcomer.",
623                  value: cmd.notes          description: "Change the settings of the welcomer.",
624              });          structure: "<option(s)> [...args]",
625            example: "`%%welcomer --enable`",
626            notes: null,
627            slashCommand: false,
628            legacyCommand: true,
629            options: {
630                "--enable": "Enables the welcomer",
631                "--disable": "Disables the welcomer",
632                "--toggle": "Toggles the welcomer",
633                "--msg, --message, --custom": "Set custom welcome message. The welcome message as an argument is required.",
634                "--rm-msg, --remove-message": "Remove the custom welcome message.",
635                "--rand, --randomize": "Toggle random welcome messages.",
636                "--preview": "Preview the welcome message embed.",
637          }          }
   
         await msg.reply({  
             embeds: [  
                 new MessageEmbed()  
                 .setTitle(`${app.config.get('prefix')}${cmd.name}`)  
                 .setDescription(cmd.description !== null ? cmd.description : cmd.shortBrief)  
                 .addFields(fields)  
             ]  
         });  
     }  
 };  
638        },
639    ]

Legend:
Removed from v.11  
changed lines
  Added in v.295

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26