aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-06-28 19:50:08 +0200
committeracdenisSK <[email protected]>2017-06-28 19:50:08 +0200
commitfdfd5bcf708b6633b564fc58fb86935536310314 (patch)
tree9856e833602662e791aaea8601331001ce91295a /src/client
parentMerge branch "trait-based-event-handling" (diff)
downloadserenity-fdfd5bcf708b6633b564fc58fb86935536310314.tar.xz
serenity-fdfd5bcf708b6633b564fc58fb86935536310314.zip
Update readme, docs and add `EventHandler` to the prelude
Diffstat (limited to 'src/client')
-rw-r--r--src/client/mod.rs50
1 files changed, 31 insertions, 19 deletions
diff --git a/src/client/mod.rs b/src/client/mod.rs
index 9895fe9..6672341 100644
--- a/src/client/mod.rs
+++ b/src/client/mod.rs
@@ -58,7 +58,7 @@ use ::framework::Framework;
/// # Event Handlers
///
/// Event handlers can be configured. For example, the event handler
-/// [`on_message`] will be dispatched to whenever a [`Event::MessageCreate`] is
+/// [`EventHandler::on_message`] will be dispatched to whenever a [`Event::MessageCreate`] is
/// received over the connection.
///
/// Note that you do not need to manually handle events, as they are handled
@@ -70,15 +70,20 @@ use ::framework::Framework;
/// receive, acting as a "ping-pong" bot is simple:
///
/// ```rust,ignore
-/// use serenity::Client;
+/// use serenity::prelude::*;
+/// use serenity::model::*;
///
-/// let mut client = Client::new("my token here");
+/// struct Handler;
///
-/// client.on_message(|context, message| {
-/// if message.content == "!ping" {
-/// message.channel_id.say("Pong!");
+/// impl EventHandler for Handler {
+/// fn on_message(&self, _: Context, msg: Message) {
+/// if msg.content == "!ping" {
+/// let _ = msg.channel_id.say("Pong!");
+/// }
/// }
-/// });
+/// }
+///
+/// let mut client = Client::new("my token here", Handler);
///
/// client.start();
/// ```
@@ -113,7 +118,8 @@ pub struct Client<H: EventHandler + Send + Sync + 'static> {
/// extern crate serenity;
/// extern crate typemap;
///
- /// use serenity::Client;
+ /// use serenity::prelude::*;
+ /// use serenity::model::*;
/// use std::collections::HashMap;
/// use std::env;
/// use typemap::Key;
@@ -124,13 +130,6 @@ pub struct Client<H: EventHandler + Send + Sync + 'static> {
/// type Value = HashMap<String, u64>;
/// }
///
- /// let mut client = Client::new(&env::var("DISCORD_TOKEN").unwrap());
- ///
- /// {
- /// let mut data = client.data.lock().unwrap();
- /// data.insert::<MessageEventCounter>(HashMap::default());
- /// }
- ///
/// macro_rules! reg {
/// ($ctx:ident $name:expr) => {
/// {
@@ -142,10 +141,23 @@ pub struct Client<H: EventHandler + Send + Sync + 'static> {
/// };
/// }
///
- /// client.on_message(|ctx, _| reg!(ctx "MessageCreate"));
- /// client.on_message_delete(|ctx, _| reg!(ctx "MessageDelete"));
- /// client.on_message_delete_bulk(|ctx, _| reg!(ctx "MessageDeleteBulk"));
- /// client.on_message_update(|ctx, _| reg!(ctx "MessageUpdate"));
+ /// struct Handler;
+ ///
+ /// impl EventHandler for Handler {
+ /// fn on_message(&self, ctx: Context, _: Message) { reg!(ctx "MessageCreate") }
+ /// fn on_message_delete(&self, ctx: Context, _: Message) { reg!(ctx "MessageDelete") }
+ /// fn on_message_delete_bulk(&self, ctx: Context, _: Vec<Message>) { reg!(ctx "MessageDeleteBulk") }
+ /// fn on_message_update(&self, ctx: Context, _: Message) { reg!(ctx "MessageUpdate") }
+ /// }
+ ///
+ /// let mut client = Client::new(&env::var("DISCORD_TOKEN").unwrap(), Handler);
+ ///
+ /// {
+ /// let mut data = client.data.lock().unwrap();
+ /// data.insert::<MessageEventCounter>(HashMap::default());
+ /// }
+ ///
+ /// client.start().unwrap();
/// ```
///
/// Refer to [example 05] for an example on using the `data` field.