aboutsummaryrefslogtreecommitdiff
path: root/lib/message.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/message.ex')
-rw-r--r--lib/message.ex47
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/message.ex b/lib/message.ex
new file mode 100644
index 0000000..f04e1e7
--- /dev/null
+++ b/lib/message.ex
@@ -0,0 +1,47 @@
+require Logger
+
+alias Nostrum.Struct.Message
+alias Nostrum.Struct.User
+alias Nostrum.Api
+
+defmodule Thulani.Message do
+ @prefix Application.compile_env(:thulani, :prefix, "!thulani")
+
+ @spec message(Message.t()) :: {:ok, String.t()} | :ignore
+ def message(%Message{
+ content: @prefix <> rest,
+ guild_id: guild_id,
+ author: %User{
+ bot: nil
+ }
+ })
+ when guild_id != nil do
+ {:ok, rest}
+ end
+
+ def message(%Message{
+ guild_id: guild_id,
+ author: %User{
+ username: username,
+ discriminator: discriminator,
+ bot: bot
+ }
+ })
+ when guild_id != nil do
+ {:ok, guild} = Api.get_guild(guild_id)
+
+ Logger.debug(%{
+ ignored: true,
+ guild: guild.name,
+ author: "#{username}##{discriminator} (bot: #{bot})"
+ })
+
+ :ignore
+ end
+
+ def message(msg) do
+ Logger.debug(%{message: "unmatched message", msg: msg})
+
+ :ignore
+ end
+end