Releases: crackhex/TAS-Comp-Bot-py
Releases · crackhex/TAS-Comp-Bot-py
TASCompBot v0.3.3
TASCompBot v0.3.2
TASCompBot v0.3.1
Changelog:
- Fixed incorrect parsing of file extensions by @Dash-QC
- Fixed resubmissions changing submission list order by @Dash-QC (#56)
Full Changelog: v0.3...v0.3.1
TASCompBot v0.3
End-user features and changes
New features
- New comprehensive and detailed $help module!
$creditshas also been updated
$info(aka$status) has been reorganized, and now shows upload date of your submission!- For competitors in a team, if a host edits your submission status (time/DQ), all team members are notified
$8ballhas been improved!- New possibles messages for
yes/noquestions, andwhenquestions whoquestions are now supported!rateis also now supported! 8ball will rate your stuff!- The bot now "thinks" a bit before responding!
- New possibles messages for
- Team (and user) names have now been limited to 50 characters, instead of the previous 120 characters.
Changes for hosts
- New
/set-fileto switch between accepting.rkg,.dat, or.dtmfiles. /start-taskhas been reworked;multiple_tracksargument is gonedeadlineargument is now required.speed_taskargument is now a True/False instead of writing 1 or 0. You can also leave blank, it will act as a False.
$/get-submissionsnow provides a downloaded.batfile that downloads all ghosts for you!$/get-resultsnow uses ordinal placings, and is formatted just like the official results.$/hostdissolvenow takes a competitor as an argument instead of looking at$teamsand taking the index...- New
$/hostkickcommand to kick only a single person from a team. (For teams of 2, this command acts the same as$/hostdissolve)
Changes for admins
- New
/set-compthat allows to map the current server to a comp (mkw, sm64, etc). /configcommand now exposes optional arguments only. It will only change the configs for which you have passed as argument.
Miscellaneous / QoL / bugfixes
- During a collab task, host commands such as
/delete-submission,/edit-submissionnow work on any competitor in the team as an argument - All host commands are now hybrid, whereas user commands are now prefix-only.
- Host commands now show help tooltip when viewing arguments, and the function as a whole.
- New aesthetics for dm logging.
- Any unhandled bot errors or exceptions are now logged in the logging channel, with traceback.
- If a player submits solo, then joins a team and resubmits as a team, it now automatically deletes their solo submission
- Similarly, if a team is dissolved, their submission (if any) is now automatically deleted.
Removals
- Removed mentions in the submission list (now that
$setnameis admin-only, and names accurately reflect who the user actually is, the @mention is no longer needed) - Removed economy system
- Removed most fun commands due to low usage; the only fun commands remaining are
$slotsand$8ball. - Removed automatic responses from messages such as
crazy,when streamandkierio. - Removed 👀 reactions upon join, and
✈️ reactions upon 😃 message.
Technical changes
- Domain driven design & hexagonal architecture
- The code is separated in 4 categories: domain (business logic), repositories (ORM & db access), application (services that use the domain & repositories, parsers, etc.) and adapters (discord commands and events)
- Code separation as laid out above allows for separating command & events from business logic and direct db interaction, as opposed to before where it was the case...
- Much more object oriented than previously
- Use of User, Submission, Task, Team, SubmissionFile classes & objects and many more...
- Much more scalable submission handling (for different comp/games) and file type handling
- BaseSubmissionService class that provides default submission handling. Provides comp-agnostic necessities like removing a submission, editing status and such (but NOT enough on its own for handling a full-blown submission -- see below).
- The base submission service provides a
submit(...)template method, with the general steps of submitting, with child classes of submission service (like MkwSubmissionService) that must redefine 2 of the steps from the algorithm for customizing the submission process. - Use of the FileParser class (such as in the submission services) for handling different file-types upon submissions. The strategy design pattern is used, which allows for the parsing of different file-types via the parserStrategy attribute.
- NullSubmissionService and NullParserStrategy are the default when running the bot for the first time. If you forget to change them via commands, you will be prompted to modify those via
/set-compand/set-file, to use the appropriate Submission service and parser strategy.
- Submissions now have an attribute for its upload date. It can be seen in $get-submissions as a host, or in $info.
- Submissions are now tied to a team (if applicable, otherwise null for solo submissions), which makes things easier code-wise for team submissions
Full Changelog: v0.2.9...v0.3 (all changes by @Dash-QC)
TASCompBot v0.2.9
TASCompBot v0.2.8
TASCompBot v0.2.7
TASCompBot v0.2.6
TASCompBot v0.2.5
Changelog:
- Setname and submission overhaul by @Dash-QC (#29)
- Submission list is regenerated from scratch upon any change that affects it (new submission, deleted submission, submit command, team dissolve)
- Unfortunately not all team updates are covered quite yet (#35)
- Submission table has a new index column, which prevents a ton of submission list bugs
$/setnamecommand is now admin only (#20)- Changing display name and resubmitting no longer adds a new submission (#27)
- Submission list is regenerated from scratch upon any change that affects it (new submission, deleted submission, submit command, team dissolve)