generated from codedobo/module
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.rb
67 lines (61 loc) · 1.74 KB
/
index.rb
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
# frozen_string_literal: true
require_relative './user-commands.rb'
require_relative './console-commands.rb'
require_relative './setup.rb'
require_relative './events.rb'
class NicknamerModule include CodeDoBo::BotModule
def initialize(app_class, module_manager)
@module_manager = module_manager
@app_class = app_class
@client = module_manager.client
send_message "\u001b[96mStarting nicknamer module..."
@language = CodeDoBo::Language.new module_manager.client, __dir__ + '/language'
setup
events
send_message "\u001b[32mSuccessfully started nicknamer module!"
end
def on_enable
register_console_commands
register_user_commands
end
#
# Get the nickname of a member
#
# @param [Discordrb::Member] member
#
# @return [String]
#
def get_nickname(member)
nickname = ""
entry = @client[:nicknamer].first(server_id: member.server.id, role: member.colour_role.id)
if entry
nickname += (entry[:upper_prefix] || "") + " "
end
nickname += member.roles.map {|role|
role_entry = @client[:nicknamer].first(server_id: role.server.id, role: role.id)
role_entry[:normal_prefix] if role_entry
}.join(" ")
nickname += member.name + " "
nickname += member.roles.map {|role|
role_entry = @client[:nicknamer].first(server_id: role.server.id, role: role.id)
role_entry[:normal_suffix] if role_entry
}.join(" ")
if entry
nickname += (entry[:upper_suffix] || "")
end
nickname
end
#
# Update the nickname of the user
#
# @param [Discordrb::Member] member
#
# @return [void]
#
def update_nickname(member)
nickname = get_nickname(member)
if member.display_name != nickname
member.set_nick nickname
end
end
end