Files
plantid-discord-bot/lib/plantid_discord_bot.ex
T
2025-01-15 21:59:39 +01:00

37 lines
1.2 KiB
Elixir

defmodule PlantIdDiscordBot.Consumer do
@moduledoc """
A Discord bot that identifies plants from photos of their organs.
"""
use Nostrum.Consumer
alias Nostrum.Api
alias PlantIdDiscordBot.{Cog, Consumer}
@global_application_commands Consumer.Commands.global_application_commands()
def handle_event({:READY, _data, _ws_state}) do
Api.create_global_application_command(@global_application_commands)
Api.update_status(:online, "Guess the Plant | /help")
end
def handle_event({:INTERACTION_CREATE, %{data: %{name: command}} = interaction, _ws_state}) do
case command do
"source" -> Cog.Info.source(interaction)
"invite" -> Cog.Info.invite(interaction)
"help" -> Cog.Info.help(interaction)
"info" -> Cog.Info.info(interaction)
"stats" -> Cog.Info.stats(interaction)
"status" -> Cog.Info.status(interaction)
"servers" -> Cog.Info.servers(interaction)
"id" -> Cog.PlantNet.id(interaction)
end
end
def handle_event({:MESSAGE_CREATE, %{attachments: attachments} = message, _ws_state}) do
if length(attachments) > 0 do
# deprecated -> Nostrum.Api.Channel.start_typing/1 in v1.0
Api.start_typing!(message.channel_id)
Cog.PlantNetMessage.id(message)
end
end
end