advanced_ruby_command_handler 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 29ce9948b2b75e95125369d796c72f092a42892bffc7a66a768dc52d6bebaf18
4
+ data.tar.gz: 74cc5f8f368f366335e011a07de894dcabe6a59a613d552651de81485a881683
5
+ SHA512:
6
+ metadata.gz: 7c08da956a0b831f157c37b79cbe251f0176a6b57f8f65b0f153031547411d5b809bf872e8f6e5da60257676bcce72ecf190ddd8eb8ad26a158f9091545cc8f4
7
+ data.tar.gz: 4f6c83b2a00a332d20e1e7c6e5048fa1fdb4dc71620171064c0febe7adb619e22e8ae7d8810e44693f382c71b23a651adb4c3f7dff5eb684bdcca277623a8b11
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ /.idea/
data/.rubocop.yml ADDED
@@ -0,0 +1,38 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.5
3
+
4
+ Style/StringLiterals:
5
+ Enabled: true
6
+ EnforcedStyle: double_quotes
7
+
8
+ Style/StringLiteralsInInterpolation:
9
+ Enabled: true
10
+ EnforcedStyle: double_quotes
11
+
12
+ Layout/LineLength:
13
+ Max: 200
14
+
15
+ Style/HashSyntax:
16
+ Enabled: true
17
+ EnforcedStyle: hash_rockets
18
+
19
+ Layout/EndOfLine:
20
+ Enabled: false
21
+
22
+ Metrics/ModuleLength:
23
+ Enabled: false
24
+
25
+ Metrics/MethodLength:
26
+ Enabled: false
27
+
28
+ Lint/RedundantStringCoercion:
29
+ Enabled: false
30
+
31
+ Style/Documentation:
32
+ Enabled: false
33
+
34
+ Metrics/PerceivedComplexity:
35
+ Enabled: false
36
+
37
+ Metris/AbcSize:
38
+ Enabled: false
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ ## [Unreleased]
2
+
3
+ ## [0.1.0] - 2021-07-20
4
+
5
+ - Initial release
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in advanced_ruby_command_handler.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
9
+
10
+ gem "rubocop", "~> 1.7"
11
+
12
+ gem "discordrb"
data/Gemfile.lock ADDED
@@ -0,0 +1,75 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ advanced_ruby_command_handler (0.1.1)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ ast (2.4.2)
10
+ discordrb (3.4.0)
11
+ discordrb-webhooks (~> 3.3.0)
12
+ ffi (>= 1.9.24)
13
+ opus-ruby
14
+ rest-client (>= 2.0.0)
15
+ websocket-client-simple (>= 0.3.0)
16
+ discordrb-webhooks (3.3.0)
17
+ rest-client (>= 2.1.0.rc1)
18
+ domain_name (0.5.20190701)
19
+ unf (>= 0.0.5, < 1.0.0)
20
+ event_emitter (0.2.6)
21
+ ffi (1.15.0-x64-mingw32)
22
+ http-accept (1.7.0)
23
+ http-cookie (1.0.3)
24
+ domain_name (~> 0.5)
25
+ mime-types (3.3.1)
26
+ mime-types-data (~> 3.2015)
27
+ mime-types-data (3.2020.1104)
28
+ netrc (0.11.0)
29
+ opus-ruby (1.0.1)
30
+ ffi
31
+ parallel (1.20.1)
32
+ parser (3.0.1.1)
33
+ ast (~> 2.4.1)
34
+ rainbow (3.0.0)
35
+ rake (13.0.3)
36
+ regexp_parser (2.1.1)
37
+ rest-client (2.1.0-x64-mingw32)
38
+ ffi (~> 1.9)
39
+ http-accept (>= 1.7.0, < 2.0)
40
+ http-cookie (>= 1.0.2, < 2.0)
41
+ mime-types (>= 1.16, < 4.0)
42
+ netrc (~> 0.8)
43
+ rexml (3.2.5)
44
+ rubocop (1.18.1)
45
+ parallel (~> 1.10)
46
+ parser (>= 3.0.0.0)
47
+ rainbow (>= 2.2.2, < 4.0)
48
+ regexp_parser (>= 1.8, < 3.0)
49
+ rexml
50
+ rubocop-ast (>= 1.7.0, < 2.0)
51
+ ruby-progressbar (~> 1.7)
52
+ unicode-display_width (>= 1.4.0, < 3.0)
53
+ rubocop-ast (1.7.0)
54
+ parser (>= 3.0.1.1)
55
+ ruby-progressbar (1.11.0)
56
+ unf (0.1.4)
57
+ unf_ext
58
+ unf_ext (0.0.7.7)
59
+ unicode-display_width (2.0.0)
60
+ websocket (1.2.9)
61
+ websocket-client-simple (0.3.0)
62
+ event_emitter
63
+ websocket
64
+
65
+ PLATFORMS
66
+ x64-mingw32
67
+
68
+ DEPENDENCIES
69
+ advanced_ruby_command_handler!
70
+ discordrb
71
+ rake (~> 13.0)
72
+ rubocop (~> 1.7)
73
+
74
+ BUNDLED WITH
75
+ 2.2.26
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2021 senchuu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,92 @@
1
+ # AdvancedRubyCommandHandler
2
+ ## Installation
3
+
4
+ Add this line to your application's Gemfile:
5
+
6
+ ```ruby
7
+ gem 'advanced_ruby_command_handler'
8
+ ```
9
+
10
+ And then execute:
11
+
12
+ $ bundle install
13
+
14
+ Or install it yourself as:
15
+
16
+ $ gem install advenced_ruby_command_handler
17
+
18
+ ## Usage
19
+
20
+ ### Base Usage
21
+
22
+ Firstly, you have to create a ruby file, where you put the followwing line:
23
+ ```rb
24
+ require "advanced_ruby_command_handler"
25
+ ```
26
+
27
+ Then, initialize the command handler. Specifying the directories and the config file path
28
+
29
+ ```rb
30
+ client = CommandHandler.new(commands_dir: "src/commands", events_dir: "src/events", config_file: "src/private/config.yml")
31
+ ```
32
+ Note: if these files dose not exist, the command handler will create them
33
+
34
+ And run the bot:
35
+ ```ruby
36
+ client.run
37
+ ```
38
+
39
+ ### Events&Commands
40
+
41
+ The command handler have base events as message or ready, but you can create your owns events (in events directory).
42
+
43
+ Create a file with the name of your event (see https://www.rubydoc.info/github/meew0/discordrb/Discordrb/Events)
44
+
45
+ And use the following template:
46
+ ```ruby
47
+ # frozen_string_literal: true
48
+
49
+ module Events
50
+ def self.<event>(client)
51
+ client.<event> do
52
+ client.console_logger.info("Event!")
53
+ end
54
+ end
55
+ end
56
+ ```
57
+ Now, when the event will be emitted, the program will puts "Event!"
58
+
59
+ If you want to add some commands in your bot, you can create sub directories in your command directory.
60
+ In these directories, you can create ruby files for commands, here's an example:
61
+
62
+ ```ruby
63
+ # frozen_string_literal: true
64
+
65
+ require_relative "advanced_ruby_command_handler"
66
+
67
+ module Commands
68
+ def self.hello
69
+ CommandHandler::Command.new({
70
+ :name => "hello"
71
+ }) do |message, client|
72
+ message.respond "Hello Discord!"
73
+ end
74
+ end
75
+ end
76
+ ```
77
+
78
+ Now you can create events and commands ! ;)
79
+
80
+ ## Development
81
+
82
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
83
+
84
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
85
+
86
+ ## Contributing
87
+
88
+ Bug reports and pull requests are welcome on GitHub at https://github.com/Senchuu/Advanced-Bot.rb.
89
+
90
+ ## License
91
+
92
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rubocop/rake_task"
5
+
6
+ RuboCop::RakeTask.new
7
+
8
+ task :default => :rubocop
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/advanced_ruby_command_handler/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "advanced_ruby_command_handler"
7
+ spec.version = AdvancedRubyCommandHandler::VERSION
8
+ spec.authors = ["senchuu"]
9
+ spec.email = ["senchuuuu@gmail.com"]
10
+
11
+ spec.summary = "an advanced discord bot command handler"
12
+ spec.description = spec.summary
13
+ spec.homepage = "https://github.com/Senchuu/Advanced-Bot.rb"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 2.4.0"
16
+
17
+ spec.metadata["allowed_push_host"] = "https://rubygems.org/"
18
+
19
+ spec.metadata["homepage_uri"] = spec.homepage
20
+ spec.metadata["source_code_uri"] = "https://github.com/Senchuu/Advanced-Bot.rb"
21
+ spec.metadata["changelog_uri"] = "https://github.com/Senchuu/Advanced-Bot.rb"
22
+
23
+ # Specify which files should be added to the gem when it is released.
24
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features|logs)/}) }
27
+ end
28
+ spec.bindir = "exe"
29
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
+ spec.require_paths = ["lib"]
31
+
32
+ # Uncomment to register a new dependency of your gem
33
+ # spec.add_dependency "example-gem", "~> 1.0"
34
+
35
+ # For more information and examples about making a new gem, checkout our
36
+ # guide at: https://bundler.io/guides/creating_gem.html
37
+ end
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "advanced_ruby_command_handler"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require "irb"
15
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../version"
4
+ require_relative "logger"
5
+ require_relative "client"
6
+
7
+ module AdvancedRubyCommandHandler; end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "discordrb"
4
+ require "fileutils"
5
+ require "yaml"
6
+ require_relative "command_handler"
7
+ require_relative "event_handler"
8
+
9
+ module AdvancedRubyCommandHandler
10
+ class Client < Discordrb::Bot
11
+ attr_reader :commands_dir, :events_dir, :commands, :config, :console_logger, :file_logger
12
+
13
+ def initialize(commands_dir: "commands", events_dir: "events", config_file: "config.yml")
14
+ FileUtils.mkdir_p [commands_dir, events_dir]
15
+ @commands_dir = commands_dir
16
+ @events_dir = events_dir
17
+ @file_logger = AdvancedRubyCommandHandler::Logger.new(:file)
18
+ @console_logger = AdvancedRubyCommandHandler::Logger.new(:console)
19
+
20
+ base_data = YAML.dump({
21
+ :token => "",
22
+ :prefix => "",
23
+ :owners => []
24
+ })
25
+
26
+ File.open(config_file, "w+") { |file| file.write(base_data) } unless File.exist? config_file
27
+
28
+ @config = YAML.load_file(config_file)
29
+
30
+ %i[token prefix owners].each do |prop|
31
+ next if @config[prop] && !@config[prop].empty?
32
+
33
+ @console_logger.error("You have to add '#{prop.to_s}' value in your config file")
34
+ raise "'#{prop}' missing or empty"
35
+ end
36
+
37
+ super(:token => @config[:token])
38
+
39
+ @commands = AdvancedRubyCommandHandler::CommandHandler.load_commands(self)
40
+ AdvancedRubyCommandHandler::EventHandler.load_events(self)
41
+ .each do |event|
42
+ Events.method(event).call(self)
43
+ end
44
+ end
45
+
46
+ def run
47
+ @console_logger.info("Client login!")
48
+
49
+ Thread.new do
50
+ @console_logger.info("Type '.exit' to turn off the bot")
51
+ # @console_logger.info("Type '.reload' to reload the bot")
52
+
53
+ exit if $stdin.gets.chomp == ".exit"
54
+ end
55
+
56
+ super.run
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CommandHandler
4
+ class Command
5
+ attr_reader :props, :run
6
+
7
+ def initialize(props, &run)
8
+ @props = props
9
+ @run = run
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "app"
4
+
5
+ module AdvancedRubyCommandHandler
6
+ module CommandHandler
7
+ def self.load_commands(client)
8
+ commands = []
9
+ Dir.entries(client.commands_dir).each do |dir|
10
+ next if %w[. ..].include?(dir)
11
+
12
+ Dir.entries("#{client.commands_dir}/#{dir}").each do |file|
13
+ next if %w(. ..).include?(file)
14
+
15
+ load "#{client.commands_dir}/#{dir}/#{file}"
16
+
17
+ commands << File.basename(file, ".rb")
18
+ end
19
+ end
20
+ commands
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "app"
4
+
5
+ module AdvancedRubyCommandHandler
6
+ module EventHandler
7
+ def self.load_events(client)
8
+ events = []
9
+ Dir.entries(client.events_dir).each do |file|
10
+ next if %w[. ..].include?(file)
11
+
12
+ load "#{client.events_dir}/#{file}"
13
+ events << File.basename(file, ".rb")
14
+ end
15
+
16
+ Dir.entries("lib/advanced_ruby_command_handler/defaults/events").each do |file|
17
+ next if %w(. ..).include?(file)
18
+
19
+ next if events.include?(File.basename(file, ".rb"))
20
+
21
+ load "lib/advanced_ruby_command_handler/defaults/events/#{file}"
22
+
23
+ events << File.basename(file, ".rb")
24
+ end
25
+
26
+ events
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "fileutils"
4
+
5
+ module AdvancedRubyCommandHandler
6
+ class Logger
7
+ attr_reader :mode
8
+ attr_accessor :write_targets
9
+
10
+ COLORS = {
11
+ :default => "\e[38m",
12
+ :white => "\e[39m",
13
+ :black => "\e[30m",
14
+ :red => "\e[31m",
15
+ :green => "\e[32m",
16
+ :brown => "\e[33m",
17
+ :blue => "\e[34m",
18
+ :magenta => "\e[35m",
19
+ :cyan => "\e[36m",
20
+ :gray => "\e[37m",
21
+ :yellow => "\e[33m"
22
+ }.freeze
23
+ MODES = {
24
+ :info => :cyan,
25
+ :error => :red,
26
+ :warn => :yellow,
27
+ :check => :green
28
+ }.freeze
29
+ def initialize(mode = :console, write_targets = { :errors => "logs/errors.txt", :informations => "logs/infos.txt" })
30
+ @mode = mode.to_sym
31
+ @write_targets = write_targets if @mode == :file
32
+ end
33
+
34
+ def console_color(color, message)
35
+ "#{COLORS[color]}#{message}\e[0m"
36
+ end
37
+
38
+ def write(message, write_target = :informations)
39
+ return Logger.new(:console).warn("The file logs aren't available on #{@mode} mode") unless @mode == :file
40
+
41
+ time = Time.now.strftime("%Y-%m-%d-%H:%M:%S")
42
+
43
+ FileUtils.mkdir_p File.dirname @write_targets[write_target]
44
+
45
+ File.open(@write_targets[write_target], "w") unless File.exist? @write_targets[write_target]
46
+
47
+ File.open(@write_targets[write_target], "a+") do |file|
48
+ file.write("#{time} - #{write_target.to_s.upcase} : #{message}\n")
49
+ end
50
+ end
51
+
52
+ MODES.each do |mode, color|
53
+ define_method(mode) do |message|
54
+ return Logger.new(:console).warn("The console logs aren't available on #{@mode} mode") unless @mode == :console
55
+
56
+ time = Time.now.strftime("%Y-%m-%d-%H:%M:%S")
57
+ puts "[#{console_color(:magenta, time)}] - [#{console_color(color, mode.to_s.upcase)}] : #{message.to_s}"
58
+ end
59
+ end
60
+
61
+ private :console_color
62
+ end
63
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CommandHandler
4
+ module Utils
5
+ def self.get_command(command_name)
6
+ return Commands.method(command_name).call if defined?(Commands) && Commands.respond_to?(command_name)
7
+
8
+ false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../app/utils"
4
+
5
+ module Events
6
+ def self.message(client)
7
+ client.message(:start_with => client.config[:prefix]) do |message|
8
+ args = message.content.slice(client.config[:prefix].size, message.content.size).split(" ")
9
+ name = args.shift
10
+ command = CommandHandler::Utils.get_command(name)
11
+
12
+ next unless command
13
+
14
+ command.run.call(message, client)
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Events
4
+ def self.ready(client)
5
+ client.ready do
6
+ client.console_logger.info("Client ready!")
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AdvancedRubyCommandHandler
4
+ VERSION = "0.1.1"
5
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "advanced_ruby_command_handler/app/app"
4
+ require_relative "advanced_ruby_command_handler/app/command"
5
+ require_relative "advanced_ruby_command_handler/app/utils"
6
+
7
+
8
+ module CommandHandler
9
+ def self.new(commands_dir: "commands", events_dir: "events", config_file: "config.yml")
10
+ AdvancedRubyCommandHandler::Client.new(:commands_dir => commands_dir, :events_dir => events_dir, :config_file => config_file)
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../lib/advanced_ruby_command_handler/app/command"
4
+
5
+ module Commands
6
+ def self.test
7
+ CommandHandler::Command.new({
8
+ :name => "test"
9
+ }) do |message, client|
10
+ message.respond "Command test!"
11
+ end
12
+ end
13
+ end
data/tests/config.yml ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ :token: 'NzEwMTIxODk2OTM0NjM3NjY5.Xrv2jQ.4v9551dYI5nqRSIGfYy19APUmbA'
3
+ :prefix: '!'
4
+ :owners: [123456789]
data/tests/index.rb ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../lib/advanced_ruby_command_handler"
4
+
5
+ CommandHandler.new(:commands_dir => "tests/commands", :events_dir => "tests/events", :config_file => "tests/config.yml")
6
+ .run
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: advanced_ruby_command_handler
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - senchuu
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-08-26 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: an advanced discord bot command handler
14
+ email:
15
+ - senchuuuu@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".gitignore"
21
+ - ".rubocop.yml"
22
+ - CHANGELOG.md
23
+ - Gemfile
24
+ - Gemfile.lock
25
+ - LICENSE.txt
26
+ - README.md
27
+ - Rakefile
28
+ - advanced_ruby_command_handler.gemspec
29
+ - bin/console
30
+ - bin/setup
31
+ - lib/advanced_ruby_command_handler.rb
32
+ - lib/advanced_ruby_command_handler/app/app.rb
33
+ - lib/advanced_ruby_command_handler/app/client.rb
34
+ - lib/advanced_ruby_command_handler/app/command.rb
35
+ - lib/advanced_ruby_command_handler/app/command_handler.rb
36
+ - lib/advanced_ruby_command_handler/app/event_handler.rb
37
+ - lib/advanced_ruby_command_handler/app/logger.rb
38
+ - lib/advanced_ruby_command_handler/app/utils.rb
39
+ - lib/advanced_ruby_command_handler/defaults/events/message.rb
40
+ - lib/advanced_ruby_command_handler/defaults/events/ready.rb
41
+ - lib/advanced_ruby_command_handler/version.rb
42
+ - tests/commands/test/test.rb
43
+ - tests/config.yml
44
+ - tests/index.rb
45
+ homepage: https://github.com/Senchuu/Advanced-Bot.rb
46
+ licenses:
47
+ - MIT
48
+ metadata:
49
+ allowed_push_host: https://rubygems.org/
50
+ homepage_uri: https://github.com/Senchuu/Advanced-Bot.rb
51
+ source_code_uri: https://github.com/Senchuu/Advanced-Bot.rb
52
+ changelog_uri: https://github.com/Senchuu/Advanced-Bot.rb
53
+ post_install_message:
54
+ rdoc_options: []
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 2.4.0
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ requirements: []
68
+ rubygems_version: 3.2.26
69
+ signing_key:
70
+ specification_version: 4
71
+ summary: an advanced discord bot command handler
72
+ test_files: []