Changelog for 2023-11-19

Hey everyone! 4 months and 438 files later, ESM has been migrated over to Discord Slash Commands. This means that ESM will no longer respond to any messages outside of the Slash Commands.

esm_bot changelog

Highlights

  • Added an experimental "hint" system to ESM that will display tips when executing a command.
    I suspect this will require tweaking. Please let me know if tips are showing up too often.
  • Added the ability for users to create aliases and set defaults for communities and servers. These can be managed via the player dashboard under your account information
  • Migrated all commands to use slash commands

Core System

  • Added #attributes and #to_h to various Discordrb classes
  • Added Module#attr_predicate for defining ? methods easily
  • Added ESM::Command::Arguments that holds the command's arguments and values
  • Added ESM::User::Ephemeral to represent non-user objects (like steam uids)
  • Added Docker support
  • Added new colors to the list of available colors
  • Added support for defining a command's usage
  • Added timers for tracking how long it takes to run sections of code
  • Adjusted how commands are loaded, stored, registered, and found
  • Changed ESM::Command::Base::Checks from a class to a module
  • Changed ESM::Command::Base::Permissions from a class to a module
  • Created Inquirer class for better performance over ActiveSupport::StringInquirer and ActiveSupport::ArrayInquirer
  • current_user and target_user are now consistent and both return an instance of ESM::User
  • Defaulted the internal timezone to UTC
  • Deprecated ESM::CommandCache in favor of ESM::CommandDetail
  • Deprecated ESM::Notifications
  • Deprecated whitelists for allowlists
  • Improved bot pre-init and init
  • Improved configuration detection and loading for commands
  • Improved Discord user to ESM user matching
  • Re-implemented Zeitwerk to better clean up all file loading
  • Removed ESM::Command::Argument::Parser and ESM::Command::ArgumentContainer
  • Removed anything related to prefixes for commands
  • Removed Rust dependencies
  • Replaced manual workflow for defining command examples with an automated one
  • Responses from servers no longer go through the Discord workflows
  • Rewrote ESM::Command::Argument to work with slash command arguments and improved it significantly
  • Rewrote how commands are registered and defined internally. Commands now have a set of defaults which can be modified when defining a command.
  • Significantly improved handling loading of older code when a command has been updated to V2
  • Upgraded dependencies

Commands

  • /my aliases NEW
    • Displays any community or server aliases you've created
  • !mode
    • Renamed to /community admin change_mode
    • No longer requires the "mode" to be provided. It acts like a toggle now
  • !whois
    • Renamed to /community admin find_player
  • !reset_cooldown
    • Renamed to /community admin reset_cooldown
  • !id
    • Renamed to /community id
  • !servers
    • Renamed to /community servers
    • Online servers are displayed first followed by offline servers
  • !help
    • Renamed to /help
    • Removed history section
  • !preferences
    • Renamed to /my preferences
  • !requests
    • Renamed to /my requests
  • !steam_uid
    • Renamed to /my steam_uid
  • !birb
    • Renamed to /pictures birb
  • !doggo
    • Renamed to /pictures doggo
  • !meow
    • Renamed to /pictures meow
  • !snek
    • Renamed to /pictures snek
  • !register
    • Renamed to /register
  • !accept
    • Renamed to /request accept
  • !decline
    • Renamed to /request decline
  • !broadcast
    • Renamed to /server admin broadcast
  • !sqf
    • Renamed to /server admin execute_code
  • !info
    • Renamed to /server admin find
  • !player
    • Renamed to /server admin modify_player
  • !reset
    • Renamed to /server admin reset_player
  • !logs
    • Renamed to /server admin search_logs
  • !server
    • Renamed to /server details
  • !gamble
    • Renamed to /server gamble
  • !me
    • Renamed to /server my player
  • !territories
    • Renamed to /server my territories
  • !reward
    • Renamed to /server reward
  • !stuck
    • Renamed to /server stuck
  • !uptime
    • Renamed to /server uptime
  • !add
    • Renamed to /territory add_player
  • !server_territories
    • Renamed to /territory admin list
  • !restore
    • Renamed to /territory admin restore
  • !demote
    • Renamed to /territory demote_player
  • !pay
    • Renamed to /territory pay
  • !promote
    • Renamed to /territory promote_player
  • !remove
    • Renamed to /territory remove_player
  • !set_id
    • Renamed to /territory set_id
  • !upgrade
    • Renamed to /territory upgrade

esm_website changelog

Core System

  • Added user aliases and defaults to player dashboard
  • Adjusted how URLs are displayed to fix an edge case
  • Improved UI when commands are listed
  • Improved command references in the wiki (check it out!)

esm_arma changelog

No changes this update