diff options
| author | Adelyn Breedlove <[email protected]> | 2018-12-15 18:02:29 +0000 |
|---|---|---|
| committer | Adelyn Breedlove <[email protected]> | 2018-12-15 18:02:29 +0000 |
| commit | 910ce60bba69b961c82e29ff1bb63bf4d3fe5519 (patch) | |
| tree | 690861418bed15de47e7cf5672d96fdacc9abe5e /lib/client/client.ml | |
| parent | Merge branch 'patch-1' into 'master' (diff) | |
| parent | Merging (diff) | |
| download | disml-910ce60bba69b961c82e29ff1bb63bf4d3fe5519.tar.xz disml-910ce60bba69b961c82e29ff1bb63bf4d3fe5519.zip | |
Merge branch 'dev' into 'master'
Merge first semi-usable state of dev-branch in a while
See merge request Mishio595/disml!10
Diffstat (limited to 'lib/client/client.ml')
| -rw-r--r-- | lib/client/client.ml | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/lib/client/client.ml b/lib/client/client.ml deleted file mode 100644 index 9877714..0000000 --- a/lib/client/client.ml +++ /dev/null @@ -1,116 +0,0 @@ -open Async - -type t = { - sharder: Sharder.t Ivar.t; - (* events: (Events.t, Core_kernel.write) Bvar.t list; *) - mutable handler: Sharder.handler; - token: string; -} - -let make ?handler token = - let handler = match handler with - | Some h -> h - | None -> begin - Sharder.{ - ready = None; - resumed = None; - channel_create = None; - channel_delete = None; - channel_update = None; - channel_pins_update = None; - guild_create = None; - guild_delete = None; - guild_update = None; - guild_ban_add = None; - guild_ban_remove = None; - guild_emojis_update = None; - guild_integrations_update = None; - guild_member_add = None; - guild_member_remove = None; - guild_member_update = None; - guild_members_chunk = None; - guild_role_create = None; - guild_role_delete = None; - guild_role_update = None; - message_create = None; - message_delete = None; - message_update = None; - message_delete_bulk = None; - message_reaction_add = None; - message_reaction_remove = None; - message_reaction_remove_all = None; - presence_update = None; - typing_start = None; - user_update = None; - voice_state_update = None; - voice_server_update = None; - webhooks_update = None; - } - end in - { - sharder = Ivar.create (); - handler; - token; - } - -let start ?count client = - Sharder.start ?count ~handler:client.handler client.token - >>| fun sharder -> - Ivar.fill_if_empty client.sharder sharder; - client - -let on ev client fn = - client.handler <- (match ev with - | "READY" -> { client.handler with ready = Some(fn) } - | "RESUMED" -> { client.handler with resumed = Some(fn) } - | "CHANNEL_CREATE" -> { client.handler with channel_create = Some(fn) } - | "CHANNEL_DELETE" -> { client.handler with channel_delete = Some(fn) } - | "CHANNEL_UPDATE" -> { client.handler with channel_update = Some(fn) } - | "CHANNEL_PINS_UPDATE" -> { client.handler with channel_pins_update = Some(fn) } - | "GUILD_CREATE" -> { client.handler with guild_create = Some(fn) } - | "GUILD_DELETE" -> { client.handler with guild_delete = Some(fn) } - | "GUILD_UPDATE" -> { client.handler with guild_update = Some(fn) } - | "GUILD_BAN_ADD" -> { client.handler with guild_ban_add = Some(fn) } - | "GUILD_BAN_REMOVE" -> { client.handler with guild_ban_remove = Some(fn) } - | "GUILD_EMOJIS_UPDATE" -> { client.handler with guild_emojis_update = Some(fn) } - | "GUILD_INTEGRATIONS_UPDATE" -> { client.handler with guild_integrations_update = Some(fn) } - | "GUILD_MEMBER_ADD" -> { client.handler with guild_member_add = Some(fn) } - | "GUILD_MEMBER_REMOVE" -> { client.handler with guild_member_remove = Some(fn) } - | "GUILD_MEMBER_UPDATE" -> { client.handler with guild_member_update = Some(fn) } - | "GUILD_MEMBERS_CHUNK" -> { client.handler with guild_members_chunk = Some(fn) } - | "GUILD_ROLE_CREATE" -> { client.handler with guild_role_create = Some(fn) } - | "GUILD_ROLE_DELETE" -> { client.handler with guild_role_delete = Some(fn) } - | "GUILD_ROLE_UPDATE" -> { client.handler with guild_role_update = Some(fn) } - | "MESSAGE_CREATE" -> { client.handler with message_create = Some(fn) } - | "MESSAGE_DELETE" -> { client.handler with message_delete = Some(fn) } - | "MESSAGE_UPDATE" -> { client.handler with message_update = Some(fn) } - | "MESSAGE_DELETE_BULK" -> { client.handler with message_delete_bulk = Some(fn) } - | "MESSAGE_REACTION_ADD" -> { client.handler with message_reaction_add = Some(fn) } - | "MESSAGE_REACTION_REMOVE" -> { client.handler with message_reaction_remove = Some(fn) } - | "MESSAGE_REACTION_REMOVE_ALL" -> { client.handler with message_reaction_remove_all = Some(fn) } - | "PRESENCE_UPDATE" -> { client.handler with presence_update = Some(fn) } - | "TYPING_START" -> { client.handler with typing_start = Some(fn) } - | "USER_UPDATE" -> { client.handler with user_update = Some(fn) } - | "VOICE_STATE_UPDATE" -> { client.handler with voice_state_update = Some(fn) } - | "VOICE_SERVER_UPDATE" -> { client.handler with voice_server_update = Some(fn) } - | "WEBHOOKS_UPDATE" -> { client.handler with webhooks_update = Some(fn) } - | _ -> client.handler); - match Ivar.peek client.sharder with - | Some s -> Sharder.update_handler s client.handler; - | None -> () - - -let set_status client status = - Ivar.read client.sharder - >>= fun sharder -> - Sharder.set_status sharder status - -let set_status_with client f = - Ivar.read client.sharder - >>= fun sharder -> - Sharder.set_status_with sharder f - -let request_guild_members ~guild ?query ?limit client = - Ivar.read client.sharder - >>= fun sharder -> - Sharder.request_guild_members ~guild ?query ?limit sharder
\ No newline at end of file |