├── .formatter.exs ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── config └── config.exs ├── docs └── Intro.md ├── lib ├── Cache │ ├── channels.ex │ ├── guilds.ex │ ├── priv_channels.ex │ ├── supervisor.ex │ ├── user.ex │ └── utility.ex ├── Cogs │ ├── command_handler.ex │ ├── event_handler.ex │ └── event_registry.ex ├── Discord │ ├── Endpoints │ │ ├── channels.ex │ │ ├── guilds.ex │ │ ├── invites.ex │ │ ├── users.ex │ │ └── webhooks.ex │ ├── Gateway │ │ ├── gateway.ex │ │ ├── manager.ex │ │ ├── payloads.ex │ │ ├── protocol.ex │ │ └── ratelimiter.ex │ ├── api.ex │ ├── events.ex │ ├── rate_limits.ex │ ├── rate_manager.ex │ └── types.ex ├── EventStage │ ├── cacher.ex │ ├── commandstage.ex │ ├── event_buffer.ex │ ├── event_dispatcher.ex │ ├── eventstage.ex │ ├── stage_supervisor.ex │ └── tasker.ex ├── Structs │ ├── Channels │ │ ├── Invite │ │ │ ├── invite.ex │ │ │ ├── invite_channel.ex │ │ │ └── invite_guild.ex │ │ ├── StageVoiceChannel.ex │ │ ├── channel.ex │ │ ├── channel_category.ex │ │ ├── dm_channel.ex │ │ ├── group_dm_channel.ex │ │ ├── news_channel.ex │ │ ├── overwrite.ex │ │ ├── store_channel.ex │ │ ├── text_channel.ex │ │ └── voice_channel.ex │ ├── Guild │ │ ├── emoji.ex │ │ ├── guild.ex │ │ ├── guild_member.ex │ │ ├── integration.ex │ │ ├── presence.ex │ │ └── role.ex │ ├── Messages │ │ ├── Embed │ │ │ ├── attachment.ex │ │ │ ├── author.ex │ │ │ ├── embed.ex │ │ │ ├── field.ex │ │ │ ├── footer.ex │ │ │ ├── image.ex │ │ │ ├── provider.ex │ │ │ ├── thumbnail.ex │ │ │ └── video.ex │ │ ├── Reactions │ │ │ ├── emoji.ex │ │ │ └── reaction.ex │ │ ├── message.ex │ │ └── message_reference.ex │ ├── Users │ │ ├── user.ex │ │ └── user_guild.ex │ ├── Voice │ │ ├── voice.ex │ │ ├── voice_region.ex │ │ └── voice_state.ex │ ├── audit_log.ex │ ├── permissions.ex │ ├── structs.ex │ └── webhook.ex ├── Voice │ ├── controller.ex │ ├── gateway.ex │ ├── supervisor.ex │ └── udp.ex ├── cache.ex ├── client.ex ├── cogs.ex ├── event_macros.ex ├── events.ex └── mix │ └── tasks │ └── alchemy │ └── init.ex ├── mix.exs └── test ├── Structs └── Guild │ └── guild_test.exs ├── Voice └── supervisor_test.exs ├── alchemy_test.exs └── test_helper.exs /.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/.formatter.exs -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/README.md -------------------------------------------------------------------------------- /config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/config/config.exs -------------------------------------------------------------------------------- /docs/Intro.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/docs/Intro.md -------------------------------------------------------------------------------- /lib/Cache/channels.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Cache/channels.ex -------------------------------------------------------------------------------- /lib/Cache/guilds.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Cache/guilds.ex -------------------------------------------------------------------------------- /lib/Cache/priv_channels.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Cache/priv_channels.ex -------------------------------------------------------------------------------- /lib/Cache/supervisor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Cache/supervisor.ex -------------------------------------------------------------------------------- /lib/Cache/user.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Cache/user.ex -------------------------------------------------------------------------------- /lib/Cache/utility.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Cache/utility.ex -------------------------------------------------------------------------------- /lib/Cogs/command_handler.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Cogs/command_handler.ex -------------------------------------------------------------------------------- /lib/Cogs/event_handler.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Cogs/event_handler.ex -------------------------------------------------------------------------------- /lib/Cogs/event_registry.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Cogs/event_registry.ex -------------------------------------------------------------------------------- /lib/Discord/Endpoints/channels.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/Endpoints/channels.ex -------------------------------------------------------------------------------- /lib/Discord/Endpoints/guilds.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/Endpoints/guilds.ex -------------------------------------------------------------------------------- /lib/Discord/Endpoints/invites.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/Endpoints/invites.ex -------------------------------------------------------------------------------- /lib/Discord/Endpoints/users.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/Endpoints/users.ex -------------------------------------------------------------------------------- /lib/Discord/Endpoints/webhooks.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/Endpoints/webhooks.ex -------------------------------------------------------------------------------- /lib/Discord/Gateway/gateway.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/Gateway/gateway.ex -------------------------------------------------------------------------------- /lib/Discord/Gateway/manager.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/Gateway/manager.ex -------------------------------------------------------------------------------- /lib/Discord/Gateway/payloads.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/Gateway/payloads.ex -------------------------------------------------------------------------------- /lib/Discord/Gateway/protocol.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/Gateway/protocol.ex -------------------------------------------------------------------------------- /lib/Discord/Gateway/ratelimiter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/Gateway/ratelimiter.ex -------------------------------------------------------------------------------- /lib/Discord/api.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/api.ex -------------------------------------------------------------------------------- /lib/Discord/events.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/events.ex -------------------------------------------------------------------------------- /lib/Discord/rate_limits.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/rate_limits.ex -------------------------------------------------------------------------------- /lib/Discord/rate_manager.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/rate_manager.ex -------------------------------------------------------------------------------- /lib/Discord/types.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Discord/types.ex -------------------------------------------------------------------------------- /lib/EventStage/cacher.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/EventStage/cacher.ex -------------------------------------------------------------------------------- /lib/EventStage/commandstage.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/EventStage/commandstage.ex -------------------------------------------------------------------------------- /lib/EventStage/event_buffer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/EventStage/event_buffer.ex -------------------------------------------------------------------------------- /lib/EventStage/event_dispatcher.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/EventStage/event_dispatcher.ex -------------------------------------------------------------------------------- /lib/EventStage/eventstage.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/EventStage/eventstage.ex -------------------------------------------------------------------------------- /lib/EventStage/stage_supervisor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/EventStage/stage_supervisor.ex -------------------------------------------------------------------------------- /lib/EventStage/tasker.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/EventStage/tasker.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/Invite/invite.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/Invite/invite.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/Invite/invite_channel.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/Invite/invite_channel.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/Invite/invite_guild.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/Invite/invite_guild.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/StageVoiceChannel.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/StageVoiceChannel.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/channel.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/channel.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/channel_category.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/channel_category.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/dm_channel.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/dm_channel.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/group_dm_channel.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/group_dm_channel.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/news_channel.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/news_channel.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/overwrite.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/overwrite.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/store_channel.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/store_channel.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/text_channel.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/text_channel.ex -------------------------------------------------------------------------------- /lib/Structs/Channels/voice_channel.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Channels/voice_channel.ex -------------------------------------------------------------------------------- /lib/Structs/Guild/emoji.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Guild/emoji.ex -------------------------------------------------------------------------------- /lib/Structs/Guild/guild.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Guild/guild.ex -------------------------------------------------------------------------------- /lib/Structs/Guild/guild_member.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Guild/guild_member.ex -------------------------------------------------------------------------------- /lib/Structs/Guild/integration.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Guild/integration.ex -------------------------------------------------------------------------------- /lib/Structs/Guild/presence.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Guild/presence.ex -------------------------------------------------------------------------------- /lib/Structs/Guild/role.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Guild/role.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/Embed/attachment.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/Embed/attachment.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/Embed/author.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/Embed/author.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/Embed/embed.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/Embed/embed.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/Embed/field.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/Embed/field.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/Embed/footer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/Embed/footer.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/Embed/image.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/Embed/image.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/Embed/provider.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/Embed/provider.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/Embed/thumbnail.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/Embed/thumbnail.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/Embed/video.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/Embed/video.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/Reactions/emoji.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/Reactions/emoji.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/Reactions/reaction.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/Reactions/reaction.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/message.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/message.ex -------------------------------------------------------------------------------- /lib/Structs/Messages/message_reference.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Messages/message_reference.ex -------------------------------------------------------------------------------- /lib/Structs/Users/user.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Users/user.ex -------------------------------------------------------------------------------- /lib/Structs/Users/user_guild.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Users/user_guild.ex -------------------------------------------------------------------------------- /lib/Structs/Voice/voice.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Voice/voice.ex -------------------------------------------------------------------------------- /lib/Structs/Voice/voice_region.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Voice/voice_region.ex -------------------------------------------------------------------------------- /lib/Structs/Voice/voice_state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/Voice/voice_state.ex -------------------------------------------------------------------------------- /lib/Structs/audit_log.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/audit_log.ex -------------------------------------------------------------------------------- /lib/Structs/permissions.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/permissions.ex -------------------------------------------------------------------------------- /lib/Structs/structs.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/structs.ex -------------------------------------------------------------------------------- /lib/Structs/webhook.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Structs/webhook.ex -------------------------------------------------------------------------------- /lib/Voice/controller.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Voice/controller.ex -------------------------------------------------------------------------------- /lib/Voice/gateway.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Voice/gateway.ex -------------------------------------------------------------------------------- /lib/Voice/supervisor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Voice/supervisor.ex -------------------------------------------------------------------------------- /lib/Voice/udp.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/Voice/udp.ex -------------------------------------------------------------------------------- /lib/cache.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/cache.ex -------------------------------------------------------------------------------- /lib/client.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/client.ex -------------------------------------------------------------------------------- /lib/cogs.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/cogs.ex -------------------------------------------------------------------------------- /lib/event_macros.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/event_macros.ex -------------------------------------------------------------------------------- /lib/events.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/events.ex -------------------------------------------------------------------------------- /lib/mix/tasks/alchemy/init.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/lib/mix/tasks/alchemy/init.ex -------------------------------------------------------------------------------- /mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/mix.exs -------------------------------------------------------------------------------- /test/Structs/Guild/guild_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/test/Structs/Guild/guild_test.exs -------------------------------------------------------------------------------- /test/Voice/supervisor_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/test/Voice/supervisor_test.exs -------------------------------------------------------------------------------- /test/alchemy_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cronokirby/alchemy/HEAD/test/alchemy_test.exs -------------------------------------------------------------------------------- /test/test_helper.exs: -------------------------------------------------------------------------------- 1 | ExUnit.start() 2 | --------------------------------------------------------------------------------