@@ -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. |
@@ -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 |
@@ -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 | |||
}); |
@@ -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")); | |||
}); | |||
}); |
@@ -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); |