-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuser-commands.rb
More file actions
74 lines (66 loc) · 2.83 KB
/
user-commands.rb
File metadata and controls
74 lines (66 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# frozen_string_literal: true
require 'discordrb'
require_relative './index.rb'
class MainModule
# @deprecated
def deprecated_method(command, _args, event)
command_language = @language.get_json(event.server.id)['commands']
if command_language['hello']['aliases'].include? command
elsif command_language['modules']['aliases'].include? command
end
end
def register_user_commands
register_hello_command
register_module_command
register_ping_command
register_language_command
end
def register_hello_command
@app_class.register_user_cmd(:hello, ['', 'hello', 'hi', 'info']) do |_command, _args, event|
event << format(@language.get_json(event.server.id)['commands']['hello']['output'], u: event.author.mention, v: CodeDoBo.version, d: CodeDoBo.developer, r: Discordrb::VERSION)
end
end
def register_module_command
@app_class.register_user_cmd(:new, %w[modules module mod m]) do |_command, args, event|
command_language = @language.get_json(event.server.id)['commands']['modules']
if args.empty?
event << format(command_language['output'], c: @module_manager.modules.length, m: @module_manager.module_strings.join(command_language['delimiter']))
elsif args.length == 1
bot_module = @module_manager.get_module_by_string(args[0])
if bot_module
bot_module.app_module.help(event.user, event.channel)
else
event << format(command_language['notexist'], u: event.author.username, m: args[0])
end
else
event << format(command_language['usage'], u: event.author.username)
end
end
end
def register_ping_command
@app_class.register_user_cmd(:ping, %w[ping p]) do |command, args, event|
event << format(@language.get_json(event.server.id)['commands']['ping']['output'], u: event.author.username)
end
end
def register_language_command
@app_class.register_user_cmd(:language, %w[language lang]) do |command, args, event|
if args.length == 1
@module_manager.client[:main].where(server_id: event.server.id).update(language: args[0])
event << format(@language.get_json(event.server.id)['commands']['language']['set'], l: args[0])
elsif args.empty?
event << format(@language.get_json(event.server.id)['commands']['language']['info'], l: @module_manager.client[:main].first(server_id: event.server.id)[:language])
else
event << @language.get_json(event.server.id)['commands']['language']['usage']
end
end
end
def help(_user, channel)
command_language = @language.get_json(channel.server.id)['commands']['help']
channel.send_embed do |embed|
embed.title = command_language['title']
embed.description = command_language['description']
embed.timestamp = Time.now
embed.color = command_language['color']
end
end
end