Archived
Subcommands documentation
This commit is contained in:
1 parent
d096cab2b2
commit
71b0f2824d
47 files changed
+434
-391
No files matched your search
+15
-7
@@ -52,6 +52,7 @@
|
||||
<li><a href="#reading-input-value">Reading input value</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#subcommands">Subcommands</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#events">Events</a></li>
|
||||
@@ -97,24 +98,24 @@
|
||||
<li>Run <code>npm init -y</code> or <code>yarn init -y</code></li>
|
||||
<li>Add the CommandBot package</li>
|
||||
</ol>
|
||||
<pre><code class="language-javascript"><span class="hl-0">// npm</span><br/><span class="hl-1">npm</span><span class="hl-2"> </span><span class="hl-1">install</span><span class="hl-2"> </span><span class="hl-1">commandbot</span><span class="hl-2">@</span><span class="hl-1">latest</span><br/><br/><span class="hl-0">// yarn</span><br/><span class="hl-1">yarn</span><span class="hl-2"> </span><span class="hl-1">add</span><span class="hl-2"> </span><span class="hl-1">commandbot</span><span class="hl-2">@</span><span class="hl-1">latest</span>
|
||||
<pre><code class="language-typescript"><span class="hl-0">// npm</span><br/><span class="hl-1">npm</span><span class="hl-2"> </span><span class="hl-1">install</span><span class="hl-2"> </span><span class="hl-1">commandbot</span><span class="hl-2">@</span><span class="hl-1">latest</span><br/><br/><span class="hl-0">// yarn</span><br/><span class="hl-1">yarn</span><span class="hl-2"> </span><span class="hl-1">add</span><span class="hl-2"> </span><span class="hl-1">commandbot</span><span class="hl-2">@</span><span class="hl-1">latest</span>
|
||||
</code></pre>
|
||||
<ol start="4">
|
||||
<li>Create <em>index.js/index.ts</em> file (TypeScript is a recommended language)</li>
|
||||
<li>Import the CommandBot package</li>
|
||||
</ol>
|
||||
<pre><code class="language-javascript"><span class="hl-0">// CommonJS</span><br/><span class="hl-3">const</span><span class="hl-2"> { </span><span class="hl-4">Bot</span><span class="hl-2"> } = </span><span class="hl-5">require</span><span class="hl-2">(</span><span class="hl-6">"commandbot"</span><span class="hl-2">);</span><br/><br/><span class="hl-0">// ES Modules (to use ESM add "type": "module" to package.json file)</span><br/><span class="hl-7">import</span><span class="hl-2"> { </span><span class="hl-1">Bot</span><span class="hl-2"> } </span><span class="hl-7">from</span><span class="hl-2"> </span><span class="hl-6">"commandbot"</span><span class="hl-2">;</span>
|
||||
<pre><code class="language-typescript"><span class="hl-0">// CommonJS</span><br/><span class="hl-3">const</span><span class="hl-2"> { </span><span class="hl-4">Bot</span><span class="hl-2"> } = </span><span class="hl-5">require</span><span class="hl-2">(</span><span class="hl-6">"commandbot"</span><span class="hl-2">);</span><br/><br/><span class="hl-0">// ES Modules (to use ESM add "type": "module" to package.json file)</span><br/><span class="hl-7">import</span><span class="hl-2"> { </span><span class="hl-1">Bot</span><span class="hl-2"> } </span><span class="hl-7">from</span><span class="hl-2"> </span><span class="hl-6">"commandbot"</span><span class="hl-2">;</span>
|
||||
</code></pre>
|
||||
<ol start="6">
|
||||
<li>Initialize the bot instance (<a href="https://grz4na.github.io/CommandBot/interfaces/InitOptions.html">InitOptions</a>) (list of available intents <a href="https://discord.js.org/#/docs/main/stable/class/Intents?scrollTo=s-FLAGS">here</a>)</li>
|
||||
</ol>
|
||||
<pre><code class="language-javascript"><span class="hl-3">const</span><span class="hl-2"> </span><span class="hl-4">bot</span><span class="hl-2"> = </span><span class="hl-3">new</span><span class="hl-2"> </span><span class="hl-5">Bot</span><span class="hl-2">({</span><br/><span class="hl-2"> </span><span class="hl-1">name:</span><span class="hl-2"> </span><span class="hl-6">"YOUR_BOT_NAME"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">globalPrefix:</span><span class="hl-2"> </span><span class="hl-6">"!"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">argumentSeparator:</span><span class="hl-2"> </span><span class="hl-6">","</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">commandSeparator:</span><span class="hl-2"> </span><span class="hl-6">"/"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">clientOptions:</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-1">intents:</span><span class="hl-2"> [...</span><span class="hl-6">"DISCORD_API_INTENTS"</span><span class="hl-2">],</span><br/><span class="hl-2"> },</span><br/><span class="hl-2"> </span><span class="hl-1">token:</span><span class="hl-2"> </span><span class="hl-6">"DISCORD_BOT_TOKEN"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">applicationId:</span><span class="hl-2"> </span><span class="hl-6">"APPLICATION_ID"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">help:</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-1">enabled:</span><span class="hl-2"> </span><span class="hl-3">true</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">title:</span><span class="hl-2"> </span><span class="hl-6">"List of commands"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">usage:</span><span class="hl-2"> </span><span class="hl-6">"[command name]"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">description:</span><span class="hl-2"> </span><span class="hl-6">"Show all commands available to use in my fantastic Discord bot."</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">bottomText:</span><span class="hl-2"> </span><span class="hl-6">"Hello World"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">color:</span><span class="hl-2"> </span><span class="hl-6">"#0055ff"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">visible:</span><span class="hl-2"> </span><span class="hl-3">false</span><span class="hl-2">,</span><br/><span class="hl-2"> },</span><br/><span class="hl-2">});</span>
|
||||
<pre><code class="language-typescript"><span class="hl-3">const</span><span class="hl-2"> </span><span class="hl-4">bot</span><span class="hl-2"> = </span><span class="hl-3">new</span><span class="hl-2"> </span><span class="hl-5">Bot</span><span class="hl-2">({</span><br/><span class="hl-2"> </span><span class="hl-1">name:</span><span class="hl-2"> </span><span class="hl-6">"YOUR_BOT_NAME"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">globalPrefix:</span><span class="hl-2"> </span><span class="hl-6">"!"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">argumentSeparator:</span><span class="hl-2"> </span><span class="hl-6">","</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">commandSeparator:</span><span class="hl-2"> </span><span class="hl-6">"/"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">clientOptions:</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-1">intents:</span><span class="hl-2"> [...</span><span class="hl-6">"DISCORD_API_INTENTS"</span><span class="hl-2">],</span><br/><span class="hl-2"> },</span><br/><span class="hl-2"> </span><span class="hl-1">token:</span><span class="hl-2"> </span><span class="hl-6">"DISCORD_BOT_TOKEN"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">applicationId:</span><span class="hl-2"> </span><span class="hl-6">"APPLICATION_ID"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">help:</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-1">enabled:</span><span class="hl-2"> </span><span class="hl-3">true</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">title:</span><span class="hl-2"> </span><span class="hl-6">"List of commands"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">usage:</span><span class="hl-2"> </span><span class="hl-6">"[command name]"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">description:</span><span class="hl-2"> </span><span class="hl-6">"Show all commands available to use in my fantastic Discord bot."</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">bottomText:</span><span class="hl-2"> </span><span class="hl-6">"Hello World"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">color:</span><span class="hl-2"> </span><span class="hl-6">"#0055ff"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">visible:</span><span class="hl-2"> </span><span class="hl-3">false</span><span class="hl-2">,</span><br/><span class="hl-2"> },</span><br/><span class="hl-2">});</span>
|
||||
</code></pre>
|
||||
<ol start="7">
|
||||
<li>Create and add commands to the <em>Bot</em> instance (see <a href="#commands">Commands</a>)</li>
|
||||
<li>Start your bot</li>
|
||||
</ol>
|
||||
<pre><code class="language-javascript"><span class="hl-1">bot</span><span class="hl-2">.</span><span class="hl-5">start</span><span class="hl-2">(</span><br/><span class="hl-2"> </span><span class="hl-1">port</span><span class="hl-2">, </span><span class="hl-0">// If passed, the application will create a HTTP server [type: number (integer)]</span><br/><span class="hl-2"> </span><span class="hl-3">true</span><span class="hl-2"> </span><span class="hl-0">// If true or undefined, the app will register all slash commands in the Discord API [type: boolean]</span><br/><span class="hl-2">);</span>
|
||||
<pre><code class="language-typescript"><span class="hl-1">bot</span><span class="hl-2">.</span><span class="hl-5">start</span><span class="hl-2">(</span><br/><span class="hl-2"> </span><span class="hl-1">port</span><span class="hl-2">, </span><span class="hl-0">// If passed, the application will create a HTTP server [type: number (integer)]</span><br/><span class="hl-2"> </span><span class="hl-3">true</span><span class="hl-2"> </span><span class="hl-0">// If true or undefined, the app will register all slash commands in the Discord API [type: boolean]</span><br/><span class="hl-2">);</span>
|
||||
</code></pre>
|
||||
<blockquote>
|
||||
<p><strong>WARNING!</strong> All commands have to be added to the instance <strong>before starting the bot</strong>. Adding commands while the bot is running is not possible and can cause issues.</p>
|
||||
@@ -135,7 +136,7 @@
|
||||
<li><a href="https://grz4na.github.io/CommandBot/interfaces/ContextMenuCommandInit.html">MESSAGE</a> - right-click context menu interactions on messages</li>
|
||||
</ul>
|
||||
<p>Chat command example:</p>
|
||||
<pre><code class="language-javascript"><span class="hl-1">bot</span><span class="hl-2">.</span><span class="hl-1">commands</span><span class="hl-2">.</span><span class="hl-5">add</span><span class="hl-2">(</span><span class="hl-6">"CHAT"</span><span class="hl-2">, {</span><br/><span class="hl-2"> </span><span class="hl-1">name:</span><span class="hl-2"> </span><span class="hl-6">"greet"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">parameters:</span><span class="hl-2"> [</span><br/><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-1">name:</span><span class="hl-2"> </span><span class="hl-6">"user"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">description:</span><span class="hl-2"> </span><span class="hl-6">"User to greet"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">optional:</span><span class="hl-2"> </span><span class="hl-3">false</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">type:</span><span class="hl-2"> </span><span class="hl-6">"user"</span><span class="hl-2">,</span><br/><span class="hl-2"> },</span><br/><span class="hl-2"> ],</span><br/><span class="hl-2"> </span><span class="hl-1">aliases:</span><span class="hl-2"> [</span><span class="hl-6">"hello"</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-1">description:</span><span class="hl-2"> </span><span class="hl-6">"Welcome someone to your server"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">usage:</span><span class="hl-2"> </span><span class="hl-6">"[user]"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">dm:</span><span class="hl-2"> </span><span class="hl-3">false</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">guilds:</span><span class="hl-2"> [</span><span class="hl-6">"123456789874561230"</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-1">slash:</span><span class="hl-2"> </span><span class="hl-3">true</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">visible:</span><span class="hl-2"> </span><span class="hl-3">true</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">permissions:</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-1">resolvable:</span><span class="hl-2"> [</span><span class="hl-6">"ADMINISTRATOR"</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-1">checkType:</span><span class="hl-2"> </span><span class="hl-6">"ANY"</span><span class="hl-2">,</span><br/><span class="hl-2"> },</span><br/><span class="hl-2"> </span><span class="hl-5">function</span><span class="hl-1">:</span><span class="hl-2"> </span><span class="hl-3">async</span><span class="hl-2"> (</span><span class="hl-1">i</span><span class="hl-2">) </span><span class="hl-3">=></span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-3">const</span><span class="hl-2"> </span><span class="hl-4">user</span><span class="hl-2"> = </span><span class="hl-7">await</span><span class="hl-2"> </span><span class="hl-1">i</span><span class="hl-2">.</span><span class="hl-5">get</span><span class="hl-2">(</span><span class="hl-6">"user"</span><span class="hl-2">).</span><span class="hl-5">toObject</span><span class="hl-2">();</span><br/><span class="hl-2"> </span><span class="hl-7">return</span><span class="hl-2"> </span><span class="hl-6">`Hello </span><span class="hl-3">${</span><span class="hl-1">user</span><span class="hl-8">.</span><span class="hl-5">toString</span><span class="hl-8">()</span><span class="hl-3">}</span><span class="hl-6">`</span><span class="hl-2">;</span><br/><span class="hl-2"> },</span><br/><span class="hl-2">});</span>
|
||||
<pre><code class="language-typescript"><span class="hl-1">bot</span><span class="hl-2">.</span><span class="hl-1">commands</span><span class="hl-2">.</span><span class="hl-5">add</span><span class="hl-2">(</span><span class="hl-6">"CHAT"</span><span class="hl-2">, {</span><br/><span class="hl-2"> </span><span class="hl-1">name:</span><span class="hl-2"> </span><span class="hl-6">"greet"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">parameters:</span><span class="hl-2"> [</span><br/><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-1">name:</span><span class="hl-2"> </span><span class="hl-6">"user"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">description:</span><span class="hl-2"> </span><span class="hl-6">"User to greet"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">optional:</span><span class="hl-2"> </span><span class="hl-3">false</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">type:</span><span class="hl-2"> </span><span class="hl-6">"user"</span><span class="hl-2">,</span><br/><span class="hl-2"> },</span><br/><span class="hl-2"> ],</span><br/><span class="hl-2"> </span><span class="hl-1">aliases:</span><span class="hl-2"> [</span><span class="hl-6">"hello"</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-1">description:</span><span class="hl-2"> </span><span class="hl-6">"Welcome someone to your server"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">usage:</span><span class="hl-2"> </span><span class="hl-6">"[user]"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">dm:</span><span class="hl-2"> </span><span class="hl-3">false</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">guilds:</span><span class="hl-2"> [</span><span class="hl-6">"123456789874561230"</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-1">slash:</span><span class="hl-2"> </span><span class="hl-3">true</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">visible:</span><span class="hl-2"> </span><span class="hl-3">true</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">permissions:</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-1">resolvable:</span><span class="hl-2"> [</span><span class="hl-6">"ADMINISTRATOR"</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-1">checkType:</span><span class="hl-2"> </span><span class="hl-6">"ANY"</span><span class="hl-2">,</span><br/><span class="hl-2"> },</span><br/><span class="hl-2"> </span><span class="hl-5">function</span><span class="hl-1">:</span><span class="hl-2"> </span><span class="hl-3">async</span><span class="hl-2"> (</span><span class="hl-1">i</span><span class="hl-2">) </span><span class="hl-3">=></span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-3">const</span><span class="hl-2"> </span><span class="hl-4">user</span><span class="hl-2"> = </span><span class="hl-7">await</span><span class="hl-2"> </span><span class="hl-1">i</span><span class="hl-2">.</span><span class="hl-5">get</span><span class="hl-2">(</span><span class="hl-6">"user"</span><span class="hl-2">).</span><span class="hl-5">toObject</span><span class="hl-2">();</span><br/><span class="hl-2"> </span><span class="hl-7">return</span><span class="hl-2"> </span><span class="hl-6">`Hello </span><span class="hl-3">${</span><span class="hl-1">user</span><span class="hl-8">.</span><span class="hl-5">toString</span><span class="hl-8">()</span><span class="hl-3">}</span><span class="hl-6">`</span><span class="hl-2">;</span><br/><span class="hl-2"> },</span><br/><span class="hl-2">});</span>
|
||||
</code></pre>
|
||||
<p>Command function schema is defined <strong><a href="https://grz4na.github.io/CommandBot/modules.html#CommandFunction">here</a></strong></p>
|
||||
|
||||
@@ -157,7 +158,7 @@
|
||||
</a>
|
||||
<p>Pass a list of <em><a href="https://grz4na.github.io/CommandBot/interfaces/ParameterSchema.html">ParameterSchema</a></em> objects to <em><a href="https://grz4na.github.io/CommandBot/interfaces/ChatCommandInit.html#parameters">parameters</a></em> property</p>
|
||||
<p>Example parameter object:</p>
|
||||
<pre><code class="language-javascript"><span class="hl-2">{</span><br/><span class="hl-2"> </span><span class="hl-9">name</span><span class="hl-2">: </span><span class="hl-6">"user"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-9">description</span><span class="hl-2">: </span><span class="hl-6">"User to mention"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-9">optional</span><span class="hl-2">: </span><span class="hl-3">false</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-9">type</span><span class="hl-2">: </span><span class="hl-6">"user"</span><br/><span class="hl-2">}</span>
|
||||
<pre><code class="language-typescript"><span class="hl-2">{</span><br/><span class="hl-2"> </span><span class="hl-9">name</span><span class="hl-2">: </span><span class="hl-6">"user"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-9">description</span><span class="hl-2">: </span><span class="hl-6">"User to mention"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-9">optional</span><span class="hl-2">: </span><span class="hl-3">false</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-9">type</span><span class="hl-2">: </span><span class="hl-6">"user"</span><br/><span class="hl-2">}</span>
|
||||
</code></pre>
|
||||
|
||||
<a href="#reading-input-value" id="reading-input-value" style="color: inherit; text-decoration: none;">
|
||||
@@ -165,7 +166,14 @@
|
||||
</a>
|
||||
<p>To read parameter values use <em><a href="https://grz4na.github.io/CommandBot/classes/InputManager.html#get">InputManager.prototype.get()</a></em> (passed in the first argument of a command function)</p>
|
||||
<p>Example:</p>
|
||||
<pre><code class="language-javascript"><span class="hl-3">function</span><span class="hl-2">: (</span><span class="hl-1">i</span><span class="hl-2">) </span><span class="hl-3">=></span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-10">const</span><span class="hl-2"> </span><span class="hl-1">userObj</span><span class="hl-2"> = </span><span class="hl-1">i</span><span class="hl-2">.</span><span class="hl-5">get</span><span class="hl-2">(</span><span class="hl-6">'member'</span><span class="hl-2">, </span><span class="hl-6">'user'</span><span class="hl-2">)</span><br/><span class="hl-2"> </span><span class="hl-5">if</span><span class="hl-2">(</span><span class="hl-1">userObj</span><span class="hl-2">) {</span><br/><span class="hl-2"> </span><span class="hl-3">const</span><span class="hl-2"> </span><span class="hl-4">user</span><span class="hl-2"> = </span><span class="hl-1">userObj</span><span class="hl-2">.</span><span class="hl-5">toObject</span><span class="hl-2">();</span><br/><span class="hl-2"> </span><span class="hl-7">if</span><span class="hl-2">(</span><span class="hl-1">user</span><span class="hl-2">) {</span><br/><span class="hl-2"> </span><span class="hl-7">return</span><span class="hl-2"> </span><span class="hl-6">`Hello, </span><span class="hl-3">${</span><span class="hl-1">user</span><span class="hl-8">.</span><span class="hl-5">toString</span><span class="hl-8">()</span><span class="hl-3">}</span><span class="hl-6">`</span><br/><span class="hl-2"> }</span><br/><span class="hl-2"> </span><span class="hl-7">else</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-7">throw</span><span class="hl-2"> </span><span class="hl-3">new</span><span class="hl-2"> </span><span class="hl-10">Error</span><span class="hl-2">(</span><span class="hl-6">'User not found'</span><span class="hl-2">)</span><br/><span class="hl-2"> }</span><br/><span class="hl-2"> }</span><br/><span class="hl-2">}</span>
|
||||
<pre><code class="language-typescript"><span class="hl-3">function</span><span class="hl-2">: (</span><span class="hl-1">i</span><span class="hl-2">) </span><span class="hl-3">=></span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-10">const</span><span class="hl-2"> </span><span class="hl-1">userObj</span><span class="hl-2"> = </span><span class="hl-1">i</span><span class="hl-2">.</span><span class="hl-5">get</span><span class="hl-2">(</span><span class="hl-6">'member'</span><span class="hl-2">, </span><span class="hl-6">'user'</span><span class="hl-2">)</span><br/><span class="hl-2"> </span><span class="hl-5">if</span><span class="hl-2">(</span><span class="hl-1">userObj</span><span class="hl-2">) {</span><br/><span class="hl-2"> </span><span class="hl-3">const</span><span class="hl-2"> </span><span class="hl-4">user</span><span class="hl-2"> = </span><span class="hl-1">userObj</span><span class="hl-2">.</span><span class="hl-5">toObject</span><span class="hl-2">();</span><br/><span class="hl-2"> </span><span class="hl-7">if</span><span class="hl-2">(</span><span class="hl-1">user</span><span class="hl-2">) {</span><br/><span class="hl-2"> </span><span class="hl-7">return</span><span class="hl-2"> </span><span class="hl-6">`Hello, </span><span class="hl-3">${</span><span class="hl-1">user</span><span class="hl-8">.</span><span class="hl-5">toString</span><span class="hl-8">()</span><span class="hl-3">}</span><span class="hl-6">`</span><br/><span class="hl-2"> }</span><br/><span class="hl-2"> </span><span class="hl-7">else</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-7">throw</span><span class="hl-2"> </span><span class="hl-3">new</span><span class="hl-2"> </span><span class="hl-10">Error</span><span class="hl-2">(</span><span class="hl-6">'User not found'</span><span class="hl-2">)</span><br/><span class="hl-2"> }</span><br/><span class="hl-2"> }</span><br/><span class="hl-2">}</span>
|
||||
</code></pre>
|
||||
|
||||
<a href="#subcommands" id="subcommands" style="color: inherit; text-decoration: none;">
|
||||
<h2>Subcommands</h2>
|
||||
</a>
|
||||
<p>To create a subcommand create a standard chat command and use <em><a href="https://grz4na.github.io/CommandBot/classes/ChatCommand.html#append">ChatCommand.prototype.append</a></em> method to create and attach subcommands or subcommand groups. To add subcommands to groups use <em><a href="https://grz4na.github.io/CommandBot/classes/SubCommandGroup.html#append">SubCommandGroup.prototype.append</a></em>.</p>
|
||||
<pre><code class="language-typescript"><span class="hl-0">// Create a chat command</span><br/><span class="hl-3">const</span><span class="hl-2"> </span><span class="hl-4">cmd</span><span class="hl-2"> = </span><span class="hl-1">bot</span><span class="hl-2">.</span><span class="hl-1">commands</span><span class="hl-2">.</span><span class="hl-5">add</span><span class="hl-2">(</span><span class="hl-6">"CHAT"</span><span class="hl-2">, {</span><br/><span class="hl-2"> </span><span class="hl-1">name:</span><span class="hl-2"> </span><span class="hl-6">"parent"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">slash:</span><span class="hl-2"> </span><span class="hl-3">true</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">description:</span><span class="hl-2"> </span><span class="hl-6">"This is a parent"</span><span class="hl-2">,</span><br/><span class="hl-2">});</span><br/><br/><span class="hl-0">// Create and append a subcommand</span><br/><span class="hl-1">cmd</span><span class="hl-2">.</span><span class="hl-5">append</span><span class="hl-2">(</span><span class="hl-6">"COMMAND"</span><span class="hl-2">, {</span><br/><span class="hl-2"> </span><span class="hl-1">name:</span><span class="hl-2"> </span><span class="hl-6">"child"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">description:</span><span class="hl-2"> </span><span class="hl-6">"This is a subcommand"</span><span class="hl-2">,</span><br/><span class="hl-2">});</span><br/><br/><span class="hl-0">// Create and append a subcommand group</span><br/><span class="hl-3">const</span><span class="hl-2"> </span><span class="hl-4">group</span><span class="hl-2"> = </span><span class="hl-1">cmd</span><span class="hl-2">.</span><span class="hl-5">append</span><span class="hl-2">(</span><span class="hl-6">"GROUP"</span><span class="hl-2">, {</span><br/><span class="hl-2"> </span><span class="hl-1">name:</span><span class="hl-2"> </span><span class="hl-6">"command_group"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">description:</span><span class="hl-2"> </span><span class="hl-6">"This is a subcommand group"</span><span class="hl-2">,</span><br/><span class="hl-2">});</span><br/><br/><span class="hl-0">// Add a subcommand to the group</span><br/><span class="hl-1">group</span><span class="hl-2">.</span><span class="hl-5">append</span><span class="hl-2">({</span><br/><span class="hl-2"> </span><span class="hl-1">name:</span><span class="hl-2"> </span><span class="hl-6">"group_command"</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-1">description:</span><span class="hl-2"> </span><span class="hl-6">"This is a subcommand that is a child of the command_group"</span><span class="hl-2">,</span><br/><span class="hl-2">});</span>
|
||||
</code></pre>
|
||||
|
||||
<a href="#events" id="events" style="color: inherit; text-decoration: none;">
|
||||
|
||||
Reference in new issue
Block a user