From 77ebcf9d7b452cf2dccb5b10db5c0d7c9a554c6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Bersier?= Date: Sat, 12 Oct 2024 17:06:08 +0200 Subject: [PATCH] Put events in their own folder --- lib/events/AddReaction.ex | 14 ++++++++++++++ lib/events/RemoveReaction.ex | 14 ++++++++++++++ lib/events/messages.ex | 19 +++++++++++++++++++ lib/events/ready.ex | 10 ++++++++++ lib/haha_yes.ex | 12 ------------ lib/haha_yes/application.ex | 5 ++++- 6 files changed, 61 insertions(+), 13 deletions(-) create mode 100644 lib/events/AddReaction.ex create mode 100644 lib/events/RemoveReaction.ex create mode 100644 lib/events/messages.ex create mode 100644 lib/events/ready.ex delete mode 100644 lib/haha_yes.ex diff --git a/lib/events/AddReaction.ex b/lib/events/AddReaction.ex new file mode 100644 index 0000000..2cd1646 --- /dev/null +++ b/lib/events/AddReaction.ex @@ -0,0 +1,14 @@ +defmodule HahaYes.Events.AddReactionsConsumer do + @moduledoc """ + Triggered when reactions are added to a message. + + Used to handle starboard. + + TODO: Implement starboard + """ + use Nostrum.Consumer + + def handle_event({:MESSAGE_REACTION_ADD, _reacts, _ws_state}) do + IO.puts("Someone added reaction.") + end +end diff --git a/lib/events/RemoveReaction.ex b/lib/events/RemoveReaction.ex new file mode 100644 index 0000000..417f077 --- /dev/null +++ b/lib/events/RemoveReaction.ex @@ -0,0 +1,14 @@ +defmodule HahaYes.Events.RemoveReactionsConsumer do + @moduledoc """ + Triggered when reactions are added to a message. + + Used to handle starboard. + + TODO: Implement starboard + """ + use Nostrum.Consumer + + def handle_event({:MESSAGE_REACTION_REMOVE, _reacts, _ws_state}) do + IO.puts("Someone removed reaction.") + end +end diff --git a/lib/events/messages.ex b/lib/events/messages.ex new file mode 100644 index 0000000..a4af7a7 --- /dev/null +++ b/lib/events/messages.ex @@ -0,0 +1,19 @@ +defmodule HahaYes.Events.MessagesConsumer do + @moduledoc """ + Parse messages to execute commands + """ + + use Nostrum.Consumer + + def handle_event({:MESSAGE_CREATE, msg, _ws_state}) when msg.author.bot != true do + if String.starts_with?(msg.content, "h3h3 ") do + msg.content + |> String.replace("h3h3 ", "") + |> String.split(" ") + |> Enum.at(0) + |> String.downcase() + |> String.capitalize() + |> then(& apply(String.to_atom("#{HahaYes.Commands}.#{&1}"), :execute, [msg])) + end + end +end diff --git a/lib/events/ready.ex b/lib/events/ready.ex new file mode 100644 index 0000000..1408fc8 --- /dev/null +++ b/lib/events/ready.ex @@ -0,0 +1,10 @@ +defmodule HahaYes.Events.ReadyConsumer do + use Nostrum.Consumer + + def handle_event({:READY, event, _ws_state}) do + IO.puts(""" + #{event.user.username} (#{event.user.id}) is ready! + I am in #{length(event.guilds)} servers! + """) + end +end diff --git a/lib/haha_yes.ex b/lib/haha_yes.ex deleted file mode 100644 index 6c1a606..0000000 --- a/lib/haha_yes.ex +++ /dev/null @@ -1,12 +0,0 @@ -defmodule HahaConsumer do - use Nostrum.Consumer - - def handle_event({:MESSAGE_CREATE, msg, _ws_state}) when msg.author.bot != true do - if String.starts_with?(msg.content, "h3h3 ") do - msg.content - |> String.replace("h3h3 ", "") - |> String.split(" ") - |> then(& apply(HahaCommands, String.to_atom(Enum.at(&1, 0)), [msg])) - end - end -end diff --git a/lib/haha_yes/application.ex b/lib/haha_yes/application.ex index fce7547..82c3ff6 100644 --- a/lib/haha_yes/application.ex +++ b/lib/haha_yes/application.ex @@ -8,7 +8,10 @@ defmodule HahaYes.Application do @impl true def start(_type, _args) do children = [ - HahaConsumer + HahaYes.Events.MessagesConsumer, + HahaYes.Events.ReadyConsumer, + HahaYes.Events.AddReactionsConsumer, + HahaYes.Events.RemoveReactionsConsumer # Starts a worker by calling: HahaYes.Worker.start_link(arg) # {HahaYes.Worker, arg} ]