mij-discord 1.0.8 → 1.0.9
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/lib/mij-discord/bot.rb +16 -1
- data/lib/mij-discord/data/emoji.rb +13 -9
- data/lib/mij-discord/data/message.rb +40 -8
- data/lib/mij-discord/data/server.rb +12 -4
- data/lib/mij-discord/events/message.rb +1 -1
- data/lib/mij-discord/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebc5f61a41aee441ed9a1d69a93f995fc96934d0
|
4
|
+
data.tar.gz: dcfb7ee3f5c9cfc9e82dbe4d2cc45e5ae2816cb1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f68e2a58808f9ae6a33fc8b22948796953135f0c7d7820df2c4d033d9c3a00891f39022287aeb39dc69e8654f4e05619731c540fbe4bbf25518417ffd139e619
|
7
|
+
data.tar.gz: 15d6056effdbe7da11d6d8508aadb59cb45113b72635e18fd7574adc4bd1e630f229f0ca1c117d170e5a9addb3b4ebf0085250ba34394d32111b96bd2296724e
|
data/lib/mij-discord/bot.rb
CHANGED
@@ -270,7 +270,7 @@ module MijDiscord
|
|
270
270
|
end
|
271
271
|
|
272
272
|
em_data = { 'id' => $3.to_i, 'name' => $2, 'animated' => !$1.empty? }
|
273
|
-
MijDiscord::Data::Emoji.new(em_data,
|
273
|
+
MijDiscord::Data::Emoji.new(em_data, nil)
|
274
274
|
end
|
275
275
|
end
|
276
276
|
|
@@ -381,6 +381,9 @@ module MijDiscord
|
|
381
381
|
|
382
382
|
notify_ready if @unavailable_servers.zero?
|
383
383
|
|
384
|
+
when :SESSIONS_REPLACE
|
385
|
+
# Do nothing with session replace because no idea what it does.
|
386
|
+
|
384
387
|
when :GUILD_MEMBERS_CHUNK
|
385
388
|
server = @cache.get_server(data['guild_id'])
|
386
389
|
server.update_members_chunk(data['members'])
|
@@ -527,6 +530,10 @@ module MijDiscord
|
|
527
530
|
messages.each {|x| trigger_event(:delete_message, self, x) }
|
528
531
|
|
529
532
|
when :MESSAGE_REACTION_ADD
|
533
|
+
channel = @cache.get_channel(data['channel_id'], nil)
|
534
|
+
message = channel.cache.get_message(data['message_id'], local: true)
|
535
|
+
message.update_reaction(add: data) if message
|
536
|
+
|
530
537
|
# Should add full use ignore support?
|
531
538
|
return if ignored_user?(data['user_id'])
|
532
539
|
|
@@ -534,6 +541,10 @@ module MijDiscord
|
|
534
541
|
trigger_event(:toggle_reaction, self, data)
|
535
542
|
|
536
543
|
when :MESSAGE_REACTION_REMOVE
|
544
|
+
channel = @cache.get_channel(data['channel_id'], nil)
|
545
|
+
message = channel.cache.get_message(data['message_id'], local: true)
|
546
|
+
message.update_reaction(remove: data) if message
|
547
|
+
|
537
548
|
# Should add full use ignore support?
|
538
549
|
return if ignored_user?(data['user_id'])
|
539
550
|
|
@@ -541,6 +552,10 @@ module MijDiscord
|
|
541
552
|
trigger_event(:toggle_reaction, self, data)
|
542
553
|
|
543
554
|
when :MESSAGE_REACTION_REMOVE_ALL
|
555
|
+
channel = @cache.get_channel(data['channel_id'], nil)
|
556
|
+
message = channel.cache.get_message(data['message_id'], local: true)
|
557
|
+
message.update_reaction(clear: true) if message
|
558
|
+
|
544
559
|
trigger_event(:clear_reactions, self, data)
|
545
560
|
|
546
561
|
when :TYPING_START
|
@@ -12,8 +12,8 @@ module MijDiscord::Data
|
|
12
12
|
|
13
13
|
attr_reader :animated
|
14
14
|
|
15
|
-
def initialize(data,
|
16
|
-
@
|
15
|
+
def initialize(data, server)
|
16
|
+
@server = server
|
17
17
|
|
18
18
|
@id = data['id'].to_i
|
19
19
|
@name = data['name']
|
@@ -46,22 +46,26 @@ module MijDiscord::Data
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
class Reaction
|
50
|
-
attr_reader :
|
51
|
-
|
52
|
-
attr_reader :name
|
49
|
+
class Reaction < Emoji
|
50
|
+
attr_reader :message
|
53
51
|
|
54
52
|
attr_reader :count
|
55
53
|
|
56
54
|
attr_reader :me
|
57
55
|
alias_method :me?, :me
|
58
56
|
|
59
|
-
def initialize(data)
|
57
|
+
def initialize(data, message)
|
58
|
+
super(data['emoji'], nil)
|
59
|
+
|
60
|
+
@message = message
|
61
|
+
|
60
62
|
@me = !!data['me']
|
61
63
|
@count = data['count'] || 1
|
64
|
+
end
|
62
65
|
|
63
|
-
|
64
|
-
@
|
66
|
+
def update_data(count: nil, me: nil)
|
67
|
+
@count = count unless count.nil?
|
68
|
+
@me = me unless me.nil?
|
65
69
|
end
|
66
70
|
|
67
71
|
def inspect
|
@@ -30,7 +30,7 @@ module MijDiscord::Data
|
|
30
30
|
|
31
31
|
attr_reader :embeds
|
32
32
|
|
33
|
-
|
33
|
+
attr_reader :reactions
|
34
34
|
|
35
35
|
attr_reader :tts
|
36
36
|
alias_method :tts?, :tts
|
@@ -81,10 +81,10 @@ module MijDiscord::Data
|
|
81
81
|
|
82
82
|
@mention_everyone = !!data['mention_everyone']
|
83
83
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
84
|
+
@reactions = []
|
85
|
+
if (reactions = data['reactions'])
|
86
|
+
reactions.each {|x| @reactions << Reaction.new(x, self) }
|
87
|
+
end
|
88
88
|
|
89
89
|
@user_mentions = []
|
90
90
|
if (mentions = data['mentions'])
|
@@ -107,6 +107,38 @@ module MijDiscord::Data
|
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
110
|
+
def update_reaction(add: nil, remove: nil, clear: false)
|
111
|
+
@reactions.clear if clear
|
112
|
+
|
113
|
+
unless add.nil?
|
114
|
+
id = add['emoji']['id'].to_i
|
115
|
+
name = add['emoji']['name']
|
116
|
+
userid = add['user_id'].to_i
|
117
|
+
|
118
|
+
if (emoji = @reactions.find {|x| id.zero? ? (x.name == name) : (x.id == id) })
|
119
|
+
emoji.update_data(count: emoji.count + 1, me: @bot.profile == userid ? true : nil)
|
120
|
+
else
|
121
|
+
emoji = Reaction.new(add, self)
|
122
|
+
emoji.update_data(me: @bot.profile == userid)
|
123
|
+
@reactions << emoji
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
unless remove.nil?
|
128
|
+
id = remove['emoji']['id'].to_i
|
129
|
+
name = remove['emoji']['name']
|
130
|
+
userid = remove['user_id'].to_i
|
131
|
+
|
132
|
+
if (emoji = @reactions.find {|x| id.zero? ? (x.name == name) : (x.id == id) })
|
133
|
+
emoji.update_data(count: emoji.count - 1, me: @bot.profile == userid ? false : nil)
|
134
|
+
@reactions.delete(emoji) if emoji.count < 1
|
135
|
+
else
|
136
|
+
# WTF? How did this happen?
|
137
|
+
MijDiscord::LOGGER.warn('Events') { 'MESSAGE_REACTION_REMOVE triggered on message with no reactions!' }
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
110
142
|
def reply(text: '', embed: nil, tts: false)
|
111
143
|
@channel.send_message(text: text, embed: embed, tts: tts)
|
112
144
|
end
|
@@ -144,9 +176,9 @@ module MijDiscord::Data
|
|
144
176
|
!@webhook_id.nil?
|
145
177
|
end
|
146
178
|
|
147
|
-
|
148
|
-
|
149
|
-
|
179
|
+
def my_reactions
|
180
|
+
@reactions.select(&:me)
|
181
|
+
end
|
150
182
|
|
151
183
|
def create_reaction(reaction)
|
152
184
|
emoji = reaction.respond_to?(:reaction) ? reaction.reaction : reaction
|
@@ -109,7 +109,7 @@ module MijDiscord::Data
|
|
109
109
|
def update_emojis(data)
|
110
110
|
@emojis = {}
|
111
111
|
data['emojis'].each do |em|
|
112
|
-
emoji = MijDiscord::Data::Emoji.new(em,
|
112
|
+
emoji = MijDiscord::Data::Emoji.new(em, self)
|
113
113
|
@emojis[emoji.id] = emoji
|
114
114
|
end
|
115
115
|
end
|
@@ -216,12 +216,20 @@ module MijDiscord::Data
|
|
216
216
|
@voice_states[id&.to_id]
|
217
217
|
end
|
218
218
|
|
219
|
-
def default_channel
|
219
|
+
def default_channel(can_send = false)
|
220
220
|
text_channels.sort_by {|ch| [ch.position, ch.id] }.find do |ch|
|
221
221
|
if (overwrite = ch.permission_overwrites[id])
|
222
|
-
|
222
|
+
if can_send
|
223
|
+
overwrite.allow.send_messages? || !overwrite.deny.send_messages?
|
224
|
+
else
|
225
|
+
overwrite.allow.read_messages? || !overwrite.deny.read_messages?
|
226
|
+
end
|
223
227
|
else
|
224
|
-
|
228
|
+
if can_send
|
229
|
+
everyone_role.permissions.send_messages
|
230
|
+
else
|
231
|
+
everyone_role.permissions.read_messages
|
232
|
+
end
|
225
233
|
end
|
226
234
|
end
|
227
235
|
end
|
data/lib/mij-discord/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mij-discord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mijyuoon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|