poketwo-next
Pokétwo brings the Pokémon experience to Discord. Catch randomly-spawning pokémon in your servers, trade them to expand your collection, battle with your friends to win rewards, and more.
This repository hosts the code for Pokétwo's rewrite, which is still in progress, expected to be released in August 2022. Looking for the stable version of Pokétwo? Click here.
Components
Pokétwo is a collection of smaller components:
Supporting Services
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
Command Modules
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
— (not yet implemented) battles between trainersmodule-shop
— (not yet implemented) the in-game item shopmodule-quests
— (not yet implemented) daily and weekly quests
Libraries
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
Deploying Pokétwo is not simple, and is not meant to be. We do not recommend attempting to build or host Pokétwo by yourself. Instead, use this link to add the production Pokétwo instance to your Discord server.
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.
License
This repository is licensed under the Mozilla Public License, version 2.0. If you wish to use or distribute this code, you may do so under the terms of the MPL. The full license can be found here.