Skip to content

Releases: Ballsdex-Team/BallsDex-DiscordBot

3.1.0

Choose a tag to compare

@flaree flaree released this 05 Jul 17:11
29958cf

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

Full Changelog: release/3.0.4...release/3.1.0

3.0.4

Choose a tag to compare

@laggron42 laggron42 released this 04 Jun 17:46
release/3.0.4
4392a74
  • 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

Choose a tag to compare

@flaree flaree released this 07 May 17:39

What's Changed

New Contributors

Full Changelog: release/3.0.2...release/3.0.3

3.0.2

Choose a tag to compare

@laggron42 laggron42 released this 28 Jan 15:05
release/3.0.2
e96cedf
  • Added a duplicate option to /balls completion
  • Show count of added balls during trade
  • Fixed duplicate entries in /balls list and trade paginations
  • Added /admin impersonate command 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

Choose a tag to compare

@laggron42 laggron42 released this 06 Jan 15:42
release/3.0.1
412b133
  • Split pages in /balls completion later to avoid having a page with the title only
  • Trade
    • Unique row of control buttons in trade interface
    • Fixed bug in /trade bulk_add duplicating 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 logs folder 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

Choose a tag to compare

@laggron42 laggron42 released this 02 Jan 17:03
release/3.0.0
aba4772

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.toml file 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 history interface, more info displayed, MUCH faster

Commands

  • A lot of /balls commands should be much much faster for those with big inventories
  • /balls duplicate, completion and compare have a reworked interface
  • Most /player commands were unified in a single /player settings command, 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)
  • Admin roles are ditched, Django permissions are used for finer permission control across all server
  • Static admin server configuration is ditched, b.admin syncslash is used to register /admin on 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.logs will let you view the bot's most recent logs
    • Some log events may be sent to the configured webhook
  • Reworked b.dbeval to 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
  • pagify supports 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.Context instead of interactions

2.30.0

Choose a tag to compare

@flaree flaree released this 12 Dec 21:34
df3987e

What's Changed

Full Changelog: release/2.29.5...release/2.30.0

2.29.5

Choose a tag to compare

@laggron42 laggron42 released this 21 Oct 21:45
release/2.29.5
332cc16
  • 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.yml to extend Tortoise models and Django apps
  • Added admin-channel-ids to config.yml to restrict which channels can be used for admin panels
  • Allow using emoji in custom catch messages

Thanks to @laggron42 @Dotsian @flaree for contributing to this release!

2.29.4

Choose a tag to compare

@laggron42 laggron42 released this 22 Sep 17:49
release/2.29.4
b023b4a
  • Fixed a visual glitch where /trade cancel could 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

Choose a tag to compare

@laggron42 laggron42 released this 12 Sep 08:25
release/2.29.3
1ecab6b
  • Fix yet another bug where the sorting was inconsistent after page 5, unless the page was loaded twice