Stable
2.14.0
- Improved appearance and theming
- Implemented adaptive light/dark mode
- Added visual color options
- Added granular theme modifier toggles
- Cleaned up style sheets
- Various minor visual improvements
- Rearchitected the game server integration API
- Improved the request flow and abstractions for extensibility
- Rewrote the Garry's Mod integration addon
- Implemented the new game API
- Vastly improved code readability through modularity
- Added hooks and handler registration for custom actions
- Replaced the configuration file with commands (backed by the file library)
- Run the
ember connect
command with the URL and token from the legacyember_config.lua
file when upgrading - Improved unban logic: the server's ban enforcement scope is now respected (except for the scope "none" if ban logging is enabled)
- Deprecated the legacy server API
- Improved store package actions
- Implemented user-presenceless ("offline") actions
- Executed in-game regardless of the user's presence
- Individually togglable for certain action types (such as commands)
- Implemented RCON command actions (for basic integration with otherwise unsupported games)
- Requires configuration of the new task scheduler under general settings
- Decoupled actions from packages
- Packages can now have multiple actions of the same type
- Implemented tracking action executions individually
- Active package instances now execute all redeemal phase actions, including those added after initial redeemal (previously only those created prior to a player first joining the associated game server with an unredeemed package instance)
- Expiring package instances execute only those expiry phase actions created prior to expiry (as before)
- Implemented active phase actions, which are executed every time a player joins with an unexpired package instance
- Improved the store user experience
- Implemented recording credits balance events (adjustments/payments/purchases)
- Added a credits balance history table to the user purchases page
- Implemented redirecting unauthenticated customers to sign in upon attempt to purchase
- Added a banner instructing to link required game accounts
- Added a TOS disclaimer to package listings
- Implemented an option to restrict server integration token use to a known remote address only (for security)
- Implemented server group ban scope (allows for applying a ban on a (sub)set of servers at once)
- Refactored user authentication providers for modularity
- Extracted Minecraft integration into a module
- Improved user merging
- Added a merge button to user settings
- Implemented callbacks for modules
- Improved server queries and cards
- Implemented TCP-based server queries (for games based on Steam Networking and Minecraft query protocol)
- Implemented concurrency and locking (for performance and efficiency)
- Added an option to show the server address alongside the "Join" button
- Restored the "Join" button for Rust
- Improved webhooks
- Implemented a test execution button
- Implemented array access for model subattributes
- Added default value and UNIX timestamp filters
- Numerous bug fixes and improvements, including:
- Reworked user API filtering, ordering and pagination
- Implemented additional metadata for servers (e.g. integration version)
- Changed the minimum MySQL version requirement to 5.7.8
- Implemented validating role order changes clientside
- Replaced the rich text editor component
- Fixed privileged XSS vulnerabilities
- Fixed parsing Discord usernames