From fd79ed33c977361cff69ef668e5e86d4764a7d16 Mon Sep 17 00:00:00 2001 From: ProjectMoon Date: Sun, 1 Nov 2020 21:49:36 +0000 Subject: [PATCH] Created Roadmap (markdown) --- Roadmap.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Roadmap.md diff --git a/Roadmap.md b/Roadmap.md new file mode 100644 index 0000000..a344eb5 --- /dev/null +++ b/Roadmap.md @@ -0,0 +1,52 @@ +# Roadmap + +This is the roadmap for functionality to be added to the dicebot. Features are listed in order of planned implementation, mostly because at this state of development, the bigger features require implementation of less exciting groundwork. + +## Immediate +What is currently upcoming. + +| Feature | Description | Depends on | +| --------------- | --------------- | --------------- | +| **Room State Management** | Bot keeps track of metadata relating to rooms it's in. | N/A | +| **Private Commands** | Manage all bot functionality from a private room | Room State Management | + +### Room State Management + +Room state management involves the dice bot keeping track of what rooms it is in and what users are in them. This feature is 100% invisible to the end user, but is a necessary prerequisite for managing the dicebot in a direct message. + +* One-time sync of the dicebot's current rooms into the database (sort of a migration, but technically not?) +* When a user joins or leaves a room, add/remove them to/from a users list for the room. +* Probably useful to maintain a two-way relation: room -> list of users, user -> list of rooms. + +This feature will be further expanded as necessary. + +Database implementation: + +* New keyspace: `rooms`. +* `rooms|by_user|` = `list of user's rooms`. +* `rooms|list` = `list of dicebot's rooms`. + +### Private Commands + +Allow the user to manage the dicebot in a direct message. The user should be able to tell the bot which room to manage, and any commands executed in the direct message would be applied to the given room (until the user switches to another room). Only certain commands would be allowed in the direct message, namely anything involved with creating or modifying data (variables, etc). + +This will require some internal changes: + +* Dicebot must now be aware of what room a user is managing in a direct message. This may be the first introduction of a proper state struct for users in the database. Possibly new keyspace `state`, with just a key name of username. + +## Intermediate + +Things that are easier to implement, but not yet scheduled. + +| Feature | Description | Depends on | +| --------------- | --------------- | --------------- | +| **Resource Counting** | Creation of counters that can go up and down. System agnostic. | N/A | +| **CofD Game Management** | Management of slightly complex CofD things like health. | N/A | + +## Future + +Things in the far future that require a lot of groundwork or other features to be finished first. + +| Feature | Description | Depends on | +| --------------- | --------------- | --------------- | +| **Character Sheet Integration** | Integrate with an external online character sheet service. | Existence of said service, many dice bot features. | \ No newline at end of file