diff options
| author | Adelyn Breelove <[email protected]> | 2018-12-14 11:53:25 -0700 |
|---|---|---|
| committer | Adelyn Breelove <[email protected]> | 2018-12-14 11:53:25 -0700 |
| commit | 4df67b173aa7d51f5bd2ce95e476d130a6f93fd6 (patch) | |
| tree | 3a351748ad4053e62a1efbcbb8624f14073a2a96 | |
| parent | Add a helper script for working with atdgen (diff) | |
| download | disml-4df67b173aa7d51f5bd2ce95e476d130a6f93fd6.tar.xz disml-4df67b173aa7d51f5bd2ce95e476d130a6f93fd6.zip | |
Working and pretty message replying!
| -rw-r--r-- | bin/handler.ml | 10 | ||||
| -rw-r--r-- | lib/models/message.ml | 5 | ||||
| -rw-r--r-- | lib/s.ml | 44 |
3 files changed, 56 insertions, 3 deletions
diff --git a/bin/handler.ml b/bin/handler.ml index 8ed55a6..74eaefb 100644 --- a/bin/handler.ml +++ b/bin/handler.ml @@ -1,9 +1,13 @@ module Make(Models : Disml.S.Models) = struct - (* open Core *) + open Core open Async - (* open Models *) + open Models open Disml.Event + let check_command (msg:Disml.Message_t.t) = + if String.is_prefix ~prefix:"!ping" msg.content then + Message.reply msg "Hello!" >>> ignore + let handle_event = function | HELLO _ -> print_endline "Received HELLO" | READY _ -> print_endline "Received READY" @@ -27,7 +31,7 @@ module Make(Models : Disml.S.Models) = struct | GUILD_ROLE_CREATE _ -> print_endline "Received GUILD_ROLE_CREATE" | GUILD_ROLE_UPDATE _ -> print_endline "Received GUILD_ROLE_UPDATE" | GUILD_ROLE_DELETE _ -> print_endline "Received GUILD_ROLE_DELETE" - | MESSAGE_CREATE _ -> print_endline "Received MESSAGE_CREATE" + | MESSAGE_CREATE msg -> check_command msg; print_endline "Received MESSAGE_CREATE" | MESSAGE_UPDATE _ -> print_endline "Received MESSAGE_UPDATE" | MESSAGE_DELETE _ -> print_endline "Received MESSAGE_DELETE" | MESSAGE_BULK_DELETE _ -> print_endline "Received MESSAGE_BULK_DELETE" diff --git a/lib/models/message.ml b/lib/models/message.ml index 36b7d4b..7849afe 100644 --- a/lib/models/message.ml +++ b/lib/models/message.ml @@ -1,2 +1,7 @@ module Make(Http : S.Http) = struct + let reply (message:Message_t.t) str = + let msg = `Assoc [ + ("content", `String str) + ] in + Http.create_message (string_of_int (message.channel_id)) (msg) end
\ No newline at end of file @@ -4,7 +4,51 @@ module type Token = sig val token : string end +module type Activity = sig end + +module type Attachment = sig end + +module type Ban = sig end + +module type Channel = sig end + +module type Embed = sig end + +module type Emoji = sig end + +module type Guild = sig end + +module type Member = sig end + +module type Message = sig + val reply : Message_t.t -> string -> Yojson.Safe.json Deferred.t +end + +module type Presence = sig end + +module type Reaction = sig end + +module type Role = sig end + +module type Snowflake = sig end + +module type User = sig end + module type Models = sig + module Activity : Activity + module Attachment : Attachment + module Ban : Ban + module Channel : Channel + module Embed : Embed + module Emoji : Emoji + module Guild : Guild + module Member : Member + module Message : Message + module Presence : Presence + module Reaction : Reaction + module Role : Role + module Snowflake : Snowflake + module User : User end module type Handler = sig |