eventhandlers.go 31 KB

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