@@ -58,7 +58,7 @@ use ::framework::Framework;
58
58
/// # Event Handlers
59
59
///
60
60
/// Event handlers can be configured. For example, the event handler
61
- /// [`on_message`] will be dispatched to whenever a [`Event::MessageCreate`] is
61
+ /// [`EventHandler:: on_message`] will be dispatched to whenever a [`Event::MessageCreate`] is
62
62
/// received over the connection.
63
63
///
64
64
/// Note that you do not need to manually handle events, as they are handled
@@ -70,15 +70,20 @@ use ::framework::Framework;
70
70
/// receive, acting as a "ping-pong" bot is simple:
71
71
///
72
72
/// ```rust,ignore
73
- /// use serenity::Client;
73
+ /// use serenity::prelude::*;
74
+ /// use serenity::model::*;
74
75
///
75
- /// let mut client = Client::new("my token here") ;
76
+ /// struct Handler ;
76
77
///
77
- /// client.on_message(|context, message| {
78
- /// if message.content == "!ping" {
79
- /// message.channel_id.say("Pong!");
78
+ /// impl EventHandler for Handler {
79
+ /// fn on_message(&self, _: Context, msg: Message) {
80
+ /// if msg.content == "!ping" {
81
+ /// let _ = msg.channel_id.say("Pong!");
82
+ /// }
80
83
/// }
81
- /// });
84
+ /// }
85
+ ///
86
+ /// let mut client = Client::new("my token here", Handler);
82
87
///
83
88
/// client.start();
84
89
/// ```
@@ -113,7 +118,8 @@ pub struct Client<H: EventHandler + Send + Sync + 'static> {
113
118
/// extern crate serenity;
114
119
/// extern crate typemap;
115
120
///
116
- /// use serenity::Client;
121
+ /// use serenity::prelude::*;
122
+ /// use serenity::model::*;
117
123
/// use std::collections::HashMap;
118
124
/// use std::env;
119
125
/// use typemap::Key;
@@ -124,13 +130,6 @@ pub struct Client<H: EventHandler + Send + Sync + 'static> {
124
130
/// type Value = HashMap<String, u64>;
125
131
/// }
126
132
///
127
- /// let mut client = Client::new(&env::var("DISCORD_TOKEN").unwrap());
128
- ///
129
- /// {
130
- /// let mut data = client.data.lock().unwrap();
131
- /// data.insert::<MessageEventCounter>(HashMap::default());
132
- /// }
133
- ///
134
133
/// macro_rules! reg {
135
134
/// ($ctx:ident $name:expr) => {
136
135
/// {
@@ -142,10 +141,23 @@ pub struct Client<H: EventHandler + Send + Sync + 'static> {
142
141
/// };
143
142
/// }
144
143
///
145
- /// client.on_message(|ctx, _| reg!(ctx "MessageCreate"));
146
- /// client.on_message_delete(|ctx, _| reg!(ctx "MessageDelete"));
147
- /// client.on_message_delete_bulk(|ctx, _| reg!(ctx "MessageDeleteBulk"));
148
- /// client.on_message_update(|ctx, _| reg!(ctx "MessageUpdate"));
144
+ /// struct Handler;
145
+ ///
146
+ /// impl EventHandler for Handler {
147
+ /// fn on_message(&self, ctx: Context, _: Message) { reg!(ctx "MessageCreate") }
148
+ /// fn on_message_delete(&self, ctx: Context, _: Message) { reg!(ctx "MessageDelete") }
149
+ /// fn on_message_delete_bulk(&self, ctx: Context, _: Vec<Message>) { reg!(ctx "MessageDeleteBulk") }
150
+ /// fn on_message_update(&self, ctx: Context, _: Message) { reg!(ctx "MessageUpdate") }
151
+ /// }
152
+ ///
153
+ /// let mut client = Client::new(&env::var("DISCORD_TOKEN").unwrap(), Handler);
154
+ ///
155
+ /// {
156
+ /// let mut data = client.data.lock().unwrap();
157
+ /// data.insert::<MessageEventCounter>(HashMap::default());
158
+ /// }
159
+ ///
160
+ /// client.start().unwrap();
149
161
/// ```
150
162
///
151
163
/// Refer to [example 05] for an example on using the `data` field.
0 commit comments