diff --git a/Cargo.lock b/Cargo.lock index b8198b7..7e44054 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,20 +21,20 @@ dependencies = [ [[package]] name = "async-tungstenite" -version = "0.11.0" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7cc5408453d37e2b1c6f01d8078af1da58b6cfa6a80fa2ede3bd2b9a6ada9c4" +checksum = "a1b71b31561643aa8e7df3effe284fa83ab1a840e52294c5f4bd7bfd8b2becbb" dependencies = [ "futures-io", "futures-util", "log", "native-tls", - "pin-project", + "pin-project-lite", "tokio", "tokio-native-tls", - "tokio-rustls 0.22.0", + "tokio-rustls", "tungstenite", - "webpki-roots 0.20.0", + "webpki-roots", ] [[package]] @@ -43,12 +43,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - [[package]] name = "base64" version = "0.13.0" @@ -63,9 +57,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "block-buffer" -version = "0.9.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" dependencies = [ "generic-array", ] @@ -82,12 +76,6 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" -[[package]] -name = "bytes" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" - [[package]] name = "bytes" version = "1.1.0" @@ -106,19 +94,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "chrono" -version = "0.4.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" -dependencies = [ - "libc", - "num-integer", - "num-traits", - "serde", - "winapi", -] - [[package]] name = "core-foundation" version = "0.9.3" @@ -153,6 +128,16 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crypto-common" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "dashmap" version = "5.2.0" @@ -162,15 +147,17 @@ dependencies = [ "cfg-if", "num_cpus", "parking_lot", + "serde", ] [[package]] name = "digest" -version = "0.9.0" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" dependencies = [ - "generic-array", + "block-buffer", + "crypto-common", ] [[package]] @@ -335,13 +322,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.16" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" dependencies = [ "cfg-if", "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "wasi 0.10.2+wasi-snapshot-preview1", ] [[package]] @@ -350,7 +337,7 @@ version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" dependencies = [ - "bytes 1.1.0", + "bytes", "fnv", "futures-core", "futures-sink", @@ -384,7 +371,7 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" dependencies = [ - "bytes 1.1.0", + "bytes", "fnv", "itoa", ] @@ -395,7 +382,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" dependencies = [ - "bytes 1.1.0", + "bytes", "http", "pin-project-lite", ] @@ -418,7 +405,7 @@ version = "0.14.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-channel", "futures-core", "futures-util", @@ -444,9 +431,9 @@ checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" dependencies = [ "http", "hyper", - "rustls 0.20.4", + "rustls", "tokio", - "tokio-rustls 0.23.3", + "tokio-rustls", ] [[package]] @@ -455,7 +442,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.1.0", + "bytes", "hyper", "native-tls", "tokio", @@ -483,15 +470,6 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "input_buffer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a8a95243d5a0398cae618ec29477c6e3cb631152be5c19481f80bc71559754" -dependencies = [ - "bytes 0.5.6", -] - [[package]] name = "instant" version = "0.1.12" @@ -641,16 +619,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "num-integer" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.14" @@ -671,16 +639,19 @@ dependencies = [ ] [[package]] -name = "once_cell" -version = "1.10.0" +name = "num_threads" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" +checksum = "aba1801fb138d8e85e11d0fc70baf4fe1cdfffda7c6cd34a854905df588e5ed0" +dependencies = [ + "libc", +] [[package]] -name = "opaque-debug" -version = "0.3.0" +name = "once_cell" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" [[package]] name = "openssl" @@ -715,6 +686,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "ordered-float" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +dependencies = [ + "num-traits", +] + [[package]] name = "parking_lot" version = "0.12.0" @@ -744,26 +724,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" -[[package]] -name = "pin-project" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "pin-project-lite" version = "0.2.8" @@ -808,22 +768,20 @@ dependencies = [ [[package]] name = "rand" -version = "0.7.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "getrandom", "libc", "rand_chacha", "rand_core", - "rand_hc", ] [[package]] name = "rand_chacha" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", "rand_core", @@ -831,22 +789,13 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.5.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ "getrandom", ] -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core", -] - [[package]] name = "redox_syscall" version = "0.2.13" @@ -871,8 +820,8 @@ version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb" dependencies = [ - "base64 0.13.0", - "bytes 1.1.0", + "base64", + "bytes", "encoding_rs", "futures-core", "futures-util", @@ -891,20 +840,20 @@ dependencies = [ "native-tls", "percent-encoding", "pin-project-lite", - "rustls 0.20.4", + "rustls", "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", "tokio", "tokio-native-tls", - "tokio-rustls 0.23.3", + "tokio-rustls", "tokio-util 0.6.9", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.22.3", + "webpki-roots", "winreg", ] @@ -923,19 +872,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "rustls" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" -dependencies = [ - "base64 0.13.0", - "log", - "ring", - "sct 0.6.1", - "webpki 0.21.4", -] - [[package]] name = "rustls" version = "0.20.4" @@ -944,8 +880,8 @@ checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" dependencies = [ "log", "ring", - "sct 0.7.0", - "webpki 0.22.0", + "sct", + "webpki", ] [[package]] @@ -954,7 +890,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" dependencies = [ - "base64 0.13.0", + "base64", ] [[package]] @@ -979,16 +915,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -[[package]] -name = "sct" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "sct" version = "0.7.0" @@ -1031,6 +957,16 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + [[package]] name = "serde_derive" version = "1.0.136" @@ -1067,22 +1003,28 @@ dependencies = [ [[package]] name = "serenity" -version = "0.10.10" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde86919535c6047e055d512641c5241320c01cb8fee54f1e5ba77c939a0ec23" +checksum = "96455fdd03a3cb8c3270c47adf21d748b65067affc6c911ed4ed4ae05f097cab" dependencies = [ "async-trait", "async-tungstenite", - "base64 0.13.0", + "base64", "bitflags", - "bytes 1.1.0", - "chrono", + "bytes", + "cfg-if", + "dashmap", "flate2", "futures", + "mime", + "mime_guess", + "parking_lot", "percent-encoding", "reqwest", "serde", + "serde-value", "serde_json", + "time", "tokio", "tracing", "typemap_rev", @@ -1091,7 +1033,7 @@ dependencies = [ [[package]] name = "serenity-additions" -version = "0.3.0" +version = "0.3.1" dependencies = [ "dashmap", "futures", @@ -1104,15 +1046,13 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.9.8" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ - "block-buffer", "cfg-if", "cpufeatures", "digest", - "opaque-debug", ] [[package]] @@ -1188,6 +1128,18 @@ dependencies = [ "syn", ] +[[package]] +name = "time" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd" +dependencies = [ + "itoa", + "libc", + "num_threads", + "serde", +] + [[package]] name = "tinyvec" version = "1.5.1" @@ -1209,7 +1161,7 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee" dependencies = [ - "bytes 1.1.0", + "bytes", "libc", "memchr", "mio", @@ -1240,26 +1192,15 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" -dependencies = [ - "rustls 0.19.1", - "tokio", - "webpki 0.21.4", -] - [[package]] name = "tokio-rustls" version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4151fda0cf2798550ad0b34bcfc9b9dcc2a9d2471c895c68f3a8818e54f2389e" dependencies = [ - "rustls 0.20.4", + "rustls", "tokio", - "webpki 0.22.0", + "webpki", ] [[package]] @@ -1268,7 +1209,7 @@ version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-core", "futures-sink", "log", @@ -1282,7 +1223,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-core", "futures-sink", "pin-project-lite", @@ -1337,22 +1278,24 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "tungstenite" -version = "0.11.1" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0308d80d86700c5878b9ef6321f020f29b1bb9d5ff3cab25e75e23f3a492a23" +checksum = "d96a2dea40e7570482f28eb57afbe42d97551905da6a9400acc5c328d24004f5" dependencies = [ - "base64 0.12.3", + "base64", "byteorder", - "bytes 0.5.6", + "bytes", "http", "httparse", - "input_buffer", "log", "native-tls", "rand", + "rustls", "sha-1", + "thiserror", "url", "utf-8", + "webpki", ] [[package]] @@ -1413,6 +1356,7 @@ dependencies = [ "idna", "matches", "percent-encoding", + "serde", ] [[package]] @@ -1445,9 +1389,9 @@ dependencies = [ [[package]] name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +version = "0.10.2+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasi" @@ -1531,16 +1475,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki" version = "0.22.0" @@ -1551,22 +1485,13 @@ dependencies = [ "untrusted", ] -[[package]] -name = "webpki-roots" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f" -dependencies = [ - "webpki 0.21.4", -] - [[package]] name = "webpki-roots" version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" dependencies = [ - "webpki 0.22.0", + "webpki", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index fb0c1b9..9404313 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "serenity-additions" -version = "0.3.0" +version = "0.3.1" authors = ["trivernis "] edition = "2018" description = "Menus and self deleting messages for the serenity discord framework" @@ -24,6 +24,6 @@ serde_json = "1.0.79" dashmap = "5.2.0" [dependencies.serenity] -version = "0.10.10" +version = "0.11.1" default-features = false features = ["builder", "http", "cache", "model", "client", "gateway"] diff --git a/README.md b/README.md index 1a7630b..442bdf3 100644 --- a/README.md +++ b/README.md @@ -8,13 +8,9 @@ You have to register the module in the serenity client builder. ```rust use serenity::client::Client; use serenity_additions::RegisterRichInteractions; +use serenity::prelude::GatewayIntents; -#[tokio::main] -async fn get_client { - // stuff - let client = Client::builder("TOKEN").register_serenity_additions().await?; - // stuff -} +let client = Client::builder("TOKEN", GatewayIntends::default()).register_serenity_additions() ``` ## Menu @@ -23,7 +19,7 @@ async fn get_client { use serenity::builder::CreateMessage; use serenity::client::Context; use serenity::model::id::ChannelId; -use serenity_rich_interaction::menu::{MenuBuilder, Page}; +use serenity_additions::menu::{MenuBuilder, Page}; use std::time::Duration; use serenity_additions::Result; diff --git a/src/core.rs b/src/core.rs index de82905..48286fa 100644 --- a/src/core.rs +++ b/src/core.rs @@ -75,7 +75,7 @@ pub trait RegisterAdditions { fn register_serenity_additions_with(self, rich_handler: RichEventHandler) -> Self; } -impl<'a> RegisterAdditions for ClientBuilder<'a> { +impl RegisterAdditions for ClientBuilder { /// Registers the rich interactions configuration on the client fn register_serenity_additions(self) -> Self { self.register_serenity_additions_with(RichEventHandler::default()) diff --git a/src/events/handler.rs b/src/events/handler.rs index 7bf32da..39d37b7 100644 --- a/src/events/handler.rs +++ b/src/events/handler.rs @@ -11,6 +11,19 @@ use std::future::Future; use std::pin::Pin; use std::sync::Arc; +macro_rules! handle_events { + ( + match $evt:ident { + $($variant:pat) | + => $handle_call:expr, + } + ) => { + match $evt { + $($variant => $handle_call),+, + _ => {}, + } + } +} + pub struct EventCallback { inner: Arc< dyn for<'a> Fn( @@ -34,6 +47,7 @@ impl EventCallback { /// use serenity_additions::events::RichEventHandler; /// use serenity::model::event; /// use serenity::client::Client; +/// use serenity::prelude::GatewayIntents; /// use serenity_additions::RegisterAdditions; /// # async fn a() -> serenity_additions::Result<()> { /// @@ -42,7 +56,7 @@ impl EventCallback { /// println!("Ready event received"); /// Ok(()) /// })); -/// let client = Client::builder("TOKEN").register_serenity_additions_with(handler).await?; +/// let client = Client::builder("TOKEN", GatewayIntents::default()).register_serenity_additions_with(handler).await?; /// // ... /// # unimplemented!() /// # } @@ -130,46 +144,58 @@ impl Default for RichEventHandler { #[async_trait] impl RawEventHandler for RichEventHandler { async fn raw_event(&self, ctx: Context, event: Event) { - match event { - Event::ChannelCreate(e) => self.handle_event(ctx, e).await, - Event::ChannelDelete(e) => self.handle_event(ctx, e).await, - Event::ChannelPinsUpdate(e) => self.handle_event(ctx, e).await, - Event::ChannelUpdate(e) => self.handle_event(ctx, e).await, - Event::GuildBanAdd(e) => self.handle_event(ctx, e).await, - Event::GuildBanRemove(e) => self.handle_event(ctx, e).await, - Event::GuildCreate(e) => self.handle_event(ctx, e).await, - Event::GuildDelete(e) => self.handle_event(ctx, e).await, - Event::GuildEmojisUpdate(e) => self.handle_event(ctx, e).await, - Event::GuildIntegrationsUpdate(e) => self.handle_event(ctx, e).await, - Event::GuildMemberAdd(e) => self.handle_event(ctx, e).await, - Event::GuildMemberRemove(e) => self.handle_event(ctx, e).await, - Event::GuildMemberUpdate(e) => self.handle_event(ctx, e).await, - Event::GuildMembersChunk(e) => self.handle_event(ctx, e).await, - Event::GuildRoleCreate(e) => self.handle_event(ctx, e).await, - Event::GuildRoleDelete(e) => self.handle_event(ctx, e).await, - Event::GuildRoleUpdate(e) => self.handle_event(ctx, e).await, - Event::GuildUnavailable(e) => self.handle_event(ctx, e).await, - Event::GuildUpdate(e) => self.handle_event(ctx, e).await, - Event::InviteCreate(e) => self.handle_event(ctx, e).await, - Event::InviteDelete(e) => self.handle_event(ctx, e).await, - Event::MessageCreate(e) => self.handle_event(ctx, e).await, - Event::MessageDelete(e) => self.handle_event(ctx, e).await, - Event::MessageDeleteBulk(e) => self.handle_event(ctx, e).await, - Event::MessageUpdate(e) => self.handle_event(ctx, e).await, - Event::PresenceUpdate(e) => self.handle_event(ctx, e).await, - Event::PresencesReplace(e) => self.handle_event(ctx, e).await, - Event::ReactionAdd(e) => self.handle_event(ctx, e).await, - Event::ReactionRemove(e) => self.handle_event(ctx, e).await, - Event::ReactionRemoveAll(e) => self.handle_event(ctx, e).await, - Event::Ready(e) => self.handle_event(ctx, e).await, - Event::Resumed(e) => self.handle_event(ctx, e).await, - Event::TypingStart(e) => self.handle_event(ctx, e).await, - Event::UserUpdate(e) => self.handle_event(ctx, e).await, - Event::VoiceStateUpdate(e) => self.handle_event(ctx, e).await, - Event::VoiceServerUpdate(e) => self.handle_event(ctx, e).await, - Event::WebhookUpdate(e) => self.handle_event(ctx, e).await, - Event::Unknown(e) => self.handle_event(ctx, e).await, - _ => {} - } + handle_events!(match event { + Event::ChannelCreate(e) + | Event::ChannelDelete(e) + | Event::ChannelPinsUpdate(e) + | Event::ChannelUpdate(e) + | Event::GuildBanAdd(e) + | Event::GuildBanRemove(e) + | Event::GuildCreate(e) + | Event::GuildDelete(e) + | Event::GuildEmojisUpdate(e) + | Event::GuildIntegrationsUpdate(e) + | Event::GuildMemberAdd(e) + | Event::GuildMemberRemove(e) + | Event::GuildMemberUpdate(e) + | Event::GuildMembersChunk(e) + | Event::GuildRoleCreate(e) + | Event::GuildRoleDelete(e) + | Event::GuildRoleUpdate(e) + | Event::GuildUnavailable(e) + | Event::GuildUpdate(e) + | Event::InviteCreate(e) + | Event::InviteDelete(e) + | Event::MessageCreate(e) + | Event::MessageDelete(e) + | Event::MessageDeleteBulk(e) + | Event::MessageUpdate(e) + | Event::PresenceUpdate(e) + | Event::PresencesReplace(e) + | Event::ReactionAdd(e) + | Event::ReactionRemove(e) + | Event::ReactionRemoveAll(e) + | Event::Ready(e) + | Event::Resumed(e) + | Event::TypingStart(e) + | Event::UserUpdate(e) + | Event::VoiceStateUpdate(e) + | Event::VoiceServerUpdate(e) + | Event::WebhookUpdate(e) + | Event::Unknown(e) + | Event::InteractionCreate(e) + | Event::IntegrationCreate(e) + | Event::IntegrationUpdate(e) + | Event::IntegrationDelete(e) + | Event::StageInstanceCreate(e) + | Event::StageInstanceUpdate(e) + | Event::StageInstanceDelete(e) + | Event::ThreadCreate(e) + | Event::ThreadUpdate(e) + | Event::ThreadDelete(e) + | Event::ThreadListSync(e) + | Event::ThreadMemberUpdate(e) + | Event::ThreadMembersUpdate(e) => self.handle_event(ctx, e).await, + }); } }