advanced_ruby_command_handler 0.1.3 → 0.1.5
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 +4 -4
- data/.gitignore +3 -1
- data/Gemfile.lock +2 -1
- data/advanced_ruby_command_handler.gemspec +1 -2
- data/lib/advanced_ruby_command_handler/app/client.rb +6 -2
- data/lib/advanced_ruby_command_handler/app/command.rb +44 -1
- data/lib/advanced_ruby_command_handler/app/command_handler.rb +3 -1
- data/lib/advanced_ruby_command_handler/app/defaults/events/message.rb +8 -1
- data/lib/advanced_ruby_command_handler/app/event_handler.rb +1 -1
- data/lib/advanced_ruby_command_handler/app/logger.rb +0 -1
- data/lib/advanced_ruby_command_handler/app/utils.rb +8 -0
- data/lib/advanced_ruby_command_handler/version.rb +1 -1
- data/lib/advanced_ruby_command_handler.rb +19 -12
- data/tests/commands/test/test.rb +9 -3
- data/tests/config.yml +1 -1
- data/tests/events/ready.rb +0 -1
- data/tests/index.rb +0 -1
- metadata +17 -5
- data/advanced_ruby_command_handler-0.1.1.gem +0 -0
- data/advanced_ruby_command_handler-0.1.2.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b97941216c2de5b7a5c5eac1d8613b3fb6e0670e2c52e9efb01337ab7d9be3ff
|
4
|
+
data.tar.gz: 1d11b79ca18ebb54e0fd7463e359955e005b022c326866a412cbe491d757e759
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ba9dca758046935b6fe4e888401eda55575461325d76fe5afbac37037de4c2b84f52f0d9ce9aa8004b121a7e2b8b3ae7e00a8c9aa7c601fa05d99a5c0176de7
|
7
|
+
data.tar.gz: e21cd5ddac2ad88a7604eac57fa1b0919f723ef995d44758322053339a03820013ba05b7e72103fec3f5979c89942a1569c96950445bb29e924fcdfc5d4053b7
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -29,8 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
30
30
|
spec.require_paths = ["lib"]
|
31
31
|
|
32
|
-
|
33
|
-
# spec.add_dependency "example-gem", "~> 1.0"
|
32
|
+
spec.add_dependency "discordrb"
|
34
33
|
|
35
34
|
# For more information and examples about making a new gem, checkout our
|
36
35
|
# guide at: https://bundler.io/guides/creating_gem.html
|
@@ -5,6 +5,7 @@ require "fileutils"
|
|
5
5
|
require "yaml"
|
6
6
|
require_relative "command_handler"
|
7
7
|
require_relative "event_handler"
|
8
|
+
require_relative "utils"
|
8
9
|
|
9
10
|
module AdvancedRubyCommandHandler
|
10
11
|
class Client < Discordrb::Bot
|
@@ -41,6 +42,8 @@ module AdvancedRubyCommandHandler
|
|
41
42
|
.each do |event|
|
42
43
|
Events.method(event).call(self)
|
43
44
|
end
|
45
|
+
|
46
|
+
at_exit { @console_logger.info("Application exited") }
|
44
47
|
end
|
45
48
|
|
46
49
|
def run
|
@@ -49,8 +52,9 @@ module AdvancedRubyCommandHandler
|
|
49
52
|
Thread.new do
|
50
53
|
@console_logger.info("Type '.exit' to turn off the bot")
|
51
54
|
# @console_logger.info("Type '.reload' to reload the bot")
|
52
|
-
|
53
|
-
|
55
|
+
loop do
|
56
|
+
Process.exit!(true) if $stdin.gets.chomp == ".exit"
|
57
|
+
end
|
54
58
|
end
|
55
59
|
|
56
60
|
super.run
|
@@ -5,8 +5,51 @@ module CommandHandler
|
|
5
5
|
attr_reader :props, :run
|
6
6
|
|
7
7
|
def initialize(props, &run)
|
8
|
-
@props = props
|
8
|
+
@props = load_proprieties(props)
|
9
9
|
@run = run
|
10
10
|
end
|
11
|
+
|
12
|
+
def load_proprieties(props)
|
13
|
+
return props unless props.instance_of?(Hash)
|
14
|
+
|
15
|
+
props[:aliases] ||= nil
|
16
|
+
props[:description] ||= nil
|
17
|
+
props[:args] ||= nil
|
18
|
+
props[:strict_args] ||= false
|
19
|
+
props[:use_example] ||= nil
|
20
|
+
props[:category] ||= nil
|
21
|
+
props[:user_permissions] ||= []
|
22
|
+
props[:client_permissions] ||= []
|
23
|
+
if props[:client_permissions].instance_of?(Array) && props[:client_permissions].empty?
|
24
|
+
props[:client_permissions].push(
|
25
|
+
:add_reactions,
|
26
|
+
:send_messages,
|
27
|
+
:embed_links,
|
28
|
+
:attach_files,
|
29
|
+
:use_external_emoji
|
30
|
+
)
|
31
|
+
elsif props[:client_permissions] == :default
|
32
|
+
props[:client_permissions] = %i[
|
33
|
+
add_reactions
|
34
|
+
send_messages
|
35
|
+
embed_links
|
36
|
+
attach_files
|
37
|
+
use_external_emoji
|
38
|
+
]
|
39
|
+
end
|
40
|
+
|
41
|
+
Hash[
|
42
|
+
:name => props[:name],
|
43
|
+
:aliases => props[:aliases],
|
44
|
+
:description => props[:description],
|
45
|
+
:args => props[:args],
|
46
|
+
:strict_args => props[:strict_args],
|
47
|
+
:use_example => props[:use_example],
|
48
|
+
:category => props[:category],
|
49
|
+
:user_permissions => props[:user_permissions],
|
50
|
+
:client_permissions => props[:client_permissions]
|
51
|
+
]
|
52
|
+
end
|
53
|
+
private :load_proprieties
|
11
54
|
end
|
12
55
|
end
|
@@ -10,7 +10,9 @@ module AdvancedRubyCommandHandler
|
|
10
10
|
next if %w[. ..].include?(dir)
|
11
11
|
|
12
12
|
Dir.entries("#{client.commands_dir}/#{dir}").each do |file|
|
13
|
-
next if %w
|
13
|
+
next if %w[. ..].include?(file)
|
14
|
+
|
15
|
+
p "#{client.commands_dir}/#{dir}/#{file}"
|
14
16
|
|
15
17
|
load "#{client.commands_dir}/#{dir}/#{file}"
|
16
18
|
|
@@ -11,7 +11,14 @@ module Events
|
|
11
11
|
|
12
12
|
next unless command
|
13
13
|
|
14
|
-
|
14
|
+
begin
|
15
|
+
command.run.call(message, client)
|
16
|
+
rescue StandardError => e
|
17
|
+
client.console_logger.error(e)
|
18
|
+
client.file_logger.write(e, :errors)
|
19
|
+
ensure
|
20
|
+
client.console_logger.info("Command '#{command.props[:name]}' used by #{message.author.username}")
|
21
|
+
end
|
15
22
|
end
|
16
23
|
end
|
17
24
|
end
|
@@ -13,7 +13,7 @@ module AdvancedRubyCommandHandler
|
|
13
13
|
events << File.basename(file, ".rb")
|
14
14
|
end
|
15
15
|
|
16
|
-
Dir["#{File.dirname(__FILE__)}/defaults/events/*.rb"].each do |file|
|
16
|
+
Dir["#{File.dirname(__FILE__)}/defaults/events/*.rb"].sort.each do |file|
|
17
17
|
next if events.include?(File.basename(file, ".rb"))
|
18
18
|
|
19
19
|
require file
|
@@ -1,12 +1,19 @@
|
|
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
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
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
|
+
# Represent the CommandHandler as a simply class
|
9
|
+
module CommandHandler
|
10
|
+
##
|
11
|
+
# @!method new
|
12
|
+
# @param [String] commands_dir The command's directory path
|
13
|
+
# @param [String] events_dir The event's directory path
|
14
|
+
# @param [String] config_file The config's file path
|
15
|
+
# @return [AdvancedRubyCommandHandler::Client] the created client
|
16
|
+
def self.new(commands_dir: "commands", events_dir: "events", config_file: "config.yml")
|
17
|
+
AdvancedRubyCommandHandler::Client.new(:commands_dir => commands_dir, :events_dir => events_dir, :config_file => config_file)
|
18
|
+
end
|
19
|
+
end
|
data/tests/commands/test/test.rb
CHANGED
@@ -1,13 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "../../../lib/advanced_ruby_command_handler/app/command"
|
4
|
+
require_relative "../../../lib/advanced_ruby_command_handler/app/utils"
|
4
5
|
|
5
6
|
module Commands
|
6
7
|
def self.test
|
7
8
|
CommandHandler::Command.new({
|
8
|
-
:name => "test"
|
9
|
-
|
10
|
-
|
9
|
+
:name => "test",
|
10
|
+
:aliases => ["t"],
|
11
|
+
:description => "Une commande pour faire des tests!",
|
12
|
+
:args => false,
|
13
|
+
:use_example => :default,
|
14
|
+
:category => :default
|
15
|
+
}) do |message, _client|
|
16
|
+
message.respond "Test"
|
11
17
|
end
|
12
18
|
end
|
13
19
|
end
|
data/tests/config.yml
CHANGED
data/tests/events/ready.rb
CHANGED
data/tests/index.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: advanced_ruby_command_handler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- senchuu
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
12
|
-
dependencies:
|
11
|
+
date: 2021-09-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: discordrb
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
description: an advanced discord bot command handler
|
14
28
|
email:
|
15
29
|
- senchuuuu@gmail.com
|
@@ -27,8 +41,6 @@ files:
|
|
27
41
|
- LICENSE.txt
|
28
42
|
- README.md
|
29
43
|
- Rakefile
|
30
|
-
- advanced_ruby_command_handler-0.1.1.gem
|
31
|
-
- advanced_ruby_command_handler-0.1.2.gem
|
32
44
|
- advanced_ruby_command_handler.gemspec
|
33
45
|
- bin/console
|
34
46
|
- bin/setup
|
Binary file
|
Binary file
|