Skip to content

Commit 0696865

Browse files
committed
Command client!
1 parent 5521571 commit 0696865

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+134
-94
lines changed

example/command-client.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import 'package:discord_dart/discord.dart' as discord;
2+
import 'package:discord_dart/command.dart' as command;
3+
4+
main() {
5+
var bot = new discord.Client("your token");
6+
var commands = new command.Client(bot, "!");
7+
8+
bot.on('ready', (e) {
9+
print("Ready!");
10+
});
11+
12+
commands.on('ping', (e) {
13+
var m = e.message;
14+
m.channel.sendMessage("Pong!");
15+
});
16+
}

lib/command.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export 'src/command.dart';

lib/discord.dart

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,40 @@
11
export 'src/client.dart';
2+
3+
export 'src/events/ChannelCreateEvent.dart';
4+
export 'src/events/ChannelDeleteEvent.dart';
5+
export 'src/events/ChannelUpdateEvent.dart';
6+
export 'src/events/GuildBanAddEvent.dart';
7+
export 'src/events/GuildBanRemoveEvent.dart';
8+
export 'src/events/GuildCreateEvent.dart';
9+
export 'src/events/GuildDeleteEvent.dart';
10+
export 'src/events/GuildMemberAddEvent.dart';
11+
export 'src/events/GuildMemberRemoveEvent.dart';
12+
export 'src/events/GuildMemberUpdateEvent.dart';
13+
export 'src/events/GuildUpdateEvent.dart';
14+
export 'src/events/MessageDeleteEvent.dart';
15+
export 'src/events/MessageEvent.dart';
16+
export 'src/events/MessageUpdateEvent.dart';
17+
export 'src/events/ReadyEvent.dart';
18+
export 'src/events/TypingEvent.dart';
19+
export 'src/events/WebSocketErrorEvent.dart';
20+
21+
export 'src/objects/Attachment.dart';
22+
export 'src/objects/ClientOAuth2Application.dart';
23+
export 'src/objects/ClientOptions.dart';
24+
export 'src/objects/ClientUser.dart';
25+
export 'src/objects/Embed.dart';
26+
export 'src/objects/EmbedProvider.dart';
27+
export 'src/objects/EmbedThumbnail.dart';
28+
export 'src/objects/Guild.dart';
29+
export 'src/objects/GuildChannel.dart';
30+
export 'src/objects/Invite.dart';
31+
export 'src/objects/InviteChannel.dart';
32+
export 'src/objects/InviteGuild.dart';
33+
export 'src/objects/Member.dart';
34+
export 'src/objects/MessageOptions.dart';
35+
export 'src/objects/Message.dart';
36+
export 'src/objects/OAuth2Application.dart';
37+
export 'src/objects/OAuth2Guild.dart';
38+
export 'src/objects/OAuth2Info.dart';
39+
export 'src/objects/PrivateChannel.dart';
40+
export 'src/objects/User.dart';

lib/events.dart

Lines changed: 0 additions & 17 deletions
This file was deleted.

lib/objects.dart

Lines changed: 0 additions & 20 deletions
This file was deleted.

lib/src/client.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import 'dart:convert';
22
import 'dart:async';
3-
import '../objects.dart';
43
import 'http.dart';
54
import 'ws.dart';
5+
import '../discord.dart';
66
import 'package:events/events.dart' as events;
77
import 'package:http/http.dart' as http;
88

lib/src/command.dart

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import '../discord.dart' as discord;
2+
import 'package:events/events.dart' as events;
3+
4+
/// Send when a new command is received.
5+
class CommandEvent {
6+
/// A list of arguments provided.
7+
List<String> args;
8+
9+
/// The message;
10+
discord.Message message;
11+
12+
/// Constructs a `CommandEvent`.
13+
CommandEvent(Client client, String command, this.args, this.message) {
14+
client.emit(command, this);
15+
}
16+
}
17+
18+
/// The base class for the command client.
19+
class Client extends events.Events {
20+
/// The main discord client.
21+
discord.Client client;
22+
23+
/// The client's prefix.
24+
String prefix;
25+
26+
/// Makes a new command client.
27+
Client(this.client, this.prefix) {
28+
this.client.on('message', (discord.MessageEvent e) {
29+
if (e.message.content.startsWith(this.prefix)) {
30+
final String command = e.message.content.split(" ")[0].replaceFirst(this.prefix, "");
31+
final List<String> args = e.message.content.split(" ");
32+
args.remove(this.prefix + command);
33+
new CommandEvent(this, command, args, e.message);
34+
}
35+
});
36+
}
37+
}

lib/src/events/ChannelCreateEvent.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import '../../objects.dart';
1+
import '../../discord.dart';
22
import '../client.dart';
33

44
/// Sent when a channel is created, can be a `PMChannel`.

lib/src/events/ChannelDeleteEvent.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import '../../objects.dart';
1+
import '../../discord.dart';
22
import '../client.dart';
33

44
/// Sent when a channel is deleted, can be a `PMChannel`.

lib/src/events/ChannelUpdateEvent.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import '../../objects.dart';
1+
import '../../discord.dart';
22
import '../client.dart';
33

44
/// Sent when a channel is updated.

0 commit comments

Comments
 (0)