eventhandlers.go 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006
  1. // Code generated by \"eventhandlers\"; DO NOT EDIT
  2. // See events.go
  3. package discordgo
  4. // Following are all the event types.
  5. // Event type values are used to match the events returned by Discord.
  6. // EventTypes surrounded by __ are synthetic and are internal to DiscordGo.
  7. const (
  8. channelCreateEventType = "CHANNEL_CREATE"
  9. channelDeleteEventType = "CHANNEL_DELETE"
  10. channelPinsUpdateEventType = "CHANNEL_PINS_UPDATE"
  11. channelUpdateEventType = "CHANNEL_UPDATE"
  12. connectEventType = "__CONNECT__"
  13. disconnectEventType = "__DISCONNECT__"
  14. eventEventType = "__EVENT__"
  15. guildBanAddEventType = "GUILD_BAN_ADD"
  16. guildBanRemoveEventType = "GUILD_BAN_REMOVE"
  17. guildCreateEventType = "GUILD_CREATE"
  18. guildDeleteEventType = "GUILD_DELETE"
  19. guildEmojisUpdateEventType = "GUILD_EMOJIS_UPDATE"
  20. guildIntegrationsUpdateEventType = "GUILD_INTEGRATIONS_UPDATE"
  21. guildMemberAddEventType = "GUILD_MEMBER_ADD"
  22. guildMemberRemoveEventType = "GUILD_MEMBER_REMOVE"
  23. guildMemberUpdateEventType = "GUILD_MEMBER_UPDATE"
  24. guildMembersChunkEventType = "GUILD_MEMBERS_CHUNK"
  25. guildRoleCreateEventType = "GUILD_ROLE_CREATE"
  26. guildRoleDeleteEventType = "GUILD_ROLE_DELETE"
  27. guildRoleUpdateEventType = "GUILD_ROLE_UPDATE"
  28. guildUpdateEventType = "GUILD_UPDATE"
  29. messageAckEventType = "MESSAGE_ACK"
  30. messageCreateEventType = "MESSAGE_CREATE"
  31. messageDeleteEventType = "MESSAGE_DELETE"
  32. messageDeleteBulkEventType = "MESSAGE_DELETE_BULK"
  33. messageReactionAddEventType = "MESSAGE_REACTION_ADD"
  34. messageReactionRemoveEventType = "MESSAGE_REACTION_REMOVE"
  35. messageReactionRemoveAllEventType = "MESSAGE_REACTION_REMOVE_ALL"
  36. messageUpdateEventType = "MESSAGE_UPDATE"
  37. presenceUpdateEventType = "PRESENCE_UPDATE"
  38. presencesReplaceEventType = "PRESENCES_REPLACE"
  39. rateLimitEventType = "__RATE_LIMIT__"
  40. readyEventType = "READY"
  41. relationshipAddEventType = "RELATIONSHIP_ADD"
  42. relationshipRemoveEventType = "RELATIONSHIP_REMOVE"
  43. resumedEventType = "RESUMED"
  44. typingStartEventType = "TYPING_START"
  45. userGuildSettingsUpdateEventType = "USER_GUILD_SETTINGS_UPDATE"
  46. userSettingsUpdateEventType = "USER_SETTINGS_UPDATE"
  47. userUpdateEventType = "USER_UPDATE"
  48. voiceServerUpdateEventType = "VOICE_SERVER_UPDATE"
  49. voiceStateUpdateEventType = "VOICE_STATE_UPDATE"
  50. )
  51. // channelCreateEventHandler is an event handler for ChannelCreate events.
  52. type channelCreateEventHandler func(*Session, *ChannelCreate)
  53. // Type returns the event type for ChannelCreate events.
  54. func (eh channelCreateEventHandler) Type() string {
  55. return channelCreateEventType
  56. }
  57. // New returns a new instance of ChannelCreate.
  58. func (eh channelCreateEventHandler) New() interface{} {
  59. return &ChannelCreate{}
  60. }
  61. // Handle is the handler for ChannelCreate events.
  62. func (eh channelCreateEventHandler) Handle(s *Session, i interface{}) {
  63. if t, ok := i.(*ChannelCreate); ok {
  64. eh(s, t)
  65. }
  66. }
  67. // channelDeleteEventHandler is an event handler for ChannelDelete events.
  68. type channelDeleteEventHandler func(*Session, *ChannelDelete)
  69. // Type returns the event type for ChannelDelete events.
  70. func (eh channelDeleteEventHandler) Type() string {
  71. return channelDeleteEventType
  72. }
  73. // New returns a new instance of ChannelDelete.
  74. func (eh channelDeleteEventHandler) New() interface{} {
  75. return &ChannelDelete{}
  76. }
  77. // Handle is the handler for ChannelDelete events.
  78. func (eh channelDeleteEventHandler) Handle(s *Session, i interface{}) {
  79. if t, ok := i.(*ChannelDelete); ok {
  80. eh(s, t)
  81. }
  82. }
  83. // channelPinsUpdateEventHandler is an event handler for ChannelPinsUpdate events.
  84. type channelPinsUpdateEventHandler func(*Session, *ChannelPinsUpdate)
  85. // Type returns the event type for ChannelPinsUpdate events.
  86. func (eh channelPinsUpdateEventHandler) Type() string {
  87. return channelPinsUpdateEventType
  88. }
  89. // New returns a new instance of ChannelPinsUpdate.
  90. func (eh channelPinsUpdateEventHandler) New() interface{} {
  91. return &ChannelPinsUpdate{}
  92. }
  93. // Handle is the handler for ChannelPinsUpdate events.
  94. func (eh channelPinsUpdateEventHandler) Handle(s *Session, i interface{}) {
  95. if t, ok := i.(*ChannelPinsUpdate); ok {
  96. eh(s, t)
  97. }
  98. }
  99. // channelUpdateEventHandler is an event handler for ChannelUpdate events.
  100. type channelUpdateEventHandler func(*Session, *ChannelUpdate)
  101. // Type returns the event type for ChannelUpdate events.
  102. func (eh channelUpdateEventHandler) Type() string {
  103. return channelUpdateEventType
  104. }
  105. // New returns a new instance of ChannelUpdate.
  106. func (eh channelUpdateEventHandler) New() interface{} {
  107. return &ChannelUpdate{}
  108. }
  109. // Handle is the handler for ChannelUpdate events.
  110. func (eh channelUpdateEventHandler) Handle(s *Session, i interface{}) {
  111. if t, ok := i.(*ChannelUpdate); ok {
  112. eh(s, t)
  113. }
  114. }
  115. // connectEventHandler is an event handler for Connect events.
  116. type connectEventHandler func(*Session, *Connect)
  117. // Type returns the event type for Connect events.
  118. func (eh connectEventHandler) Type() string {
  119. return connectEventType
  120. }
  121. // Handle is the handler for Connect events.
  122. func (eh connectEventHandler) Handle(s *Session, i interface{}) {
  123. if t, ok := i.(*Connect); ok {
  124. eh(s, t)
  125. }
  126. }
  127. // disconnectEventHandler is an event handler for Disconnect events.
  128. type disconnectEventHandler func(*Session, *Disconnect)
  129. // Type returns the event type for Disconnect events.
  130. func (eh disconnectEventHandler) Type() string {
  131. return disconnectEventType
  132. }
  133. // Handle is the handler for Disconnect events.
  134. func (eh disconnectEventHandler) Handle(s *Session, i interface{}) {
  135. if t, ok := i.(*Disconnect); ok {
  136. eh(s, t)
  137. }
  138. }
  139. // eventEventHandler is an event handler for Event events.
  140. type eventEventHandler func(*Session, *Event)
  141. // Type returns the event type for Event events.
  142. func (eh eventEventHandler) Type() string {
  143. return eventEventType
  144. }
  145. // Handle is the handler for Event events.
  146. func (eh eventEventHandler) Handle(s *Session, i interface{}) {
  147. if t, ok := i.(*Event); ok {
  148. eh(s, t)
  149. }
  150. }
  151. // guildBanAddEventHandler is an event handler for GuildBanAdd events.
  152. type guildBanAddEventHandler func(*Session, *GuildBanAdd)
  153. // Type returns the event type for GuildBanAdd events.
  154. func (eh guildBanAddEventHandler) Type() string {
  155. return guildBanAddEventType
  156. }
  157. // New returns a new instance of GuildBanAdd.
  158. func (eh guildBanAddEventHandler) New() interface{} {
  159. return &GuildBanAdd{}
  160. }
  161. // Handle is the handler for GuildBanAdd events.
  162. func (eh guildBanAddEventHandler) Handle(s *Session, i interface{}) {
  163. if t, ok := i.(*GuildBanAdd); ok {
  164. eh(s, t)
  165. }
  166. }
  167. // guildBanRemoveEventHandler is an event handler for GuildBanRemove events.
  168. type guildBanRemoveEventHandler func(*Session, *GuildBanRemove)
  169. // Type returns the event type for GuildBanRemove events.
  170. func (eh guildBanRemoveEventHandler) Type() string {
  171. return guildBanRemoveEventType
  172. }
  173. // New returns a new instance of GuildBanRemove.
  174. func (eh guildBanRemoveEventHandler) New() interface{} {
  175. return &GuildBanRemove{}
  176. }
  177. // Handle is the handler for GuildBanRemove events.
  178. func (eh guildBanRemoveEventHandler) Handle(s *Session, i interface{}) {
  179. if t, ok := i.(*GuildBanRemove); ok {
  180. eh(s, t)
  181. }
  182. }
  183. // guildCreateEventHandler is an event handler for GuildCreate events.
  184. type guildCreateEventHandler func(*Session, *GuildCreate)
  185. // Type returns the event type for GuildCreate events.
  186. func (eh guildCreateEventHandler) Type() string {
  187. return guildCreateEventType
  188. }
  189. // New returns a new instance of GuildCreate.
  190. func (eh guildCreateEventHandler) New() interface{} {
  191. return &GuildCreate{}
  192. }
  193. // Handle is the handler for GuildCreate events.
  194. func (eh guildCreateEventHandler) Handle(s *Session, i interface{}) {
  195. if t, ok := i.(*GuildCreate); ok {
  196. eh(s, t)
  197. }
  198. }
  199. // guildDeleteEventHandler is an event handler for GuildDelete events.
  200. type guildDeleteEventHandler func(*Session, *GuildDelete)
  201. // Type returns the event type for GuildDelete events.
  202. func (eh guildDeleteEventHandler) Type() string {
  203. return guildDeleteEventType
  204. }
  205. // New returns a new instance of GuildDelete.
  206. func (eh guildDeleteEventHandler) New() interface{} {
  207. return &GuildDelete{}
  208. }
  209. // Handle is the handler for GuildDelete events.
  210. func (eh guildDeleteEventHandler) Handle(s *Session, i interface{}) {
  211. if t, ok := i.(*GuildDelete); ok {
  212. eh(s, t)
  213. }
  214. }
  215. // guildEmojisUpdateEventHandler is an event handler for GuildEmojisUpdate events.
  216. type guildEmojisUpdateEventHandler func(*Session, *GuildEmojisUpdate)
  217. // Type returns the event type for GuildEmojisUpdate events.
  218. func (eh guildEmojisUpdateEventHandler) Type() string {
  219. return guildEmojisUpdateEventType
  220. }
  221. // New returns a new instance of GuildEmojisUpdate.
  222. func (eh guildEmojisUpdateEventHandler) New() interface{} {
  223. return &GuildEmojisUpdate{}
  224. }
  225. // Handle is the handler for GuildEmojisUpdate events.
  226. func (eh guildEmojisUpdateEventHandler) Handle(s *Session, i interface{}) {
  227. if t, ok := i.(*GuildEmojisUpdate); ok {
  228. eh(s, t)
  229. }
  230. }
  231. // guildIntegrationsUpdateEventHandler is an event handler for GuildIntegrationsUpdate events.
  232. type guildIntegrationsUpdateEventHandler func(*Session, *GuildIntegrationsUpdate)
  233. // Type returns the event type for GuildIntegrationsUpdate events.
  234. func (eh guildIntegrationsUpdateEventHandler) Type() string {
  235. return guildIntegrationsUpdateEventType
  236. }
  237. // New returns a new instance of GuildIntegrationsUpdate.
  238. func (eh guildIntegrationsUpdateEventHandler) New() interface{} {
  239. return &GuildIntegrationsUpdate{}
  240. }
  241. // Handle is the handler for GuildIntegrationsUpdate events.
  242. func (eh guildIntegrationsUpdateEventHandler) Handle(s *Session, i interface{}) {
  243. if t, ok := i.(*GuildIntegrationsUpdate); ok {
  244. eh(s, t)
  245. }
  246. }
  247. // guildMemberAddEventHandler is an event handler for GuildMemberAdd events.
  248. type guildMemberAddEventHandler func(*Session, *GuildMemberAdd)
  249. // Type returns the event type for GuildMemberAdd events.
  250. func (eh guildMemberAddEventHandler) Type() string {
  251. return guildMemberAddEventType
  252. }
  253. // New returns a new instance of GuildMemberAdd.
  254. func (eh guildMemberAddEventHandler) New() interface{} {
  255. return &GuildMemberAdd{}
  256. }
  257. // Handle is the handler for GuildMemberAdd events.
  258. func (eh guildMemberAddEventHandler) Handle(s *Session, i interface{}) {
  259. if t, ok := i.(*GuildMemberAdd); ok {
  260. eh(s, t)
  261. }
  262. }
  263. // guildMemberRemoveEventHandler is an event handler for GuildMemberRemove events.
  264. type guildMemberRemoveEventHandler func(*Session, *GuildMemberRemove)
  265. // Type returns the event type for GuildMemberRemove events.
  266. func (eh guildMemberRemoveEventHandler) Type() string {
  267. return guildMemberRemoveEventType
  268. }
  269. // New returns a new instance of GuildMemberRemove.
  270. func (eh guildMemberRemoveEventHandler) New() interface{} {
  271. return &GuildMemberRemove{}
  272. }
  273. // Handle is the handler for GuildMemberRemove events.
  274. func (eh guildMemberRemoveEventHandler) Handle(s *Session, i interface{}) {
  275. if t, ok := i.(*GuildMemberRemove); ok {
  276. eh(s, t)
  277. }
  278. }
  279. // guildMemberUpdateEventHandler is an event handler for GuildMemberUpdate events.
  280. type guildMemberUpdateEventHandler func(*Session, *GuildMemberUpdate)
  281. // Type returns the event type for GuildMemberUpdate events.
  282. func (eh guildMemberUpdateEventHandler) Type() string {
  283. return guildMemberUpdateEventType
  284. }
  285. // New returns a new instance of GuildMemberUpdate.
  286. func (eh guildMemberUpdateEventHandler) New() interface{} {
  287. return &GuildMemberUpdate{}
  288. }
  289. // Handle is the handler for GuildMemberUpdate events.
  290. func (eh guildMemberUpdateEventHandler) Handle(s *Session, i interface{}) {
  291. if t, ok := i.(*GuildMemberUpdate); ok {
  292. eh(s, t)
  293. }
  294. }
  295. // guildMembersChunkEventHandler is an event handler for GuildMembersChunk events.
  296. type guildMembersChunkEventHandler func(*Session, *GuildMembersChunk)
  297. // Type returns the event type for GuildMembersChunk events.
  298. func (eh guildMembersChunkEventHandler) Type() string {
  299. return guildMembersChunkEventType
  300. }
  301. // New returns a new instance of GuildMembersChunk.
  302. func (eh guildMembersChunkEventHandler) New() interface{} {
  303. return &GuildMembersChunk{}
  304. }
  305. // Handle is the handler for GuildMembersChunk events.
  306. func (eh guildMembersChunkEventHandler) Handle(s *Session, i interface{}) {
  307. if t, ok := i.(*GuildMembersChunk); ok {
  308. eh(s, t)
  309. }
  310. }
  311. // guildRoleCreateEventHandler is an event handler for GuildRoleCreate events.
  312. type guildRoleCreateEventHandler func(*Session, *GuildRoleCreate)
  313. // Type returns the event type for GuildRoleCreate events.
  314. func (eh guildRoleCreateEventHandler) Type() string {
  315. return guildRoleCreateEventType
  316. }
  317. // New returns a new instance of GuildRoleCreate.
  318. func (eh guildRoleCreateEventHandler) New() interface{} {
  319. return &GuildRoleCreate{}
  320. }
  321. // Handle is the handler for GuildRoleCreate events.
  322. func (eh guildRoleCreateEventHandler) Handle(s *Session, i interface{}) {
  323. if t, ok := i.(*GuildRoleCreate); ok {
  324. eh(s, t)
  325. }
  326. }
  327. // guildRoleDeleteEventHandler is an event handler for GuildRoleDelete events.
  328. type guildRoleDeleteEventHandler func(*Session, *GuildRoleDelete)
  329. // Type returns the event type for GuildRoleDelete events.
  330. func (eh guildRoleDeleteEventHandler) Type() string {
  331. return guildRoleDeleteEventType
  332. }
  333. // New returns a new instance of GuildRoleDelete.
  334. func (eh guildRoleDeleteEventHandler) New() interface{} {
  335. return &GuildRoleDelete{}
  336. }
  337. // Handle is the handler for GuildRoleDelete events.
  338. func (eh guildRoleDeleteEventHandler) Handle(s *Session, i interface{}) {
  339. if t, ok := i.(*GuildRoleDelete); ok {
  340. eh(s, t)
  341. }
  342. }
  343. // guildRoleUpdateEventHandler is an event handler for GuildRoleUpdate events.
  344. type guildRoleUpdateEventHandler func(*Session, *GuildRoleUpdate)
  345. // Type returns the event type for GuildRoleUpdate events.
  346. func (eh guildRoleUpdateEventHandler) Type() string {
  347. return guildRoleUpdateEventType
  348. }
  349. // New returns a new instance of GuildRoleUpdate.
  350. func (eh guildRoleUpdateEventHandler) New() interface{} {
  351. return &GuildRoleUpdate{}
  352. }
  353. // Handle is the handler for GuildRoleUpdate events.
  354. func (eh guildRoleUpdateEventHandler) Handle(s *Session, i interface{}) {
  355. if t, ok := i.(*GuildRoleUpdate); ok {
  356. eh(s, t)
  357. }
  358. }
  359. // guildUpdateEventHandler is an event handler for GuildUpdate events.
  360. type guildUpdateEventHandler func(*Session, *GuildUpdate)
  361. // Type returns the event type for GuildUpdate events.
  362. func (eh guildUpdateEventHandler) Type() string {
  363. return guildUpdateEventType
  364. }
  365. // New returns a new instance of GuildUpdate.
  366. func (eh guildUpdateEventHandler) New() interface{} {
  367. return &GuildUpdate{}
  368. }
  369. // Handle is the handler for GuildUpdate events.
  370. func (eh guildUpdateEventHandler) Handle(s *Session, i interface{}) {
  371. if t, ok := i.(*GuildUpdate); ok {
  372. eh(s, t)
  373. }
  374. }
  375. // messageAckEventHandler is an event handler for MessageAck events.
  376. type messageAckEventHandler func(*Session, *MessageAck)
  377. // Type returns the event type for MessageAck events.
  378. func (eh messageAckEventHandler) Type() string {
  379. return messageAckEventType
  380. }
  381. // New returns a new instance of MessageAck.
  382. func (eh messageAckEventHandler) New() interface{} {
  383. return &MessageAck{}
  384. }
  385. // Handle is the handler for MessageAck events.
  386. func (eh messageAckEventHandler) Handle(s *Session, i interface{}) {
  387. if t, ok := i.(*MessageAck); ok {
  388. eh(s, t)
  389. }
  390. }
  391. // messageCreateEventHandler is an event handler for MessageCreate events.
  392. type messageCreateEventHandler func(*Session, *MessageCreate)
  393. // Type returns the event type for MessageCreate events.
  394. func (eh messageCreateEventHandler) Type() string {
  395. return messageCreateEventType
  396. }
  397. // New returns a new instance of MessageCreate.
  398. func (eh messageCreateEventHandler) New() interface{} {
  399. return &MessageCreate{}
  400. }
  401. // Handle is the handler for MessageCreate events.
  402. func (eh messageCreateEventHandler) Handle(s *Session, i interface{}) {
  403. if t, ok := i.(*MessageCreate); ok {
  404. eh(s, t)
  405. }
  406. }
  407. // messageDeleteEventHandler is an event handler for MessageDelete events.
  408. type messageDeleteEventHandler func(*Session, *MessageDelete)
  409. // Type returns the event type for MessageDelete events.
  410. func (eh messageDeleteEventHandler) Type() string {
  411. return messageDeleteEventType
  412. }
  413. // New returns a new instance of MessageDelete.
  414. func (eh messageDeleteEventHandler) New() interface{} {
  415. return &MessageDelete{}
  416. }
  417. // Handle is the handler for MessageDelete events.
  418. func (eh messageDeleteEventHandler) Handle(s *Session, i interface{}) {
  419. if t, ok := i.(*MessageDelete); ok {
  420. eh(s, t)
  421. }
  422. }
  423. // messageDeleteBulkEventHandler is an event handler for MessageDeleteBulk events.
  424. type messageDeleteBulkEventHandler func(*Session, *MessageDeleteBulk)
  425. // Type returns the event type for MessageDeleteBulk events.
  426. func (eh messageDeleteBulkEventHandler) Type() string {
  427. return messageDeleteBulkEventType
  428. }
  429. // New returns a new instance of MessageDeleteBulk.
  430. func (eh messageDeleteBulkEventHandler) New() interface{} {
  431. return &MessageDeleteBulk{}
  432. }
  433. // Handle is the handler for MessageDeleteBulk events.
  434. func (eh messageDeleteBulkEventHandler) Handle(s *Session, i interface{}) {
  435. if t, ok := i.(*MessageDeleteBulk); ok {
  436. eh(s, t)
  437. }
  438. }
  439. // messageReactionAddEventHandler is an event handler for MessageReactionAdd events.
  440. type messageReactionAddEventHandler func(*Session, *MessageReactionAdd)
  441. // Type returns the event type for MessageReactionAdd events.
  442. func (eh messageReactionAddEventHandler) Type() string {
  443. return messageReactionAddEventType
  444. }
  445. // New returns a new instance of MessageReactionAdd.
  446. func (eh messageReactionAddEventHandler) New() interface{} {
  447. return &MessageReactionAdd{}
  448. }
  449. // Handle is the handler for MessageReactionAdd events.
  450. func (eh messageReactionAddEventHandler) Handle(s *Session, i interface{}) {
  451. if t, ok := i.(*MessageReactionAdd); ok {
  452. eh(s, t)
  453. }
  454. }
  455. // messageReactionRemoveEventHandler is an event handler for MessageReactionRemove events.
  456. type messageReactionRemoveEventHandler func(*Session, *MessageReactionRemove)
  457. // Type returns the event type for MessageReactionRemove events.
  458. func (eh messageReactionRemoveEventHandler) Type() string {
  459. return messageReactionRemoveEventType
  460. }
  461. // New returns a new instance of MessageReactionRemove.
  462. func (eh messageReactionRemoveEventHandler) New() interface{} {
  463. return &MessageReactionRemove{}
  464. }
  465. // Handle is the handler for MessageReactionRemove events.
  466. func (eh messageReactionRemoveEventHandler) Handle(s *Session, i interface{}) {
  467. if t, ok := i.(*MessageReactionRemove); ok {
  468. eh(s, t)
  469. }
  470. }
  471. // messageReactionRemoveAllEventHandler is an event handler for MessageReactionRemoveAll events.
  472. type messageReactionRemoveAllEventHandler func(*Session, *MessageReactionRemoveAll)
  473. // Type returns the event type for MessageReactionRemoveAll events.
  474. func (eh messageReactionRemoveAllEventHandler) Type() string {
  475. return messageReactionRemoveAllEventType
  476. }
  477. // New returns a new instance of MessageReactionRemoveAll.
  478. func (eh messageReactionRemoveAllEventHandler) New() interface{} {
  479. return &MessageReactionRemoveAll{}
  480. }
  481. // Handle is the handler for MessageReactionRemoveAll events.
  482. func (eh messageReactionRemoveAllEventHandler) Handle(s *Session, i interface{}) {
  483. if t, ok := i.(*MessageReactionRemoveAll); ok {
  484. eh(s, t)
  485. }
  486. }
  487. // messageUpdateEventHandler is an event handler for MessageUpdate events.
  488. type messageUpdateEventHandler func(*Session, *MessageUpdate)
  489. // Type returns the event type for MessageUpdate events.
  490. func (eh messageUpdateEventHandler) Type() string {
  491. return messageUpdateEventType
  492. }
  493. // New returns a new instance of MessageUpdate.
  494. func (eh messageUpdateEventHandler) New() interface{} {
  495. return &MessageUpdate{}
  496. }
  497. // Handle is the handler for MessageUpdate events.
  498. func (eh messageUpdateEventHandler) Handle(s *Session, i interface{}) {
  499. if t, ok := i.(*MessageUpdate); ok {
  500. eh(s, t)
  501. }
  502. }
  503. // presenceUpdateEventHandler is an event handler for PresenceUpdate events.
  504. type presenceUpdateEventHandler func(*Session, *PresenceUpdate)
  505. // Type returns the event type for PresenceUpdate events.
  506. func (eh presenceUpdateEventHandler) Type() string {
  507. return presenceUpdateEventType
  508. }
  509. // New returns a new instance of PresenceUpdate.
  510. func (eh presenceUpdateEventHandler) New() interface{} {
  511. return &PresenceUpdate{}
  512. }
  513. // Handle is the handler for PresenceUpdate events.
  514. func (eh presenceUpdateEventHandler) Handle(s *Session, i interface{}) {
  515. if t, ok := i.(*PresenceUpdate); ok {
  516. eh(s, t)
  517. }
  518. }
  519. // presencesReplaceEventHandler is an event handler for PresencesReplace events.
  520. type presencesReplaceEventHandler func(*Session, *PresencesReplace)
  521. // Type returns the event type for PresencesReplace events.
  522. func (eh presencesReplaceEventHandler) Type() string {
  523. return presencesReplaceEventType
  524. }
  525. // New returns a new instance of PresencesReplace.
  526. func (eh presencesReplaceEventHandler) New() interface{} {
  527. return &PresencesReplace{}
  528. }
  529. // Handle is the handler for PresencesReplace events.
  530. func (eh presencesReplaceEventHandler) Handle(s *Session, i interface{}) {
  531. if t, ok := i.(*PresencesReplace); ok {
  532. eh(s, t)
  533. }
  534. }
  535. // rateLimitEventHandler is an event handler for RateLimit events.
  536. type rateLimitEventHandler func(*Session, *RateLimit)
  537. // Type returns the event type for RateLimit events.
  538. func (eh rateLimitEventHandler) Type() string {
  539. return rateLimitEventType
  540. }
  541. // Handle is the handler for RateLimit events.
  542. func (eh rateLimitEventHandler) Handle(s *Session, i interface{}) {
  543. if t, ok := i.(*RateLimit); ok {
  544. eh(s, t)
  545. }
  546. }
  547. // readyEventHandler is an event handler for Ready events.
  548. type readyEventHandler func(*Session, *Ready)
  549. // Type returns the event type for Ready events.
  550. func (eh readyEventHandler) Type() string {
  551. return readyEventType
  552. }
  553. // New returns a new instance of Ready.
  554. func (eh readyEventHandler) New() interface{} {
  555. return &Ready{}
  556. }
  557. // Handle is the handler for Ready events.
  558. func (eh readyEventHandler) Handle(s *Session, i interface{}) {
  559. if t, ok := i.(*Ready); ok {
  560. eh(s, t)
  561. }
  562. }
  563. // relationshipAddEventHandler is an event handler for RelationshipAdd events.
  564. type relationshipAddEventHandler func(*Session, *RelationshipAdd)
  565. // Type returns the event type for RelationshipAdd events.
  566. func (eh relationshipAddEventHandler) Type() string {
  567. return relationshipAddEventType
  568. }
  569. // New returns a new instance of RelationshipAdd.
  570. func (eh relationshipAddEventHandler) New() interface{} {
  571. return &RelationshipAdd{}
  572. }
  573. // Handle is the handler for RelationshipAdd events.
  574. func (eh relationshipAddEventHandler) Handle(s *Session, i interface{}) {
  575. if t, ok := i.(*RelationshipAdd); ok {
  576. eh(s, t)
  577. }
  578. }
  579. // relationshipRemoveEventHandler is an event handler for RelationshipRemove events.
  580. type relationshipRemoveEventHandler func(*Session, *RelationshipRemove)
  581. // Type returns the event type for RelationshipRemove events.
  582. func (eh relationshipRemoveEventHandler) Type() string {
  583. return relationshipRemoveEventType
  584. }
  585. // New returns a new instance of RelationshipRemove.
  586. func (eh relationshipRemoveEventHandler) New() interface{} {
  587. return &RelationshipRemove{}
  588. }
  589. // Handle is the handler for RelationshipRemove events.
  590. func (eh relationshipRemoveEventHandler) Handle(s *Session, i interface{}) {
  591. if t, ok := i.(*RelationshipRemove); ok {
  592. eh(s, t)
  593. }
  594. }
  595. // resumedEventHandler is an event handler for Resumed events.
  596. type resumedEventHandler func(*Session, *Resumed)
  597. // Type returns the event type for Resumed events.
  598. func (eh resumedEventHandler) Type() string {
  599. return resumedEventType
  600. }
  601. // New returns a new instance of Resumed.
  602. func (eh resumedEventHandler) New() interface{} {
  603. return &Resumed{}
  604. }
  605. // Handle is the handler for Resumed events.
  606. func (eh resumedEventHandler) Handle(s *Session, i interface{}) {
  607. if t, ok := i.(*Resumed); ok {
  608. eh(s, t)
  609. }
  610. }
  611. // typingStartEventHandler is an event handler for TypingStart events.
  612. type typingStartEventHandler func(*Session, *TypingStart)
  613. // Type returns the event type for TypingStart events.
  614. func (eh typingStartEventHandler) Type() string {
  615. return typingStartEventType
  616. }
  617. // New returns a new instance of TypingStart.
  618. func (eh typingStartEventHandler) New() interface{} {
  619. return &TypingStart{}
  620. }
  621. // Handle is the handler for TypingStart events.
  622. func (eh typingStartEventHandler) Handle(s *Session, i interface{}) {
  623. if t, ok := i.(*TypingStart); ok {
  624. eh(s, t)
  625. }
  626. }
  627. // userGuildSettingsUpdateEventHandler is an event handler for UserGuildSettingsUpdate events.
  628. type userGuildSettingsUpdateEventHandler func(*Session, *UserGuildSettingsUpdate)
  629. // Type returns the event type for UserGuildSettingsUpdate events.
  630. func (eh userGuildSettingsUpdateEventHandler) Type() string {
  631. return userGuildSettingsUpdateEventType
  632. }
  633. // New returns a new instance of UserGuildSettingsUpdate.
  634. func (eh userGuildSettingsUpdateEventHandler) New() interface{} {
  635. return &UserGuildSettingsUpdate{}
  636. }
  637. // Handle is the handler for UserGuildSettingsUpdate events.
  638. func (eh userGuildSettingsUpdateEventHandler) Handle(s *Session, i interface{}) {
  639. if t, ok := i.(*UserGuildSettingsUpdate); ok {
  640. eh(s, t)
  641. }
  642. }
  643. // userSettingsUpdateEventHandler is an event handler for UserSettingsUpdate events.
  644. type userSettingsUpdateEventHandler func(*Session, *UserSettingsUpdate)
  645. // Type returns the event type for UserSettingsUpdate events.
  646. func (eh userSettingsUpdateEventHandler) Type() string {
  647. return userSettingsUpdateEventType
  648. }
  649. // New returns a new instance of UserSettingsUpdate.
  650. func (eh userSettingsUpdateEventHandler) New() interface{} {
  651. return &UserSettingsUpdate{}
  652. }
  653. // Handle is the handler for UserSettingsUpdate events.
  654. func (eh userSettingsUpdateEventHandler) Handle(s *Session, i interface{}) {
  655. if t, ok := i.(*UserSettingsUpdate); ok {
  656. eh(s, t)
  657. }
  658. }
  659. // userUpdateEventHandler is an event handler for UserUpdate events.
  660. type userUpdateEventHandler func(*Session, *UserUpdate)
  661. // Type returns the event type for UserUpdate events.
  662. func (eh userUpdateEventHandler) Type() string {
  663. return userUpdateEventType
  664. }
  665. // New returns a new instance of UserUpdate.
  666. func (eh userUpdateEventHandler) New() interface{} {
  667. return &UserUpdate{}
  668. }
  669. // Handle is the handler for UserUpdate events.
  670. func (eh userUpdateEventHandler) Handle(s *Session, i interface{}) {
  671. if t, ok := i.(*UserUpdate); ok {
  672. eh(s, t)
  673. }
  674. }
  675. // voiceServerUpdateEventHandler is an event handler for VoiceServerUpdate events.
  676. type voiceServerUpdateEventHandler func(*Session, *VoiceServerUpdate)
  677. // Type returns the event type for VoiceServerUpdate events.
  678. func (eh voiceServerUpdateEventHandler) Type() string {
  679. return voiceServerUpdateEventType
  680. }
  681. // New returns a new instance of VoiceServerUpdate.
  682. func (eh voiceServerUpdateEventHandler) New() interface{} {
  683. return &VoiceServerUpdate{}
  684. }
  685. // Handle is the handler for VoiceServerUpdate events.
  686. func (eh voiceServerUpdateEventHandler) Handle(s *Session, i interface{}) {
  687. if t, ok := i.(*VoiceServerUpdate); ok {
  688. eh(s, t)
  689. }
  690. }
  691. // voiceStateUpdateEventHandler is an event handler for VoiceStateUpdate events.
  692. type voiceStateUpdateEventHandler func(*Session, *VoiceStateUpdate)
  693. // Type returns the event type for VoiceStateUpdate events.
  694. func (eh voiceStateUpdateEventHandler) Type() string {
  695. return voiceStateUpdateEventType
  696. }
  697. // New returns a new instance of VoiceStateUpdate.
  698. func (eh voiceStateUpdateEventHandler) New() interface{} {
  699. return &VoiceStateUpdate{}
  700. }
  701. // Handle is the handler for VoiceStateUpdate events.
  702. func (eh voiceStateUpdateEventHandler) Handle(s *Session, i interface{}) {
  703. if t, ok := i.(*VoiceStateUpdate); ok {
  704. eh(s, t)
  705. }
  706. }
  707. func handlerForInterface(handler interface{}) EventHandler {
  708. switch v := handler.(type) {
  709. case func(*Session, interface{}):
  710. return interfaceEventHandler(v)
  711. case func(*Session, *ChannelCreate):
  712. return channelCreateEventHandler(v)
  713. case func(*Session, *ChannelDelete):
  714. return channelDeleteEventHandler(v)
  715. case func(*Session, *ChannelPinsUpdate):
  716. return channelPinsUpdateEventHandler(v)
  717. case func(*Session, *ChannelUpdate):
  718. return channelUpdateEventHandler(v)
  719. case func(*Session, *Connect):
  720. return connectEventHandler(v)
  721. case func(*Session, *Disconnect):
  722. return disconnectEventHandler(v)
  723. case func(*Session, *Event):
  724. return eventEventHandler(v)
  725. case func(*Session, *GuildBanAdd):
  726. return guildBanAddEventHandler(v)
  727. case func(*Session, *GuildBanRemove):
  728. return guildBanRemoveEventHandler(v)
  729. case func(*Session, *GuildCreate):
  730. return guildCreateEventHandler(v)
  731. case func(*Session, *GuildDelete):
  732. return guildDeleteEventHandler(v)
  733. case func(*Session, *GuildEmojisUpdate):
  734. return guildEmojisUpdateEventHandler(v)
  735. case func(*Session, *GuildIntegrationsUpdate):
  736. return guildIntegrationsUpdateEventHandler(v)
  737. case func(*Session, *GuildMemberAdd):
  738. return guildMemberAddEventHandler(v)
  739. case func(*Session, *GuildMemberRemove):
  740. return guildMemberRemoveEventHandler(v)
  741. case func(*Session, *GuildMemberUpdate):
  742. return guildMemberUpdateEventHandler(v)
  743. case func(*Session, *GuildMembersChunk):
  744. return guildMembersChunkEventHandler(v)
  745. case func(*Session, *GuildRoleCreate):
  746. return guildRoleCreateEventHandler(v)
  747. case func(*Session, *GuildRoleDelete):
  748. return guildRoleDeleteEventHandler(v)
  749. case func(*Session, *GuildRoleUpdate):
  750. return guildRoleUpdateEventHandler(v)
  751. case func(*Session, *GuildUpdate):
  752. return guildUpdateEventHandler(v)
  753. case func(*Session, *MessageAck):
  754. return messageAckEventHandler(v)
  755. case func(*Session, *MessageCreate):
  756. return messageCreateEventHandler(v)
  757. case func(*Session, *MessageDelete):
  758. return messageDeleteEventHandler(v)
  759. case func(*Session, *MessageDeleteBulk):
  760. return messageDeleteBulkEventHandler(v)
  761. case func(*Session, *MessageReactionAdd):
  762. return messageReactionAddEventHandler(v)
  763. case func(*Session, *MessageReactionRemove):
  764. return messageReactionRemoveEventHandler(v)
  765. case func(*Session, *MessageReactionRemoveAll):
  766. return messageReactionRemoveAllEventHandler(v)
  767. case func(*Session, *MessageUpdate):
  768. return messageUpdateEventHandler(v)
  769. case func(*Session, *PresenceUpdate):
  770. return presenceUpdateEventHandler(v)
  771. case func(*Session, *PresencesReplace):
  772. return presencesReplaceEventHandler(v)
  773. case func(*Session, *RateLimit):
  774. return rateLimitEventHandler(v)
  775. case func(*Session, *Ready):
  776. return readyEventHandler(v)
  777. case func(*Session, *RelationshipAdd):
  778. return relationshipAddEventHandler(v)
  779. case func(*Session, *RelationshipRemove):
  780. return relationshipRemoveEventHandler(v)
  781. case func(*Session, *Resumed):
  782. return resumedEventHandler(v)
  783. case func(*Session, *TypingStart):
  784. return typingStartEventHandler(v)
  785. case func(*Session, *UserGuildSettingsUpdate):
  786. return userGuildSettingsUpdateEventHandler(v)
  787. case func(*Session, *UserSettingsUpdate):
  788. return userSettingsUpdateEventHandler(v)
  789. case func(*Session, *UserUpdate):
  790. return userUpdateEventHandler(v)
  791. case func(*Session, *VoiceServerUpdate):
  792. return voiceServerUpdateEventHandler(v)
  793. case func(*Session, *VoiceStateUpdate):
  794. return voiceStateUpdateEventHandler(v)
  795. }
  796. return nil
  797. }
  798. func init() {
  799. registerInterfaceProvider(channelCreateEventHandler(nil))
  800. registerInterfaceProvider(channelDeleteEventHandler(nil))
  801. registerInterfaceProvider(channelPinsUpdateEventHandler(nil))
  802. registerInterfaceProvider(channelUpdateEventHandler(nil))
  803. registerInterfaceProvider(guildBanAddEventHandler(nil))
  804. registerInterfaceProvider(guildBanRemoveEventHandler(nil))
  805. registerInterfaceProvider(guildCreateEventHandler(nil))
  806. registerInterfaceProvider(guildDeleteEventHandler(nil))
  807. registerInterfaceProvider(guildEmojisUpdateEventHandler(nil))
  808. registerInterfaceProvider(guildIntegrationsUpdateEventHandler(nil))
  809. registerInterfaceProvider(guildMemberAddEventHandler(nil))
  810. registerInterfaceProvider(guildMemberRemoveEventHandler(nil))
  811. registerInterfaceProvider(guildMemberUpdateEventHandler(nil))
  812. registerInterfaceProvider(guildMembersChunkEventHandler(nil))
  813. registerInterfaceProvider(guildRoleCreateEventHandler(nil))
  814. registerInterfaceProvider(guildRoleDeleteEventHandler(nil))
  815. registerInterfaceProvider(guildRoleUpdateEventHandler(nil))
  816. registerInterfaceProvider(guildUpdateEventHandler(nil))
  817. registerInterfaceProvider(messageAckEventHandler(nil))
  818. registerInterfaceProvider(messageCreateEventHandler(nil))
  819. registerInterfaceProvider(messageDeleteEventHandler(nil))
  820. registerInterfaceProvider(messageDeleteBulkEventHandler(nil))
  821. registerInterfaceProvider(messageReactionAddEventHandler(nil))
  822. registerInterfaceProvider(messageReactionRemoveEventHandler(nil))
  823. registerInterfaceProvider(messageReactionRemoveAllEventHandler(nil))
  824. registerInterfaceProvider(messageUpdateEventHandler(nil))
  825. registerInterfaceProvider(presenceUpdateEventHandler(nil))
  826. registerInterfaceProvider(presencesReplaceEventHandler(nil))
  827. registerInterfaceProvider(readyEventHandler(nil))
  828. registerInterfaceProvider(relationshipAddEventHandler(nil))
  829. registerInterfaceProvider(relationshipRemoveEventHandler(nil))
  830. registerInterfaceProvider(resumedEventHandler(nil))
  831. registerInterfaceProvider(typingStartEventHandler(nil))
  832. registerInterfaceProvider(userGuildSettingsUpdateEventHandler(nil))
  833. registerInterfaceProvider(userSettingsUpdateEventHandler(nil))
  834. registerInterfaceProvider(userUpdateEventHandler(nil))
  835. registerInterfaceProvider(voiceServerUpdateEventHandler(nil))
  836. registerInterfaceProvider(voiceStateUpdateEventHandler(nil))
  837. }