Irene is the server admin bot for \<Erythro>. It has a wide variety of features, and is in constant development.
Related Discord bots: Polybius, Puck, Wowhead Digest, Blizz CS
A frequently-updated list of commands can always be accessed via the /help
command of the bot. The following list may not always include the most
recently added commands.
/help
displays help for a command, or lists all commands./about
displays stats and info about the current Irene build./invite
gets the invite link for the guild server./class-discord
gets invite links for class discords./rank
manages a user's rank and guilds./roles
manages a user's own roles (pings and guilds)./raid
displays and manages raid info./tag
displays and manages copy/pasted texts./farm
displays farming routes for mats./cap
displays the current caps for timegated resources./wow-token
displays the current token price./solve
solves various in-game puzzles./translate
translates text./best-of
manages messages on the starboard./slowmode
manages slowmode for channels./roll
chooses random numbers./random
contains various randomization utilities./mimic
randomizes text as in-game languages./irene-status
modifies Irene's Discord status.Commands/
This directory contains definitions for all Discord application commands.
(If a command has related context menu commands, the classes are included
in the same file.) This is as thin a wrapper around the implementation
as possible, as D#+ cannot be easily mocked for testing. Implementation
is always in a corresponding class inside Irene.Modules
.
Modules/
This directory contains different "modules" of functionality which Irene
provides. This includes implementations for the commands found in Commands/
,
but also other functionality (e.g. RecurringEvents
) which don't directly
interface with commands.
Interactables/
This directory contains classes that use Discord message components to
implement common functionality. Instantiating these classes is often a
two-stage process, as the Interactable
itself often holds a reference
to its containing message. This is passed in as a future, and then later
set when the containing message has been created.
Libs/
This directory contains library modules which are completely independent of Irene. These libraries are designed with interfaces allowing them to simply be dropped in to other projects which require their functionality.
Utils/
This directory contains (loosely categorized) standalone utility methods, many of which are extension methods, and therefore require their own static classes.
config/
This directory contains settings files, including many API tokens/secrets
which are not synced with the remote repo (excluded through .gitignore
).
These files must be created and populated with the corresponding secure
data, which must be obtained from their original sources.
data/
This directory contains (text-based) data for other modules to use. Some of the files in here contain save data for various modules, and is periodically copied back from the running bot and updated as part of the repo. Some of the files are read and cached on program start, and require a restart of the bot before any changes are reflected.
click image for interactive visualization