Browse Source

Merge 236efc68b7 into ccef6ec142

pull/14/merge
Master Kwoth 9 years ago
parent
commit
d1557d237b
5 changed files with 68 additions and 44 deletions
  1. +19
    -3
      docs/features/commands.rst
  2. +9
    -5
      docs/getting_started.rst
  3. +10
    -16
      docs/samples/command.cs
  4. +21
    -20
      docs/samples/command_group.cs
  5. +9
    -0
      docs/samples/command_service_creation.cs

+ 19
- 3
docs/features/commands.rst View File

@@ -5,16 +5,32 @@ The `Discord.Net.Commands`_ package DiscordBotClient extends DiscordClient with

.. _Discord.Net.Commands: https://www.nuget.org/packages/Discord.Net.Commands

Example (Simple)
In order to create a command, you have to add a CommandService to the client.
CommandService takes a CommandServiceConfig object as its parameter. Inside CommandServiceConfig you can setup your CommandChar(s) and HelpMode.

Example (CommandService creation)
----------------

.. literalinclude:: /samples/command_service_creation.cs
:language:csharp6
:tab-width 2

After command service has been added, you can use the CommandService to create commands.

Example (Command creation)
----------------

.. literalinclude:: /samples/command.cs
:language: csharp6
:tab-width: 2
Example (Groups)
If you have, or plan to have multiple commands that could be fit in a certain "group", you should use Command Groups. Command Groups can have same prefix for a group of commands, followed by a prefix for a certain command. In the following example, we will move our 'greet' command to the group called "do", and add another command 'bye'.
Example (CommandGroup creation)
----------------

.. literalinclude:: /samples/command_group.cs
:language: csharp6
:tab-width: 2
:tab-width: 2

In this example, to call a greet bye command, we would type "~greet bye" in chat.

+ 9
- 5
docs/getting_started.rst View File

@@ -4,7 +4,7 @@ Getting Started
Requirements
------------

Discord.Net currently requires logging in with a claimed account - anonymous logins are not supported. You can `register for a Discord account here`.
Discord.Net currently requires logging in with a claimed account - anonymous logins are not supported. You can `register for a Discord account here`_.

New accounts are also useless when not connected to a server, so you should create an invite code for whatever server you intend to test on using the official Discord client.

@@ -17,12 +17,16 @@ You can get Discord.Net from NuGet:

* `Discord.Net`_
* `Discord.Net.Commands`_
* `Discord.Net.Modules`_

If you have trouble installing from NuGet, try installing dependencies manually.

You can also pull the latest source from `GitHub`_

.. _Discord.Net: https://discordapp.com/register
.. _Discord.Net.Commands: https://discordapp.com/register
.. _GitHub: https://github.com/RogueException/Discord.Net/>
.. _Discord.Net: https://www.nuget.org/packages/Discord.Net/0.8.1-beta2
.. _Discord.Net.Commands: https://www.nuget.org/packages/Discord.Net.Commands/0.8.1-beta2
.. _Discord.Net.Modules: https://www.nuget.org/packages/Discord.Net.Modules/0.8.1-beta2
.. _GitHub: https://github.com/RogueException/Discord.Net/

Async
-----
@@ -39,4 +43,4 @@ Example
.. literalinclude:: samples/getting_started.cs
:language: csharp6
:tab-width: 2
:tab-width: 2

+ 10
- 16
docs/samples/command.cs View File

@@ -1,16 +1,10 @@
public enum Permissions
{
User,
Moderator,
Admin
}

//Usage: say [text]
client.CreateCommand("say")
.ArgsEqual(1)
.MinPermissions((int)Permissions.User)
.Do(async e =>
{
string msg = Format.Normal(e.CommandText);
await _client.SendMessage(e.Channel, msg);
});
//Since we have setup our CommandChar to be '~', we will run this command by typing ~greet
commands.CreateCommand("greet") //create command greet
.Alias(new string[] { "gr", "hi" }) //add 2 aliases, so it can be run with ~gr and ~hi
.Description("Greets a person.") //add description, it will be shown when ~help is used
.Parameter("GreetedPerson", ParameterType.Required) //as an argument, we have a person we want to greet
.Do(async e =>
{
await client.SendMessage(e.Channel, e.User.Name + " greets " + e.GetArg("GreetedPerson"));
//sends a message to channel with the given text
});

+ 21
- 20
docs/samples/command_group.cs View File

@@ -1,20 +1,21 @@
client.CreateCommandGroup("invites", invites =>
{
invites.DefaultMinPermissions((int)Permissions.Admin);
//Usage: invites accept [inviteCode]
invites.CreateCommand("accept")
.ArgsEqual(1)
.Do(async e =>
{
try
{
await _client.AcceptInvite(e.Args[0]);
await _client.SendMessage(e.Channel, "Invite \"" + e.Args[0] + "\" accepted.");
}
catch (HttpException ex)
{
await _client.SendMessage(e.Channel, "Error: " + ex.Message);
}
});
});
//we would run our commands with ~do greet X and ~do bye X
commands.CreateGroup("do", cgb =>
{
cgb.CreateCommand("greet")
.Alias(new string[] { "gr", "hi" })
.Description("Greets a person.")
.Parameter("GreetedPerson", ParameterType.Required)
.Do(async e =>
{
await client.SendMessage(e.Channel, e.User.Name + " greets " + e.GetArg("GreetedPerson"));
});

cgb.CreateCommand("bye")
.Alias(new string[] { "bb", "gb" })
.Description("Greets a person.")
.Parameter("GreetedPerson", ParameterType.Required)
.Do(async e =>
{
await client.SendMessage(e.Channel, e.User.Name + " says goodbye to " + e.GetArg("GreetedPerson"));
});
});

+ 9
- 0
docs/samples/command_service_creation.cs View File

@@ -0,0 +1,9 @@
//create command service
var commandService = new CommandService(new CommandServiceConfig
{
CommandChar = '~', // prefix char for commands
HelpMode = HelpMode.Public
});

//add command service
var commands = client.AddService(commandService);

Loading…
Cancel
Save