A Better Discord bot in Rust & Elixer.
Better-Pokétwo is a collection of smaller components:
These services handle important tasks and are relied on by other modules.
database
— handles database operations, accepts GRPC requestsgateway
— handles connections to Discord Gateway, sends events to RabbitMQimgen
— handles image generation, accepts GRPC requests
These services consume Discord events from RabbitMQ, including commands and messages.
module-pokedex
— Pokédex and Pokémon inventory-related commandsmodule-catching
— spawning and catching of Pokémonmodule-general
— miscellaneous commands not belonging to any other categorymodule-market
— the global Pokémon marketplacemodule-auctions
— (not yet implemented) Pokémon auction functionalitymodule-battling
— battles between trainersmodule-shop
— the in-game item shopmodule-quests
— daily and weekly quests
These components are shared code used by other services.
command-framework
— primary slash command handler frameworkcommand-framework-macros
— macros used for the command frameworkemojis
— Pokétwo's custom emoji librarygateway-client
— client that consumes events from RabbitMQi18n-rust
— enables localization of messagesprotobuf
— Protobuf declarations shared across all componentsprotobuf-elixir
— generated Protobuf code for Elixirprotobuf-rust
— generated Protobuf code for Rustresources
— folder for translations and other static files
Deploying Better-Pokétwo is not simple, and is not meant to be. If persistent then DM for setup and other features to buy.
If you would still like to run your own instance, perhaps for development purposes, and you know what you are doing, a sample docker-compose.yml is provided. As of now, however, there is no other documentation or instructions for building, and no support whatsoever will be provided.
I'm open to contributions. However, make an issue first if you want to contribute to the bot describing changes & potential.