mij-discord 1.0.8 → 1.0.9
Sign up to get free protection for your applications and to get access to all the features.
- 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
|