This module extends the functionality of the Discord bot for the mobile game Whiteout Survival. It aims to enhance user experience by adding commands and features that allow for better management of game-related data and interactions within the Discord community. The module will include commands for managing city aliases, resource registration, verification processes, data linkage, and optional features for gift code redemption and event reminders. A new database will be designed to support these features, along with robust data structures to represent cities and players.
Functional Requirements
1. addAlias Command
Description: Adds a new alias for a specific city.
Command: !addAlias <city_id> <alias>
Acceptance Criteria:
The command stores the alias in the database associated with the given city ID.
If the alias already exists, it should notify the user.
2. alias Command
Description: Shows all aliases for a specific city.
Command: !alias <city_id>
Acceptance Criteria:
The command retrieves and displays all aliases for the specified city ID from the database.
addAlias command storing new alias for a specific city
alias command showing all alias for specific city
svs resource register command
verify command for R4 to assign R1 role, the command should take the city id of the city we want to verify and our proprietary player id which links all cities a player runs to the player
save which discord id links to which city id
(Optional) auto redeemer for gift codes
(Optional) event reminder
new database wos with collections for e.g. svs, general etc for alliances, also make alliances creatable with mirroring alliance ranks R1-R5 and creator being assigned R5. After that if you are R4 in an alliance you can verify members linking their discord to alliance
Saving copy pastas via wos copypasta save xxx and getting them via a command too
the data structure should include a city class which has the reported resources, alias name history, unique city ID, and maybe a few more relevant ones
ability link multiple cities to show they are run by the same person
a data structure player that includes which cities a player runs and also links the discord user to them
[ ] promote, demote and kick command that takes targetrank and playerid if necesary
[ ] log for each player with changes like date, event (promoted to rank x)
Overview
This module extends the functionality of the Discord bot for the mobile game Whiteout Survival. It aims to enhance user experience by adding commands and features that allow for better management of game-related data and interactions within the Discord community. The module will include commands for managing city aliases, resource registration, verification processes, data linkage, and optional features for gift code redemption and event reminders. A new database will be designed to support these features, along with robust data structures to represent cities and players.
Functional Requirements
1.
addAlias
Command!addAlias <city_id> <alias>
2.
alias
Command!alias <city_id>
3.
svsResourceRegister
Command!svsResourceRegister <city_id> <resource_type> <amount>
4.
verify
Command!verify <city_id> <proprietary_player_id>
5.
saveDiscordId
Command!saveDiscordId <discord_id> <city_id>
Optional Features
Auto Redeemer for Gift Codes
!autoRedeem <code>
Event Reminder
!eventReminder <event_name> <time>
6.
createAlliance
Command!createAlliance <alliance_name>
7.
verifyMember
Command!verifyMember <discord_id> <alliance_id>
8.
wosCopypastaSave
Command!wosCopypastaSave <copypasta_text>
9.
wosCopypastaGet
Command!wosCopypastaGet <copypasta_id>
Data Structures
1. City Class
city_id
: Unique identifier for the city.resource_report
: Dictionary containing resource types and amounts.alias_history
: List of alias names.player_id
: ID of the player who runs the city.additional_attributes
: Other relevant attributes.2. Player Class
player_id
: Unique identifier for the player.city_ids
: List of cities the player runs.discord_id
: Discord ID of the player.Database Schema
Collections
Cities
city_id
: Stringresource_report
: Dictionaryalias_history
: Listplayer_id
: Stringadditional_attributes
: DictionaryPlayers
player_id
: Stringcity_ids
: List of stringsdiscord_id
: StringAlliances
alliance_id
: Stringname
: Stringmembers
: List of player IDsranks
: Dictionary of roles and associated player IDsCopypastas
copypasta_id
: Stringtext
: Stringcreated_by
: Discord ID