qwtf_discord_bot 6.0.3 → 6.1.3
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/Gemfile.lock +1 -1
- data/README.md +8 -0
- data/VERSION +1 -1
- data/lib/dashboard.rb +0 -1
- data/lib/pug.rb +54 -28
- data/lib/qstat_request.rb +19 -34
- data/lib/qwtf_discord_bot/qwtf_discord_bot_pug.rb +50 -30
- data/lib/qwtf_discord_bot/qwtf_discord_bot_server.rb +38 -53
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef8bda609c0735d9ba3ba074c3f53a963c2d2cc7f933af4965ba9fb797b7d151
|
4
|
+
data.tar.gz: de760869c4380aa7d14ec16b7828655b1534c41aa3808a6c26d8f36a5694e7dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec8f53ff7b12188bab9059db811c478b7010a105e7d37e626816da5d03003502030515e7ab918b521ec0d6dd7998c1a776be332d8a1fdc1fa2a8935df4fb272b
|
7
|
+
data.tar.gz: 4812904a6c1dd2824f08bd376239760c8506329438c26dae718ac809a123e6201547ad40f77de1bd3cab91781234022f6f914ba4f1abc21eba9c19c6f0e7999b
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
6.
|
1
|
+
6.1.3
|
data/lib/dashboard.rb
CHANGED
data/lib/pug.rb
CHANGED
@@ -11,17 +11,28 @@ class Pug
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def join(player_id)
|
14
|
-
|
15
|
-
redis.
|
14
|
+
timestamp = Time.now.to_i
|
15
|
+
redis.setnx(pug_key, timestamp)
|
16
|
+
redis.zadd(queue_key, timestamp, player_id, nx: true)
|
16
17
|
end
|
17
18
|
|
18
19
|
def join_team(team_no:, player_id:)
|
19
|
-
|
20
|
-
|
20
|
+
join(player_id)
|
21
|
+
unteam(player_id)
|
21
22
|
redis.sadd(team_key(team_no), player_id)
|
22
23
|
end
|
23
24
|
|
24
|
-
def
|
25
|
+
def up_now_players
|
26
|
+
players[0, maxplayers]
|
27
|
+
end
|
28
|
+
|
29
|
+
def destroy_teams
|
30
|
+
teamed_players.each do |player_id|
|
31
|
+
unteam(player_id)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def teamed_players
|
25
36
|
teams_keys.inject([]) do |players, team|
|
26
37
|
players + redis.smembers(team).map(&:to_i)
|
27
38
|
end
|
@@ -55,16 +66,24 @@ class Pug
|
|
55
66
|
redis.set(teamsize_key, teamsize)
|
56
67
|
end
|
57
68
|
|
69
|
+
def total_player_count
|
70
|
+
players.count
|
71
|
+
end
|
72
|
+
|
58
73
|
def full?
|
59
|
-
|
74
|
+
total_player_count >= maxplayers
|
75
|
+
end
|
76
|
+
|
77
|
+
def has_exactly_maxplayers?
|
78
|
+
total_player_count == maxplayers
|
60
79
|
end
|
61
80
|
|
62
81
|
def empty?
|
63
|
-
|
82
|
+
total_player_count.zero?
|
64
83
|
end
|
65
84
|
|
66
|
-
def
|
67
|
-
|
85
|
+
def teamed_player_count
|
86
|
+
teamed_players.count
|
68
87
|
end
|
69
88
|
|
70
89
|
def team_player_count(team_no)
|
@@ -72,11 +91,11 @@ class Pug
|
|
72
91
|
end
|
73
92
|
|
74
93
|
def player_slots
|
75
|
-
"#{
|
94
|
+
"#{total_player_count}/#{maxplayers}"
|
76
95
|
end
|
77
96
|
|
78
97
|
def slots_left
|
79
|
-
maxplayers -
|
98
|
+
maxplayers - total_player_count
|
80
99
|
end
|
81
100
|
|
82
101
|
def game_map=(map)
|
@@ -104,7 +123,8 @@ class Pug
|
|
104
123
|
end
|
105
124
|
|
106
125
|
def leave(player_id)
|
107
|
-
|
126
|
+
leave_queue(player_id)
|
127
|
+
unteam(player_id)
|
108
128
|
end
|
109
129
|
|
110
130
|
def end_pug
|
@@ -114,13 +134,17 @@ class Pug
|
|
114
134
|
end
|
115
135
|
|
116
136
|
def joined?(player_id)
|
117
|
-
|
137
|
+
redis.zrank(queue_key, player_id)
|
118
138
|
end
|
119
139
|
|
120
140
|
def maxplayers
|
121
141
|
teamsize * no_of_teams
|
122
142
|
end
|
123
143
|
|
144
|
+
def queued_players
|
145
|
+
players - teamed_players
|
146
|
+
end
|
147
|
+
|
124
148
|
def teams
|
125
149
|
all_teams = teams_keys.inject({}) do |teams, team|
|
126
150
|
teams.merge({ team.split(':').last.to_i => redis.smembers(team).map(&:to_i) })
|
@@ -129,16 +153,6 @@ class Pug
|
|
129
153
|
all_teams.sort.to_h
|
130
154
|
end
|
131
155
|
|
132
|
-
def actual_teams
|
133
|
-
teams.tap { |team| team.delete(0) }
|
134
|
-
end
|
135
|
-
|
136
|
-
def unteam_all_players
|
137
|
-
joined_players.each do |player_id|
|
138
|
-
join_team(team_no: 0, player_id: player_id)
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
156
|
def update_last_result_time
|
143
157
|
redis.set(last_result_time_key, Time.now.to_i)
|
144
158
|
end
|
@@ -148,25 +162,37 @@ class Pug
|
|
148
162
|
end
|
149
163
|
|
150
164
|
def equal_number_of_players_on_each_team?
|
151
|
-
team_player_counts =
|
165
|
+
team_player_counts = teams.map do |_name, players|
|
152
166
|
players.size
|
153
167
|
end
|
154
168
|
|
155
169
|
team_player_counts.uniq.size == 1
|
156
170
|
end
|
157
171
|
|
158
|
-
|
159
|
-
|
160
|
-
def leave_teams(player_id)
|
172
|
+
def unteam(player_id)
|
161
173
|
teams_keys.each do |team|
|
162
174
|
redis.srem(team, player_id)
|
163
175
|
end
|
164
176
|
end
|
165
177
|
|
178
|
+
def players
|
179
|
+
redis.zrange(queue_key, 0, -1).map(&:to_i)
|
180
|
+
end
|
181
|
+
|
182
|
+
private
|
183
|
+
|
184
|
+
def leave_queue(player_id)
|
185
|
+
redis.zrem(queue_key, player_id)
|
186
|
+
end
|
187
|
+
|
166
188
|
def teams_keys
|
167
189
|
redis.keys([pug_key, 'teams:*'].join(':'))
|
168
190
|
end
|
169
191
|
|
192
|
+
def queue_key
|
193
|
+
[pug_key, 'queue'].join(':')
|
194
|
+
end
|
195
|
+
|
170
196
|
def team_key(team_no)
|
171
197
|
[pug_key, 'teams', team_no].join(':')
|
172
198
|
end
|
@@ -208,6 +234,6 @@ class Pug
|
|
208
234
|
end
|
209
235
|
|
210
236
|
def no_of_teams
|
211
|
-
[
|
237
|
+
[teams.count, MIN_NO_OF_TEAMS].max
|
212
238
|
end
|
213
239
|
end
|
data/lib/qstat_request.rb
CHANGED
@@ -11,28 +11,26 @@ class QstatRequest
|
|
11
11
|
@result ||= execute
|
12
12
|
end
|
13
13
|
|
14
|
-
def to_embed
|
15
|
-
return nil if is_empty?
|
16
|
-
|
17
|
-
embed = Discordrb::Webhooks::Embed.new
|
18
|
-
|
19
|
-
teams.each do |team|
|
20
|
-
embed << team.to_embed_field
|
21
|
-
end
|
22
|
-
|
23
|
-
embed
|
24
|
-
end
|
25
|
-
|
26
14
|
def to_full_embed
|
27
15
|
Discordrb::Webhooks::Embed.new.tap do |embed|
|
28
16
|
embed.add_field(
|
29
17
|
name: name,
|
30
|
-
value:
|
18
|
+
value: join_link,
|
31
19
|
)
|
32
20
|
|
33
21
|
teams.each do |team|
|
34
22
|
embed << team.to_embed_field
|
35
23
|
end
|
24
|
+
|
25
|
+
footer = [game_map, "#{numplayers}/#{maxplayers} players"]
|
26
|
+
|
27
|
+
if has_spectators?
|
28
|
+
footer << "#{numspectators}/#{maxspectators} spectators"
|
29
|
+
end
|
30
|
+
|
31
|
+
embed.footer = Discordrb::Webhooks::EmbedFooter.new(
|
32
|
+
text: footer.join(MSG_SNIPPET_DELIMITER)
|
33
|
+
)
|
36
34
|
end
|
37
35
|
end
|
38
36
|
|
@@ -43,9 +41,7 @@ class QstatRequest
|
|
43
41
|
end
|
44
42
|
|
45
43
|
def server_summary
|
46
|
-
|
47
|
-
|
48
|
-
info = [name, @endpoint, game_map]
|
44
|
+
info = [name, game_map]
|
49
45
|
|
50
46
|
info += if !has_spectators?
|
51
47
|
["#{numplayers}/#{maxplayers}"]
|
@@ -56,28 +52,13 @@ class QstatRequest
|
|
56
52
|
]
|
57
53
|
end
|
58
54
|
|
55
|
+
info << join_link
|
56
|
+
|
59
57
|
info.join(MSG_SNIPPET_DELIMITER)
|
60
58
|
end
|
61
59
|
|
62
60
|
def join_link
|
63
|
-
"
|
64
|
-
end
|
65
|
-
|
66
|
-
def embed_summary
|
67
|
-
info = [@endpoint, game_map]
|
68
|
-
|
69
|
-
info += if !has_spectators?
|
70
|
-
["#{numplayers}/#{maxplayers}"]
|
71
|
-
else
|
72
|
-
[
|
73
|
-
"#{numplayers}/#{maxplayers} players",
|
74
|
-
"#{numspectators}/#{maxspectators} spectators"
|
75
|
-
]
|
76
|
-
end
|
77
|
-
|
78
|
-
info << join_link
|
79
|
-
|
80
|
-
info.join(MSG_SNIPPET_DELIMITER)
|
61
|
+
"<qw://#{@endpoint}>"
|
81
62
|
end
|
82
63
|
|
83
64
|
def is_empty?
|
@@ -92,6 +73,10 @@ class QstatRequest
|
|
92
73
|
numplayers && numplayers > 0
|
93
74
|
end
|
94
75
|
|
76
|
+
def live_server?
|
77
|
+
!game_map.nil?
|
78
|
+
end
|
79
|
+
|
95
80
|
private
|
96
81
|
|
97
82
|
def has_spectators?
|
@@ -40,22 +40,15 @@ class QwtfDiscordBotPug # :nodoc:
|
|
40
40
|
end
|
41
41
|
|
42
42
|
join_pug(e, pug)
|
43
|
-
start_pug(pug, e) if pug.
|
43
|
+
start_pug(pug, e) if pug.has_exactly_maxplayers?
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
47
|
bot.command :choose do |event, *args|
|
48
48
|
setup_pug(event) do |e, pug|
|
49
|
-
if pug.
|
50
|
-
return send_embedded_message(
|
51
|
-
description: "Too many players, increase `!teamsize` or `!kick` extras",
|
52
|
-
channel: event.channel
|
53
|
-
)
|
54
|
-
end
|
55
|
-
|
56
|
-
if pug.joined_players.count.odd?
|
49
|
+
if !pug.full?
|
57
50
|
return send_embedded_message(
|
58
|
-
description: "
|
51
|
+
description: "Not enough players, reduce !teamsize",
|
59
52
|
channel: event.channel
|
60
53
|
)
|
61
54
|
end
|
@@ -257,13 +250,6 @@ class QwtfDiscordBotPug # :nodoc:
|
|
257
250
|
)
|
258
251
|
else
|
259
252
|
args[1..-1].each do |mention|
|
260
|
-
if pug.team(team_no).size >= pug.teamsize
|
261
|
-
return send_embedded_message(
|
262
|
-
description: "Team is full",
|
263
|
-
channel: e.channel
|
264
|
-
)
|
265
|
-
end
|
266
|
-
|
267
253
|
unless mention.match(/<@!\d+>/)
|
268
254
|
send_embedded_message(
|
269
255
|
description: "#{arg} isn't a valid mention",
|
@@ -286,7 +272,7 @@ class QwtfDiscordBotPug # :nodoc:
|
|
286
272
|
end
|
287
273
|
end
|
288
274
|
|
289
|
-
start_pug(pug, e) if !pug_already_full && pug.
|
275
|
+
start_pug(pug, e) if !pug_already_full && pug.has_exactly_maxplayers?
|
290
276
|
end
|
291
277
|
end
|
292
278
|
|
@@ -309,14 +295,14 @@ class QwtfDiscordBotPug # :nodoc:
|
|
309
295
|
)
|
310
296
|
end
|
311
297
|
|
312
|
-
if pug.
|
298
|
+
if !pug.teamed_players.include?(user_id)
|
313
299
|
return send_embedded_message(
|
314
300
|
description: "You aren't in a team",
|
315
301
|
channel: e.channel
|
316
302
|
)
|
317
303
|
end
|
318
304
|
|
319
|
-
pug.
|
305
|
+
pug.unteam(user_id)
|
320
306
|
|
321
307
|
send_embedded_message(
|
322
308
|
description: "#{e.display_name} leaves team",
|
@@ -334,7 +320,15 @@ class QwtfDiscordBotPug # :nodoc:
|
|
334
320
|
|
335
321
|
user_id = mention_to_user_id(mention)
|
336
322
|
display_name = e.display_name_for(user_id) || arg
|
337
|
-
|
323
|
+
|
324
|
+
unless pug.joined?(user_id)
|
325
|
+
return send_embedded_message(
|
326
|
+
description: "#{display_name} isn't in this PUG",
|
327
|
+
channel: e.channel
|
328
|
+
)
|
329
|
+
end
|
330
|
+
|
331
|
+
pug.unteam(user_id)
|
338
332
|
|
339
333
|
send_embedded_message(
|
340
334
|
description: "#{display_name} leaves team",
|
@@ -391,14 +385,14 @@ class QwtfDiscordBotPug # :nodoc:
|
|
391
385
|
|
392
386
|
winning_team_no = args.first.to_i
|
393
387
|
|
394
|
-
if pug.
|
388
|
+
if pug.teams.count < 2
|
395
389
|
return send_embedded_message(
|
396
390
|
description: "There must be at least two teams with players to submit a result",
|
397
391
|
channel: e.channel
|
398
392
|
)
|
399
393
|
end
|
400
394
|
|
401
|
-
team_results = pug.
|
395
|
+
team_results = pug.teams.inject({}) do |teams, (name, player_ids)|
|
402
396
|
players = player_ids.inject({}) do |memo, id|
|
403
397
|
memo.merge({ id => e.display_name_for(id) })
|
404
398
|
end
|
@@ -451,7 +445,7 @@ class QwtfDiscordBotPug # :nodoc:
|
|
451
445
|
)
|
452
446
|
end
|
453
447
|
|
454
|
-
if pug.
|
448
|
+
if pug.teams.count < 2
|
455
449
|
return send_embedded_message(
|
456
450
|
description: "There must be at least two teams with players to submit a result",
|
457
451
|
channel: e.channel
|
@@ -467,7 +461,7 @@ class QwtfDiscordBotPug # :nodoc:
|
|
467
461
|
)
|
468
462
|
end
|
469
463
|
|
470
|
-
team_results = pug.
|
464
|
+
team_results = pug.teams.inject({}) do |teams, (name, player_ids)|
|
471
465
|
players = player_ids.inject({}) do |memo, id|
|
472
466
|
memo.merge({ id => e.display_name_for(id) })
|
473
467
|
end
|
@@ -651,7 +645,7 @@ class QwtfDiscordBotPug # :nodoc:
|
|
651
645
|
def join_pug(e, pug)
|
652
646
|
pug.join(e.user_id)
|
653
647
|
|
654
|
-
if pug.
|
648
|
+
if pug.total_player_count == 1
|
655
649
|
snippets = ["#{e.display_name} creates a PUG", "#{pug.player_slots} joined"]
|
656
650
|
message = pug.notify_roles
|
657
651
|
else
|
@@ -676,7 +670,7 @@ class QwtfDiscordBotPug # :nodoc:
|
|
676
670
|
def choose_fair_teams(pug:, event:, iteration: 0)
|
677
671
|
if !pug.full?
|
678
672
|
return send_embedded_message(
|
679
|
-
description: "
|
673
|
+
description: "Not enough players, reduce !teamsize",
|
680
674
|
channel: event.channel
|
681
675
|
) && nil
|
682
676
|
end
|
@@ -687,7 +681,7 @@ class QwtfDiscordBotPug # :nodoc:
|
|
687
681
|
)
|
688
682
|
|
689
683
|
combinations = get_fair_teams(
|
690
|
-
channel_id: event.channel.id, players: pug.
|
684
|
+
channel_id: event.channel.id, players: pug.up_now_players
|
691
685
|
)
|
692
686
|
|
693
687
|
teams = combinations[iteration]
|
@@ -700,6 +694,8 @@ class QwtfDiscordBotPug # :nodoc:
|
|
700
694
|
) && nil
|
701
695
|
end
|
702
696
|
|
697
|
+
pug.destroy_teams
|
698
|
+
|
703
699
|
teams.each do |team_no, player_ids|
|
704
700
|
player_ids.each do |player_id|
|
705
701
|
pug.join_team(team_no: team_no, player_id: player_id)
|
@@ -724,6 +720,18 @@ class QwtfDiscordBotPug # :nodoc:
|
|
724
720
|
text: footer
|
725
721
|
)
|
726
722
|
|
723
|
+
if pug.queued_players.any?
|
724
|
+
queue_display_names = pug.queued_players.map do |player_id|
|
725
|
+
event.display_name_for(player_id)
|
726
|
+
end
|
727
|
+
|
728
|
+
embed.add_field(
|
729
|
+
inline: true,
|
730
|
+
name: "Queue",
|
731
|
+
value: queue_display_names.join("\n")
|
732
|
+
)
|
733
|
+
end
|
734
|
+
|
727
735
|
pug.teams.each do |team_no, player_ids|
|
728
736
|
team_display_names = player_ids.map do |player_id|
|
729
737
|
event.display_name_for(player_id)
|
@@ -739,14 +747,14 @@ class QwtfDiscordBotPug # :nodoc:
|
|
739
747
|
end
|
740
748
|
|
741
749
|
def start_pug(pug, event)
|
742
|
-
choose_fair_teams(pug: pug, event: event) unless pug.
|
750
|
+
choose_fair_teams(pug: pug, event: event) unless pug.teams.any?
|
743
751
|
|
744
752
|
footer = [
|
745
753
|
pug.game_map,
|
746
754
|
"#{pug.player_slots} joined",
|
747
755
|
].compact.join(MSG_SNIPPET_DELIMITER)
|
748
756
|
|
749
|
-
mentions = pug.
|
757
|
+
mentions = pug.players.map do |player_id|
|
750
758
|
event.mention_for(player_id)
|
751
759
|
end
|
752
760
|
|
@@ -760,6 +768,18 @@ class QwtfDiscordBotPug # :nodoc:
|
|
760
768
|
text: footer
|
761
769
|
)
|
762
770
|
|
771
|
+
if pug.queued_players.any?
|
772
|
+
queue_display_names = pug.queued_players.map do |player_id|
|
773
|
+
event.display_name_for(player_id)
|
774
|
+
end
|
775
|
+
|
776
|
+
embed.add_field(
|
777
|
+
inline: true,
|
778
|
+
name: "Queue",
|
779
|
+
value: queue_display_names.join("\n")
|
780
|
+
)
|
781
|
+
end
|
782
|
+
|
763
783
|
pug.teams.each do |team_no, player_ids|
|
764
784
|
team_mentions = player_ids.map do |player_id|
|
765
785
|
event.display_name_for(player_id)
|
@@ -16,20 +16,17 @@ class QwtfDiscordBotServer
|
|
16
16
|
message = 'Provide a server address e.g. `!server ' \
|
17
17
|
'sydney.fortressone.org` or use `!active` or `!all`'
|
18
18
|
event.channel.send_message(message)
|
19
|
-
|
19
|
+
|
20
|
+
return puts message
|
21
|
+
end
|
22
|
+
|
23
|
+
endpoint = args.first
|
24
|
+
request = QstatRequest.new(endpoint)
|
25
|
+
|
26
|
+
if !request.live_server?
|
27
|
+
event.channel.send_message("#{endpoint} isn't responding")
|
20
28
|
else
|
21
|
-
|
22
|
-
qstat_response = QstatRequest.new(endpoint)
|
23
|
-
message = qstat_response.server_summary
|
24
|
-
embed = qstat_response.to_embed
|
25
|
-
|
26
|
-
if embed
|
27
|
-
event.channel.send_embed(message, embed)
|
28
|
-
puts message
|
29
|
-
else
|
30
|
-
event.channel.send_message(message)
|
31
|
-
puts message
|
32
|
-
end
|
29
|
+
event.channel.send_embed(nil, request.to_full_embed)
|
33
30
|
end
|
34
31
|
end
|
35
32
|
|
@@ -43,20 +40,16 @@ class QwtfDiscordBotServer
|
|
43
40
|
if endpoints_for_this_channel.empty?
|
44
41
|
message = 'There are no servers associated with this channel'
|
45
42
|
event.channel.send_message(message)
|
46
|
-
puts message
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
else
|
57
|
-
event.channel.send_message(message)
|
58
|
-
puts message
|
59
|
-
end
|
43
|
+
return puts message
|
44
|
+
end
|
45
|
+
|
46
|
+
endpoints_for_this_channel.each do |endpoint|
|
47
|
+
request = QstatRequest.new(endpoint.address)
|
48
|
+
|
49
|
+
if !request.live_server?
|
50
|
+
event.channel.send_message("#{endpoint} isn't responding")
|
51
|
+
else
|
52
|
+
event.channel.send_embed(nil, request.to_full_embed)
|
60
53
|
end
|
61
54
|
end
|
62
55
|
|
@@ -73,35 +66,27 @@ class QwtfDiscordBotServer
|
|
73
66
|
if endpoints_for_this_channel.empty?
|
74
67
|
message = 'There are no servers associated with this channel'
|
75
68
|
event.channel.send_message(message)
|
76
|
-
puts message
|
77
|
-
|
78
|
-
qstat_requests = endpoints_for_this_channel.map do |endpoint|
|
79
|
-
QstatRequest.new(endpoint.address)
|
80
|
-
end
|
69
|
+
return puts message
|
70
|
+
end
|
81
71
|
|
82
|
-
|
83
|
-
|
84
|
-
|
72
|
+
qstat_requests = endpoints_for_this_channel.map do |endpoint|
|
73
|
+
QstatRequest.new(endpoint.address)
|
74
|
+
end
|
85
75
|
|
86
|
-
|
87
|
-
|
88
|
-
event.channel.send_message(message)
|
89
|
-
puts message
|
90
|
-
else
|
91
|
-
servers_with_players.each do |server|
|
92
|
-
message = server.server_summary
|
93
|
-
embed = server.to_embed
|
94
|
-
|
95
|
-
if embed
|
96
|
-
event.channel.send_embed(message, embed)
|
97
|
-
puts message
|
98
|
-
else
|
99
|
-
event.channel.send_message(message)
|
100
|
-
puts message
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
76
|
+
servers_with_players = qstat_requests.reject do |server|
|
77
|
+
server.is_empty?
|
104
78
|
end
|
79
|
+
|
80
|
+
if servers_with_players.empty?
|
81
|
+
message = "All ##{event.channel.name} servers are empty"
|
82
|
+
event.channel.send_message(message)
|
83
|
+
return puts message
|
84
|
+
end
|
85
|
+
|
86
|
+
servers_with_players.each do |server|
|
87
|
+
event.channel.send_embed(nil, server.to_full_embed)
|
88
|
+
end
|
89
|
+
|
105
90
|
return nil
|
106
91
|
end
|
107
92
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qwtf_discord_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sheldon Johnson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: discordrb
|