Friday, September 20, 2024 4:19:43 AM
> settings

Customize


Authenticate

> eval.rb
# frozen_string_literal: true

module ESM
  module Command
    module Development
      class Eval < ApplicationCommand
        #################################
        #
        # Arguments (required first, then order matters)
        #

        argument :code, required: true, preserve_case: true, description: "Code to execute"

        #
        # Configuration
        #

        change_attribute :allowed_in_text_channels, modifiable: false
        change_attribute :cooldown_time, modifiable: false
        change_attribute :enabled, modifiable: false
        change_attribute :allowlist_enabled, modifiable: false
        change_attribute :allowlisted_role_ids, modifiable: false

        command_type :development

        does_not_require :registration

        requires :dev

        use_root_namespace

        #################################

        # lmao, the amount of rubocop disables in this one method
        def on_execute
          code = arguments.code
          return binding.pry if code == "bd" && ESM.env.development? # rubocop:disable Lint/Debugger

          response = eval arguments.code # rubocop:disable Security/Eval
          reply("Input:\n```ruby\n#{arguments.code}\n```\nOutput:\n```ruby\n#{response.ai(plain: true, index: false)}\n```") # rubocop:disable Rails/Output
        rescue => e
          reply("An error occurred: ```#{e.message}```Backtrace: ```#{e.backtrace[0..2].join("\n")}```")
        end
      end
    end
  end
end
All opinions represented herein are my own
- © 2024 itsthedevman
- build 340fbb8