Skip to content

cyteon/discord_gleam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

discord_gleam

Package Version Hex Docs

gleam add discord_gleam
import discord_gleam
import discord_gleam/event_handler
import discord_gleam/types/message
import discord_gleam/discord/intents
import gleam/list
import gleam/string
import logging

pub fn main() {
  logging.configure()
  logging.set_level(logging.Info)

  let bot = discord_gleam.bot("YOUR TOKEN", "YOUR CLIENT ID", intents.default())

  discord_gleam.run(bot, [event_handler])
}

fn event_handler(bot, packet: event_handler.Packet) {
  case packet {
    event_handler.MessagePacket(message) -> {
      logging.log(logging.Info, "Got message: " <> message.d.content)

      case message.d.content {
        "!ping" -> {
          discord_gleam.send_message(bot, message.d.channel_id, "Pong!", [])

          Nil
        }

        _ -> Nil
      }
    }
    
    _ -> Nil
  }
}

Further documentation can be found at https://hexdocs.pm/discord_gleam.

Development

gleam test  # Run the tests

Features:

Feature Status
Basic events
Sending messages
Ban/kick
Deleting messages
Embeds
Basic Slash commands
Message Cache
Intents ✅*

✅ - Done | 🔨 - In Progress | 📆 - Planned | ❌ - Not Planned
* all intents are implemented, but not all are used yet

Supported events:

  • READY
  • INTERACTION_CREATE

Intent: guild_messages/direct_messages (optional: message_content)

  • MESSAGE_CREATE
  • MESSAGE_DELETE
  • MESSAGE_UPDATE
  • MESSAGE_DELETE_BULK

Intent: guilds

  • GUILD_CREATE
  • GUILD_UPDATE
  • GUILD_DELETE
  • CHANNEL_CREATE
  • CHANNEL_UPDATE
  • CHANNEL_DELETE
  • CHANNEL_PINS_UPDATE
  • THREAD_CREATE
  • THREAD_UPDATE
  • THREAD_DELETE
  • THREAD_LIST_SYNC
  • THREAD_MEMBER_UPDATE
  • THREAD_MEMBERS_UPDATE
  • STAGE_INSTANCE_CREATE
  • STAGE_INSTANCE_UPDATE
  • STAGE_INSTANCE_DELETE
  • GUILD_ROLE_CREATE
  • GUILD_ROLE_UPDATE
  • GUILD_ROLE_DELETE

Intent: guild_members

  • GUILD_MEMBER_ADD
  • GUILD_MEMBER_UPDATE
  • GUILD_MEMBER_REMOVE
  • GUILD_MEMBERS_CHUNK
  • THREAD_MEMBERS_UPDATE

Intent: guild_moderation

  • GUILD_AUDIT_LOG_ENTRY_CREATE
  • GUILD_BAN_ADD
  • GUILD_BAN_REMOVE

Intent: guild_expressions

  • GUILD_EMOJIS_UPDATE
  • GUILD_STICKERS_UPDATE
  • GUILD_SOUNDBOARD_SOUND_CREATE
  • GUILD_SOUNDBOARD_SOUND_UPDATE
  • GUILD_SOUNDBOARD_SOUND_DELETE
  • GUILD_SOUNDBOARD_SOUNDS_UPDATE

Intent: guild_integrations

  • GUILD_INTEGRATIONS_UPDATE
  • INTEGRATION_CREATE
  • INTEGRATION_UPDATE
  • INTEGRATION_DELETE

Intent: guild_webhooks

  • WEBHOOKS_UPDATE

Intent: guild_invites

  • INVITE_CREATE
  • INVITE_DELETE

Intent: guild_voice_states

  • VOICE_CHANNEL_EFFECT_SEND
  • VOICE_STATE_UPDATE

Intent: guild_presences

  • PRESENCE_UPDATE

Intent: guild_message_reactions/direct_message_reactions

  • MESSAGE_REACTION_ADD
  • MESSAGE_REACTION_REMOVE
  • MESSAGE_REACTION_REMOVE_ALL
  • MESSAGE_REACTION_REMOVE_EMOJI

Intent: guild_message_typing/direct_message_typing

  • TYPING_START

Intent: guild_scheduled_events

  • GUILD_SCHEDULED_EVENT_CREATE
  • GUILD_SCHEDULED_EVENT_UPDATE
  • GUILD_SCHEDULED_EVENT_DELETE
  • GUILD_SCHEDULED_EVENT_USER_ADD
  • GUILD_SCHEDULED_EVENT_USER_REMOVE

Intent: auto_moderation_configuration

  • AUTO_MODERATION_RULE_CREATE
  • AUTO_MODERATION_RULE_UPDATE
  • AUTO_MODERATION_RULE_DELETE

Intent: auto_moderation_execution

  • AUTO_MODERATION_ACTION_EXECUTION

Intent: guild_message_polls

  • MESSAGE_POLL_VOTE_ADD
  • MESSAGE_POLL_VOTE_REMOVE

Intent: direct_message_polls

  • MESSAGE_POLL_VOTE_ADD
  • MESSAGE_POLL_VOTE_REMOVE

About

A library to create discord bots in gleam

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages