diff options
| author | Adelyn Breelove <[email protected]> | 2019-01-21 08:52:33 -0700 |
|---|---|---|
| committer | Adelyn Breelove <[email protected]> | 2019-01-21 08:52:33 -0700 |
| commit | c3d6e15bb89d4a93a2fa486db6c8e126baf4da2e (patch) | |
| tree | 3fe6679ff4520899bab9ab9fb96145efd614a3a3 /lib/models/guild/member.ml | |
| parent | swap order of fields in example bot to reflect correct ordering (diff) | |
| download | disml-c3d6e15bb89d4a93a2fa486db6c8e126baf4da2e.tar.xz disml-c3d6e15bb89d4a93a2fa486db6c8e126baf4da2e.zip | |
folder restructure
Diffstat (limited to 'lib/models/guild/member.ml')
| -rw-r--r-- | lib/models/guild/member.ml | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/models/guild/member.ml b/lib/models/guild/member.ml new file mode 100644 index 0000000..25f2f75 --- /dev/null +++ b/lib/models/guild/member.ml @@ -0,0 +1,43 @@ +open Async +open Core +include Member_t + +let add_role ~(role:Role_t.t) member = + Http.add_member_role member.guild_id member.user.id role.id + >>| Result.map ~f:ignore + +let remove_role ~(role:Role_t.t) member = + Http.remove_member_role member.guild_id member.user.id role.id + >>| Result.map ~f:ignore + +let ban ?(reason="") ?(days=0) member = + Http.guild_ban_add member.guild_id member.user.id (`Assoc [ + ("delete-message-days", `Int days); + ("reason", `String reason); + ]) >>| Result.map ~f:ignore + +let kick ?reason member = + let payload = match reason with + | Some r -> `Assoc [("reason", `String r)] + | None -> `Null + in Http.remove_member member.guild_id member.user.id payload >>| Result.map ~f:ignore + +let mute member = + Http.edit_member member.guild_id member.user.id (`Assoc [ + ("mute", `Bool true); + ]) >>| Result.map ~f:ignore + +let deafen member = + Http.edit_member member.guild_id member.user.id (`Assoc [ + ("deaf", `Bool true); + ]) >>| Result.map ~f:ignore + +let unmute member = + Http.edit_member member.guild_id member.user.id (`Assoc [ + ("mute", `Bool false); + ]) >>| Result.map ~f:ignore + +let undeafen member = + Http.edit_member member.guild_id member.user.id (`Assoc [ + ("deaf", `Bool false); + ]) >>| Result.map ~f:ignore |