Releases: Ballsdex-Team/BallsDex-DiscordBot
Releases · Ballsdex-Team/BallsDex-DiscordBot
Release list
3.1.0
What's Changed
- docs: update contributing.md, fix spelling mistakes, upgrade to Python 3.14 by @Gloxiedev in #777
- money cog for front-facing currency commands by @laggron42 in #782
- Prevent negative money proposals in SetMoneyModal by @flaree in #783
- Show currency in trades by @flaree in #788
- Fix admin syncslash by @dormieriancitizen in #785
- Add emoji support to currencies by @flaree in #789
- Fix exception logging bug in trade cog :D by @Gloxiedev in #781
- [admin info user] Fix recent catches by @hiboman in #768
- Improve checkmedia command by @dormieriancitizen in #787
- Add dev docker var and update contributing.md by @flaree in #791
- Polish /balls last, duplicate, and compare by @flaree in #799
- admin: balls transferinv command by @laggron42 in #805
- Confirm + echo resolved ball before admin balls delete/transfer by @flaree in #803
- Add group model by @flaree in #790
- Polish /config channel, disable, and status by @flaree in #802
- Filter/reverse/ephemeral parity: balls count, trade bulk_add, balls list/info/completion by @flaree in #798
- Expand FilteringChoices: favorites, duplicates, traded_only by @flaree in #797
- [balls] Add sorting to balls dupe by @flaree in #795
- Improve /trade history: sort wording, filter param, page count by @flaree in #800
- FIx trade confirmation timeout by @flaree in #794
- Polish admin history, blacklist history, and info days presets by @flaree in #804
- Add a captcha for deletion by @flaree in #808
- Panel fixes for guild sorting and add locked status to ball tab by @flaree in #809
- fix: allow balls count in DMs by @ahfoysal in #810
- Condensed admin guilds by @flaree in #811
- [admin] Add list catchers, ability to move between history and first owner by @flaree in #812
- Add balls drop by @flaree in #793
- [balls] Add bulk give by @flaree in #796
- 3.1.0 release by @flaree in #815
New Contributors
- @Gloxiedev made their first contribution in #777
- @ahfoysal made their first contribution in #810
Full Changelog: release/3.0.4...release/3.1.0
3.0.4
- Readded quit button to countryballs paginator
- Fixed bug with
/trade history days:n - Allow impersonate to work on buttons and modals
- Fixed display of 3rd party packages in
/about - Unified prompt message handling
- Added documentation for multi-host & yaml provisioning
- Improved OpenTelemetry tracing
Thanks to @laggron42 @flaree @cewlgruyere @dormieriancitizen @hiboman for contributing to this release!
Full Changelog: release/3.0.3...release/3.0.4
release/3.0.3
What's Changed
- Fix db side stats calculation by @dormieriancitizen in #721
- Exclude untradeable balls from trade queries by @Ray-Hsueh in #725
- Allow blank inputs for certain fields on BallInstance admin panel by @dormieriancitizen in #723
- Fix crash when resetting trade proposal by @Ray-Hsueh in #722
- Reimplement admin channel ids for inv privacy bypass by @dormieriancitizen in #734
- Fix extra space in balls list command by @Ray-Hsueh in #731
- Respect the trade cooldown option in the settings by @Ray-Hsueh in #730
- [Chore] Use checkboxes for pull request template by @Caylies in #739
- Show spawn art for duplicate collection to match collection by @dormieriancitizen in #741
- [trade] Add optional special filters for add and remove commands in trade by @flaree in #736
- Add media check command by @dormieriancitizen in #742
- Make
BallSpawnView.get_random_special()a static method by @Caylies in #738 - Fix admin history user by @dormieriancitizen in #744
- Add guild id arg to reloadtree by @flaree in #746
- Management command for loading config.yml by @dormieriancitizen in #745
- [Bugfix] New trade system doesnt respect player mention settings by @Tiago-Vier-Preto in #748
- [admin] Readd
/admin balls createcommand by @Valen7440 in #737 - Skip impersonation for admin impersonate command by @Ray-Hsueh in #726
- fix wrong page number in all v2 components by @flaree in #749
- Readd
/trade cancelcommand by @Valen7440 in #729 - Add regime and economy parameters to completion command by @Ray-Hsueh in #727
- Validate group names by @dormieriancitizen in #743
- fix: update trade list formatting for date and player display by @flaree in #751
- [admin] update permission checks for blacklist and info commands by @flaree in #752
- tracing: opentelemetry support with command-wide traces by @laggron42 in #750
- Allow superuser to always bypass inv privacy by @dormieriancitizen in #754
- Superuser bypass fix by @dormieriancitizen in #755
- Added sort by catch_time in /balls list by @cewlgruyere in #732
New Contributors
- @Tiago-Vier-Preto made their first contribution in #748
- @cewlgruyere made their first contribution in #732
Full Changelog: release/3.0.2...release/3.0.3
3.0.2
- Added a duplicate option to
/balls completion - Show count of added balls during trade
- Fixed duplicate entries in
/balls listand trade paginations - Added
/admin impersonatecommand to run commands as someone else - Fixed "this server" filtering in
/balls list - Prompt for confirmation on friend removal
- Use configured messages for missed catch
- Allow weights in spawn messages pool
- Improved display of dev commands
- Fixed ID display in
/admin balls give - Fix collectstatic missing custom static files in Docker build
- Fixed minor text mistakes
Thanks to @laggron42, @Ray-Hsueh, @flaree, @dormieriancitizen, @Caylies, and @HaapsaluYT for contributing to this release!
Full Changelog: release/3.0.1...release/3.0.2
3.0.1
- Split pages in
/balls completionlater to avoid having a page with the title only - Trade
- Unique row of control buttons in trade interface
- Fixed bug in
/trade bulk_addduplicating control buttons on each refresh - Restore allowing one trade per channel instead of one per server
- Fixed bug in friends list displaying the wrong side
- Fixed crash in
bdextra.py - Pre-create
logsfolder to avoid permission denied issues in Docker - Prevent deletion of settings object
- Docs
- Added a new page for admin commands
- Fixed a few spots using the wrong commands
- Added notices for common bugs and mistakes
Full Changelog: release/3.0.0...release/3.0.1
3.0.0
This is a major release with multiple breaking changes. Please read this to upgrade your bot, it is not done automatically.
New features
- Included basic currency support, disabled by default
- This only provides database columns, admin commands and trading support
- It is left to 3rd-party packages to make use of this for now
- Reworked UI using components v2
- Settings rewrite, now editable on the admin panel, with migration for
config.yml
3rd-party package standardization
- There is now a standard way to extend Ballsdex features via packages
- Packages are installable via an
extra.tomlfile by users, it is then installed during Docker build - Packages are standard pip packages that can be configured via
pyproject.toml- Extra dependencies can be specified, as well as version constraints on Ballsdex
- Metadata (summary, authors, links, license) are displayed in
/about
- See https://wiki.ballsdex.com/dev/custom-package/ for details
Trade
- Everything redone from scratch!
- Both proposals can be viewed fully with pagination
- Supports adding currency to a proposal if configured
- Removed most commands as they are now usable through the new trading menu
- Hardened security to prevent cheating and errors
- New bulk add interface, updating the drop-down menu's state and displaying a summary
- Reduced the possibility of having locked countryballs and needed to wait for 30 mins
- Reworked
/trade historyinterface, more info displayed, MUCH faster
Commands
- A lot of
/ballscommands should be much much faster for those with big inventories /balls duplicate,completionandcomparehave a reworked interface- Most
/playercommands were unified in a single/player settingscommand, using V2 components - New UI for friend list and block list
Admin
- All commands are now hybrid!
- They can be used using slash commands (
/admin balls spawn) or regular text commands (b.admin balls spawn)
- They can be used using slash commands (
- Admin roles are ditched, Django permissions are used for finer permission control across all server
- Static admin server configuration is ditched,
b.admin syncslashis used to register/adminon the current server - New text command helpers were added to help using the new commands
- V2 components
Menu and paginations
- Completely reworked pagination system!!
- Refreshed UI with components V2
- Lazy data querying, allowing faster paginations
- Allows multiple paginations on the same message
Dev and management
- Reworked all logging management
- A new command
b.logswill let you view the bot's most recent logs - Some log events may be sent to the configured webhook
- A new command
- Reworked
b.dbevalto use the psql interface. This removes all limitations on raw SQL queries and enables psql meta-commands
Build and tooling
- Brand new mkdocs documentation available here: https://wiki.ballsdex.com/
- Moved from Poetry to uv package manager
- Github CI will report errors and warnings directly on pull requests
- Moved to ruff for formatting, import sorting and linting, ditching black, flake8 and isort
- Include VScode recommended settings, extensions and debug configurations
- Reworked Docker build, collects staticfiles on build, now removing bind mounts and making all code read-only inside containers
- nginx now included in docker compose, removing the need to serve static files manually
- Improved docstrings, loaded on the new wiki
- Pinned postgres to version 18
- A Docker Compose watch config has been added to facilitate coding on Ballsdex
Utilitary functions
- New check decorators for the Django authentication system
pagifysupports prefix and suffix- Reworked transformers (autocompletion) to work with hybrid commands, allows any Django QuerySet to be passed for filtering
Advanced
- Enable database connection pooling for increased performance on large bots
- Improved logging output
- Admin panel will run with debug mode disabled by default
- Unified management of views and modals
Enhancements
- Command mentions will persist across package reloading
- Unified and improved error management, providing meaningful messages in case of permissions issues
- Missed interactions are now warnings instead of unhandled errors, reducing the verbosity of the console
- Small chance of displaying πthon if you're running Python 3.14
- Reworked player data export to only use db-side
COPY TO, vastly speeding up the operation
Breaking changes
- Ditched Tortoise ORM in favor of Django ORM
- This unifies model definitions and enables more powerful queries
- ALL existing evals and 3rd party packages WILL break from this change
- Docker image no longer allows writing arbitrary files in the host (no more random txt files)
- Custom spawn managers must support
commands.Contextinstead of interactions
2.30.0
What's Changed
- Fix bug with trades by @dormieriancitizen in #671
- Include instance PK in admin give followup and log by @Ray-Hsueh in #675
- [balls dupe] Mimic balls collection when clicking on an option by @flaree in #649
- [balls] Add filtering to balls last by @flaree in #646
- [balls completion] Add filters to completion by @flaree in #650
- Change collection image to spawn image by @flaree in #680
- Add an explicit catch_date before querying db by @flaree in #679
- Add button showing recent catches in /admin info user by @uint128-t in #666
- Add server config status command by @Ray-Hsueh in #678
- Fix hidden specials showing in collection by @flaree in #682
- [balls] Dont allow viewing of listed inventories by @flaree in #684
- Add info about catch time by @dormieriancitizen in #681
Full Changelog: release/2.29.5...release/2.30.0
2.29.5
- Added ball instance soft deletion, allows marking instances as "deleted" (hidden) but still show up in admin panel and trades
- Added new keys in
config.ymlto extend Tortoise models and Django apps - Added
admin-channel-idstoconfig.ymlto restrict which channels can be used for admin panels - Allow using
emojiin custom catch messages
Thanks to @laggron42 @Dotsian @flaree for contributing to this release!
2.29.4
- Fixed a visual glitch where
/trade cancelcould be used after a trade was accepted and completed, showing the trade as cancelled by the user. This has no serious implication and did not revert the trade. - Added an internal lockdown mode for admins to cancel all ongoing trades and block trading. Activated with
/admin trade_lockdown
2.29.3
- Fix yet another bug where the sorting was inconsistent after page 5, unless the page was loaded twice