All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
7.0.0 (2024-02-09)
This version adds support for Sharding and allows the bot to be invited in more than 2500 servers.
6.5.3 (2023-04-01)
- Fixed critical issue #195.
6.5.2 (2022-10-31)
- Locales: 🌐🇩🇪 Add German translation for the new
/crit
command. - Roll: ♻️ Remove requirement for Base Dice in MYZ & FBL games, as requested in #170.
- Roll: 🩹 Add a single Base Die if the roll is empty (before modification).
- Roll: 🐛 Fix bad regex execution for T2K undefined inputs (#190) (391b91f)
- Gamedata: Conforming some entry names (d1d03bb)
- Gamedata: Fix punctuation in effects of vaesen crit tables (6b5881d)
6.5.1 (2022-10-28)
6.5.0 (2022-10-27)
- Commands: Add
/crit
command (#183) (b720344) - Help: ✨ Add autocompletion for the
command
argument of the/help
command (ecc212f) - Locales: 🌐🇸🇪 Add Swedish translations (#184) (cdeb2bb)
6.4.1 (2022-10-18)
- Initiative: ✨ Add color gradient to the embed result (faa422f)
- ready-event: ✨ Add version when ready (1ea77d3)
- Roll: ✨ Roll a D66 from
/roll
(#165) (88c3d20)
- Panic: negative modifiers not reducing stress dice (#182) (67bf23b), closes #180 #180
- Panic: 🐛 Patch panicValue minimum (e3284b3)
6.4.0 (2022-09-24)
6.3.0 (2022-09-12)
- 🌐🇫🇷 French translation of commands
- 🌐🇩🇪 German translation of commands
- A missing
neg
option in/roll myz
&/roll fbl
commands to add negative dice.
- The
modifier
argument for/roll bladerunner
now have the advantage/disadvantage choices.
- A minor issue where the message buttons appeared with a roll that has panic.
- Some typos in various translations.
- Command
/conf
not working in some cases.
- Enable locales
fr
&de
(still work in progress). - (Bot admin only) Add webhook for the logs.
- Slash Commands:
- Admin: (
/emit
) - Roll:
/panic
– for ALIEN RPG
- Admin: (
- The
/roll alien
with astress
value command can now automatically trigger a panic roll. - The
/roll coriolis
command now has more push options (Pray the Icons!). - The
/help command:<command>
now returns more details with each subcommand and argument' description. - Add a section to how to use slash commands in the readme.
- Add a gamedata parser method for future random generation commands.
- Gamedata:
- ALIEN RPG: Panic table for
en-US
&de
locales.
- ALIEN RPG: Panic table for
- Add missing
fullauto
argument to the command/roll myz
.
- Locale: (minor) English translation now uses the code
en-US
instead ofen
. (Plain "en" was not supported by Discord.)
- Due to its complexity, roll commands (
/roll
&/rolld66
) in DM (private messages) have been temporarely disabled until Discord fixes their API. See #148 & #146. - Remove
fullauto
argument from the command/roll fbl
.
- Git Localize link in the docs: https://gitlocalize.com/repo/7923
/rolld66
dice argument is no more required, and will roll a D66 by default.- Simplified Github templates for bug reports & feature requests.
- Ephemeral messages not pushable.
/rolld66
rendering blank dice with some games.- Errors with guild events.
- Some other errors.
- Slash
/commands
:- Admin:
/conf
,/thread
, (/botinfo
), (/eval
) - Roll:
/roll
,/rolld66
- Utils:
/help
,/ping
- Admin:
- Support for Blade Runner RPG rolls (still missing the dice icons).
- Support for generic rolls like
5d6!>6
. - A privacy policy declaration.
- (Breaking) Sebedius needed permissions have changed. You might need to kick and re-add the bot to have it work properly.
- License is now GPL-3.0-or-later (was MIT)
- Use of the
Mersenne-Twister
algorithm for the random numbers generations instead of the vanilla javascriptMath.random
method. - Better Contributing Guide.
- (Breaking) New Database: MongoDB (was postgres)
- Code revamp:
- Clean code using modern javascript coding guidelines
- Use of Eslint & Prettier
- Commented everywhere
- Templates for easy contribution
- Typed methods for VS Code Intellisense support
- Better translation module implementing i18next.
- Use of DiscordJS library v14 for Discord API v10
- (Breaking) Discord policy change: ALL prefixed
!commands
have been disabled:- All command files are archived in the
./archives
folder for later conversion into slash commands.
- All command files are archived in the
- (Breaking) Translations refactored:
- Due to the use of a new translation module (i18next), the current german translation is disabled. The original files are stored in the
./archives
folder for later re-use.
- Due to the use of a new translation module (i18next), the current german translation is disabled. The original files are stored in the
- Issue with commands
!monster
and!attack
not waiting for an input choice. - Issue with command
!help -list
not sending DM. - Issue with command
!stats
not working. - Other small fixes.
- Use of latest DiscordJS V13 (compatible with Discord API V9).
- Update to the latest NPM packages.
- #40
- #122
- #123
- #133
- Issue #119.
- Issue #116.
- Bug: wrong version of the bot was displayed in the help message.
- (JavaScript) Updated all packages.
- Use of the final version of the dice rules for Twilight 2000.
- A critical bug causing a crash of the bot with the error log.
- More locale and german translations.
- Better error log.
- A few hidden bugs.
- German translation for monsters and attacks for the Alien RPG.
- GitHub templates for pull requests, bug reports and feature requests.
- (JavaScript) Drop of
utils/version.js
in favor of the 'version' properties in./package.json
.
- Issue #100.
- Issue #98.
- Arguments for
!attack
command if it's called from the!monster
command. - Incorrect key names in the language files.
- Missing keys in the german language file.
Major update with a large refactoring of the bot's javascript code to allow localisation.
- Discussions
- Full support for localisation of the bot.
- German localisation.
- Coriolis & Vaesen critical injuries:
- New command:
!critcoriolis
or!critc
– Shortcut for Coriolis critical injuries. - New command:
!critvaesen
or!critv
– Shortcut for Vaesen critical injuries.
- New command:
- New argument
-lang
for many commands to allow language change on the go. !crit
command:- New argument
-lucky <rank>
: Lucky talent — On rank1
, rolls twice and takes the lowest. On2
, rolls twice and takes the lowest inverted. On3
, takes the first critical injury (#11).
- New argument
!colony
&!planet
commands:- New argument
-type <planet_type>
: Specifies the planet type. Choices arerocky
,icy
,gasgiant
,gasgiant-moon
andasteroid-belt
. - New argument
-location <core|arm>
: Specifies if the colony belongs to the independentcore
system colonies or the american or anglo-japanesearm
.
- New argument
- New repository name:
sebedius-myz-discord-bot
becomessebedius-yearzero-discord-bot
. - Wiki updated.
- The
!drawinit
command now shows all drawn initiative cards, included discarded ones (e.g. with the-haste
argument). - (GitHub) Better CI & CD Workflows
- Issue #77.
- A small error with displayed text in T2K embed roll messages.
- Issue #60.
- Twilight 2000 4E rolls (
!rw
command) show more detailed info for Ammo dice.
- New dice emojis for Twilight 2000 4E.
- New default D6 emoji #53.
- New default emoji for deadly critics #66.
- Correct Twilight 2000 4E rolls (
!rw
command) based on the official alpha rules. - Issue #59.
- Issue #65.
- Temporary fix for a Discord privileged intents' issue.
- (GitHub) More protection against breaking updates: GitHub CI can now test all commands individually.
- Correct statistics for
!roll
and!crit
commands.
- Command
!journey
has been revamped.
- New command:
!sector
– Creates a random Mutant: Year Zero Zone sector. - New command:
!journey
– Performs a Forbidden Lands Journey.
- New command:
!embed
– Creates an embed message.
!help
command revamped.- (JavaScript) Refactored the whole commands architecture.
- (JavaScript) Discord.Message "ctx" now uses Sebedius.ContextMessage which extends Discord.Message
- (JavaScript) Added command cooldown support.
- (Database) Databases are cleaned of orphaned entries when the bot leaves a server.
- (GitHub) Use of GitHub CI for workflow tests.
- A bug with
!roll
command where a modifier of±0
was translated into±1
.
- Argument
--no-dm
from!help
command.
- New command argument
-list
for!help
: Gets a list of all commands. - New CONTRIBUTING.md file with instructions on how to contribute.
- New admin tools to remotely manage the bot.
- New README.md file.
- Migrated most of the help into the Wiki.
- (API) Intents GUILD_PRESENCES & GUILD_MEMBERS enabled for the Admin tools.
- A bug with
!module
command not working at all. - A glitch with
!roll init
showing success count.
- New command argument
-mod <±X>
for!roll
: Applies a difficulty modifier of+X
or-X
to the roll.
- Ammo dice for Twilight 2000 can also be rolled with
Xa
orXd
. - Better presentation of the details of the blank dice results in Embed messages.
- A bug with monsters' attack dice in
!attack
command. - A bug with the Nerves of Steel talent not decreasing the Panic roll properly.
- A bug allowing Coriolis pushed rolls to go over the dice quantity limit, causing a bot crash.
- New command argument
-min <value>
for!panic
: Adjust a minimum treshold for multiple consecutive panic effects. - New command alias
!rollw
for!rolltwilight
. - New argument aliases
#
and-#
for-name
in!roll
command. (You still need a space between#
and the name.) - More Panic emojis.
!roll
command is more user-friendly. More differenciation between roll types (Year Zero rolls, D66/D666 rolls & Generic Rolls).- Push reaction menu is removed if no dice can be pushed.
- Inverted the d8 Twilight 2000 dice emojis.
- A bug with
-pride
argument in!roll
command not working. - A bug with
--no-dm
argument in!help
command not working. - A bug with defined names not showing in
!roll
command. - A bug with defined names not showing in
!cast
command.
- Ammo count for Twilight 2000 rolls.
- Generic rolls parsing reworked.
- Better Twilight 2000 dice emojis.
- A bug causing additional dice from pushes (Coriolis & Alien RPG) to not work.
- A bug causing pushes details from Coriolis rolls to be inexact.
- A bug causing generic rolls to stop functionning with games that have blank dice emojis.
- Support for **TWILIGHT 2000 **PRE-ALPHA**** rolls:
!rolltwilight
or!rw
. (This is based on pre-alpha information gathered from Fria Ligan interviews.)
- Better dice emojis for Alien RPG, Coriolis and Tales from the Loop.
!artifact
parameters usemek
instead ofmech
.- (Hidden)
!myzpower
parameters usemek
instead ofmec
. - (JavaScript) YZRoll code revamped.
- Banes counting "ones" from negative dice. (Shouldn't.)
- New parameter
-nerves
for!panic
. - New parameter
-nerves
for!roll
. - New alias
!mut
for!mutation|mp
. - (Admin only) Description and usage for
!setpresence
command.
- An error when typing
!init hp
without any other argument. - An error when using
!drawinit
in a DM. - Typo in attack display Message Embed.
- (Admin only) An error with
!setpresence
not working properly.
- New command:
!atk
– Rolls a random attack from a monster. - New Parameter
-private
for!crit
: Sends the result in a private DM. - Reaction menu to the Embed Selector.
!monster
aliases and effects.!critmutant
renamed into!critmyz
("critmutant" is still an alias for this command).- New command alias for
!rollmyz
: rollmutant.
!cast <power> [name]
instead of!cast <power> [-name <name>]
.!prefix [set <new prefix>]
instead of!prefix [new prefix]
.
- Issue #25
- Issue #26
- Issue with
!init list -private
not being private. !roll pride
alone works now.- Typos in bot activities.
- Typos in the Readme.
- New command:
!cast
– Rolls a spell's Power Level and checks for any Magic Mishap. - New command:
!mishap
– Draws a random Magic Mishap. - New command:
!mutation
– Rolls dice for a Mutation and checks for any Misfire. - New command:
!feral
– Rolls dice for a GenLab Alpha Animal Power and checks for any Feral Effect. - New command:
!module
– Rolls dice for a Mechatron Module and checks for any Overheating. - New command:
!contact
– Rolls dice for an Elysium Contact and checks for any Backlash. - New command:
!myzpower
– Rolls dice for a MYZ power.
- Renamed the old
!mutation
command into!drawmutation
.
- Typos in both Readme files.
- Bot activities.
- A bug causing all Alien RPG dice to be turned into stress dice.
- A bug with the
!setconf lang
subcommand. !init hp
subcommand not warning the user about errors.- Missing Alien's
!planet
command entry in the readme. - Use of an offline database in developper mode.
Initially planned to be v2.1, the large quantity of changes brought along the new Initiative Tracker is simply too much for a minor version increment. Therefore, this update is a major change from v2 to v3 in less than one month.
- New feature: Initiative Tracker with command
!init
. - New administration command:
!setpresence
. - Bot's activities loop.
- Renamed the old
!init
command into!drawinit
. - Added new arguments and functionalities to
!drawinit
. - Large code rewritting:
- Resorted the whole files/folders architecture.
- Reworked the access to databases.
- Use of a custom Discord.Client class.
- Use of Discord.Message with extra context.
- "st" shortcut not working for FBL's stab critical table.
!br
now properly deletes the invoke message.- A potential security breach with the roll parsing function.
- Support for TALES FROM THE LOOP rolls:
!rolltales
or!rt
. - Support for CORIOLIS rolls:
!rollcoriolis
or!rc
(including praying the icons). - Support for VAESEN rolls:
!rollvaesen
or!rv
. - New command:
!supply
– Rolls for a supply (ALIEN rpg). - New command:
!resource
– Rolls a Resource Die (Forbidden Lands). - New command:
!critmutant
or!critm
– Shortcut for Mutant: Year Zero critical injuries. - New command:
!critfbl
or!critf
– Shortcut for Forbidden Lands critical injuries. - New command:
!critalien
or!crita
– Shortcut for ALIEN critical injuries. - New command:
!ping
– Checks the bot's latency. - New command:
!br
– Prints a scene break. - New command:
!changelog
– Prints a link to the official changelog. - New command:
!invite
– Prints a link to invite Sebedius to your server. - New command:
!prefix
– Gets the prefixes for the current server. - The
!panic
command has now a--fixed
argument if you want to use a fixed number (no D6 rolled). - New
!setconf
configuration parameter:game
– Defines the game used for the default dice template and critics tables. - New
!setconf
configuration parameter:lang
– Defines the default language. - New critical tables in CSV format.
- New JavaScript utils and tools for the bot's code.
- New administration commands:
!eval
and!stats
. - Error Watching: The bot sends me a DM for each uncaught errors.
- Discord.js API upgraded to v12.2.0. Fixed Connection log, BaseManager cache, MessageEmbed, and ReactionCollector accordingly.
- Permissions:
READ_MESSAGE_HISTORY
is needed to react to messages with emojis. !roll
command revamped. See Readme for details.- Pushing duration increased from 60 to 120 seconds.
- Dice arguments are now adaptable. E.g. Typing
5b3s
is now the same asb5 3s
.
!crit
command revamped. See Readme for details.- Relooking of the
!help
command. - Updated code for
!panic
,!admin
and the above commands. - Future support for different languages.
- A bug where the player's avatar was not showing in the roll embed message.
- A typo in job.cargo.goods.medicinal JSON data.
- A bug that was breaking the
!init
command. - A fatal error causing the bot to crash on a certain condition related to the roll command.
- Permissions checks.
- New command:
!star
– Generates a random star sector for the ALIEN rpg. - New command:
!planet
– Generates a random uncolonized planet for the ALIEN rpg. - New command:
!colony
– Generates a random colonized planet for the ALIEN rpg. - New command:
!job
– Generates a random job for the ALIEN rpg. - All roll commands can now interpret simple generic rolls.
- All the Mutant: Elysium artifacts.
- More admin support for the bot owner (me).
- Issue #13:
!arto
is now specific. - Some
!help
incorrect informations. - Charts with the first edition of Alien RPG:
- Panic Roll chart: updated page numbers and Berzerk.
- Permanent Mental Trauma critical chart: updated page numbers.
- Xeno Critical Injuries chart: updated text.
- Bot's activity flare from "MYZ" to "YZE" (stands for Year Zero Engine).
- A bug that prevented
!admin servers
from functionning.
- New crit subcommand:
!crit alien
– The ALIEN Critical injuries. - New crit subcommand:
!crit synth
– The ALIEN Critical injuries for Synthetics and Androids. - New crit subcommand:
!crit xeno
– The ALIEN Critical injuries for Xenomorphs.
- A bug preventing the Crit subcommand
!crit horror
from working.
- New crit subcommand:
!crit mental
– The ALIEN Permanent Mental traumas. - A reminder for a risk of a Permanent Mental trauma with Panic roll >=13.
- A reminder for a canceled skill roll with Panic roll >= 10.
- The database module has switched to PostgreSQL (with Keyv).
- Panic roll not occurring after pushed rolls (issue #8).
- Guild-custom prefixes were only saved for 24h (issue #9).
- New command:
!initiative
– Draws initiative cards.
- The database module have migrated from JSON to SQLite with Keyv.
- Bot icon to reflect more Fria Ligan's Year Zero games.
- All guild-specific parameters have been deleted. Sorry!
- New command:
!rolla
– Rolls dice for the ALIEN roleplaying game. - New command:
!rollf
– Rolls dice for the Forbidden Lands roleplaying game. - New command:
!panic
– Rolls a random panic effect for the ALIEN roleplaying game. - New roll subcommand:
!roll init [bonus]
– Rolls initiative with or without a bonus. - New roll subcommand:
!rolla res|supply <rating> [name]
– Rolls a supply for the ALIEN roleplaying game. - Artifact Die emojis for Forbidden Lands rolls.
- Feature request / bug report weblink to the help command.
- Many typo errors.
- Removed
crit p
alias (forcrit pushed
). sheet
command is deprecated and will never be implemented.
- Some typo errors in the mutations list.
- Fixed Insect Demon's icon in
demon
embed messages: Is now 🐞 (lady beetle) instead of 🐜 (ant). The ant emoji was difficult to see on Discord's dark themes. - Fixed Undead Demon's icon in
demon
embed messages: Is now 💀 (skull) instead of 🧟 (zombie). The zombie emoji isn't supported by Discord. - Fixed words wrapping in
demon
embed messages. - Removed a useless extra dot in
demon
embed messages. - Removed a useless extra space in
monster
embed messages.
- New command:
!monster
– Generates a random monster according to the tables found in Zone Compendium 1: The Lair of the Saurians. - New command:
!demon
– Generates a random demon according to the tables found in the roleplaying game Forbidden Lands. - New command:
!legend
– Generates a random legend according to the tables found in the roleplaying game Forbidden Lands. - A new
psi
category for the!mutation
command.
- Altered roll parsing functions.
- A typo error in the mutations list.
- A typo error in the rumors list.
- Moved the "Diary" artifact to the metaplot category.
- New command:
!artifact
– Draws a random artifact. - New command:
!threat
– Draws a random Zone threat. - 80 additional scrap items, for a total of 297.
- A bug that broke the resource die roll.
- A bug related to the
!mutation
command not working with argumentall
.
- Bot's version display in console at startup and in admin maintenance.
- Moved the character sheets in a subfolder.
- Proper author name/pseudo for YZEmbed in chat message.
- New command:
!admin
– Performs bot's maintenance. Only available for the bot's owner.
- A bug introduced with the last release. Member with no role could'nt execute bot's commands.
- A thrown error when pushing rolls in DMs.
- Some rumors typos in
rumors.json
.
- New command:
!rumor
– Tells a random rumor. - New command:
!mutation
– Draws a random mutation. - Bot's response to its mention, which lets him answer its prefix.
- New JS Class: YZEmbed (extends Discord.RichEmbed with predefined properties).
- Support for negative dice rolls.
- Negative dice icon emojis (red).
- Modified the dice cap to 42.
- Updated various commands' help messages.
- Greatly improved the help for the
!roll
command.
- A bug related to setting custom prefixes.
- Scrap list timestamp.
- Bot's response to its mention. (This will come back in a future version.)
! Initial commit