aboutsummaryrefslogtreecommitdiff
path: root/lib/client/client.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/client/client.ml')
-rw-r--r--lib/client/client.ml116
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