qwtf_discord_bot 4.2.3 → 5.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d53c052ce01f40e7761bfc20b8697e25685e0babdd3bdd0a329a4474df163539
4
- data.tar.gz: 9bb3000c5ee85114e0051c40a598c29fe98569cda483975bdcc7b6e321f7d4e0
3
+ metadata.gz: 452714fe7a833e8c33d3825de55e52be1716f30fecd8c80df2705aa35df37bc7
4
+ data.tar.gz: bafc402721ac62475747ffe255b7f09f851672fff58ec05e89051d765282ce5b
5
5
  SHA512:
6
- metadata.gz: c3769891475fa12c53f8959b2eb2c14b008b79cc4ea7816a41be9a09d183a581c30603822fa4095893acbf5114df628cfe0f144a115c2017258f2db9d94962f5
7
- data.tar.gz: 79ce5d9e0f2a77064e26794433c4a0b2d321af89d9b93f7562acfe1d14ba8e25bda36089a8a295111a268daa8d3ad571590c3e489236934ce269324f278547e6
6
+ metadata.gz: 17a594fdf8f231e4b067496cf59b9fdb777231ac9585c4df93df061948580100c5235bc4e7e31281a4606d22e6ca490e863aa13f2783b66292b73b599cca2bbc
7
+ data.tar.gz: 8fb14f30321620378acb31553bbfb89c0432b4ab58b4f69c7f27a294db94ff26686851e819b3cb74c2125ac6c2a8b5c509204eb90f70155c2af41e869960cae7
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qwtf_discord_bot (4.1.0)
4
+ qwtf_discord_bot (4.2.6)
5
5
  discordrb (~> 3.3)
6
- redis
6
+ redis (~> 4.1)
7
7
  thor (~> 0.20)
8
8
 
9
9
  GEM
@@ -90,8 +90,9 @@ DEPENDENCIES
90
90
  factory_bot
91
91
  pry
92
92
  qwtf_discord_bot!
93
+ redis
93
94
  rspec
94
95
  thor
95
96
 
96
97
  BUNDLED WITH
97
- 1.17.1
98
+ 1.17.2
data/README.md CHANGED
@@ -11,7 +11,7 @@ A Discord bot for checking the status of QuakeWorld Team Fortress servers
11
11
 
12
12
  ## Installation
13
13
 
14
- $ gem install qwtf_discord_bot
14
+ gem install qwtf_discord_bot
15
15
 
16
16
 
17
17
  ## Usage
@@ -20,60 +20,58 @@ A Discord bot for checking the status of QuakeWorld Team Fortress servers
20
20
  - Create a `~/.config/qwtf_discord_bot/config.yaml` file containing your bots
21
21
  credentials and server endpoints
22
22
 
23
- ```yaml
24
- ---
25
- token: "dhjksahdkjhhur43hu4hu5b4b5k34j12b4kj3b4kjb4j32kb4kjb4kb3k2b"
26
- client_id: "873298379487294398"
27
- endpoints:
28
- - "sydney.fortressone.org":
29
- - channel_ids:
30
- - 832749832749873298
31
- - 798437748937298448
32
- - "sydney.fortressone.org:27501":
33
- - channel_ids:
34
- - 590204247224745986
35
- - "dallas.fortressone.org":
36
- - channel_ids:
37
- - 480928490328409328
38
- emojis:
39
- red:
40
- scout: "<:scout_red:424097703127941130>"
41
- sniper: "<:sniper_red:424097704076115978>"
42
- soldier: "<:soldier_red:424097704197619712>"
43
- demoman: "<:demoman_red:424097687739301919>"
44
- medic: "<:medic_red:424097695418941451>"
45
- pyro: "<:pyro_red:424097704403271691>"
46
- hwguy: "<:hwguy_red:424097694030757889>"
47
- spy: "<:spy_red:424097704138899466>"
48
- engineer: "<:engineer_red:424097694680612864>"
49
- blue:
50
- scout: "<:scout_blue:456062063983460353>"
51
- sniper: "<:sniper_blue:456062061953417216>"
52
- soldier: "<:soldier_blue:456062062997536801>"
53
- demoman: "<:demoman_blue:456061938636554240>"
54
- medic: "<:medic_blue:456062056710537217>"
55
- pyro: "<:pyro_blue:456062062460928010>"
56
- hwguy: "<:hwguy_blue:456062063190736926>"
57
- spy: "<:spy_blue:456062062032846849>"
58
- engineer: "<:engineer_blue:456062031125020683>"
59
- ```
60
-
61
- - Use the `QWTF_DISCORD_BOT_CONFIG_FILE` environment variable or default to
62
- specify an alternative file
63
-
64
- ```sh
65
- $ export QWTF_DISCORD_BOT_CONFIG_FILE="config.yaml"
66
- ```
23
+ ```yaml
24
+ ---
25
+ token: "dhjksahdkjhhur43hu4hu5b4b5k34j12b4kj3b4kjb4j32kb4kjb4kb3k2b"
26
+ client_id: "873298379487294398"
27
+ endpoints:
28
+ - "sydney.fortressone.org":
29
+ - channel_ids:
30
+ - 832749832749873298
31
+ - 798437748937298448
32
+ - "sydney.fortressone.org:27501":
33
+ - channel_ids:
34
+ - 590204247224745986
35
+ - "dallas.fortressone.org":
36
+ - channel_ids:
37
+ - 480928490328409328
38
+ emojis:
39
+ red:
40
+ scout: "<:scout_red:424097703127941130>"
41
+ sniper: "<:sniper_red:424097704076115978>"
42
+ soldier: "<:soldier_red:424097704197619712>"
43
+ demoman: "<:demoman_red:424097687739301919>"
44
+ medic: "<:medic_red:424097695418941451>"
45
+ pyro: "<:pyro_red:424097704403271691>"
46
+ hwguy: "<:hwguy_red:424097694030757889>"
47
+ spy: "<:spy_red:424097704138899466>"
48
+ engineer: "<:engineer_red:424097694680612864>"
49
+ blue:
50
+ scout: "<:scout_blue:456062063983460353>"
51
+ sniper: "<:sniper_blue:456062061953417216>"
52
+ soldier: "<:soldier_blue:456062062997536801>"
53
+ demoman: "<:demoman_blue:456061938636554240>"
54
+ medic: "<:medic_blue:456062056710537217>"
55
+ pyro: "<:pyro_blue:456062062460928010>"
56
+ hwguy: "<:hwguy_blue:456062063190736926>"
57
+ spy: "<:spy_blue:456062062032846849>"
58
+ engineer: "<:engineer_blue:456062031125020683>"
59
+ ```
60
+
61
+ - Use the `QWTF_DISCORD_BOT_CONFIG_FILE` environment variable to specify an
62
+ alternative config file path
63
+
64
+ export QWTF_DISCORD_BOT_CONFIG_FILE="config.yaml"
67
65
 
68
66
 
69
67
  ### Commands
70
68
 
71
- There are two modules:
69
+ There are three modules:
72
70
 
73
71
 
74
72
  #### Server
75
73
 
76
- $ qwtf-discord-bot server
74
+ qwtf-discord-bot server
77
75
 
78
76
  This responds to discord messages:
79
77
  - `!server`
@@ -83,9 +81,21 @@ This responds to discord messages:
83
81
  ![screenshot of bot responding to !server command](server_screenshot.png)
84
82
 
85
83
 
84
+ #### Pug
85
+
86
+ qwtf-discord-bot pug
87
+
88
+ This responds to discord messages:
89
+ - `!join`
90
+ - `!leave`
91
+ - `!status`
92
+ - `!maxplayers <no_of_players>`
93
+ - `!leave`
94
+
95
+
86
96
  #### Watcher
87
97
 
88
- $ qwtf-discord-bot watcher
98
+ qwtf-discord-bot watcher
89
99
 
90
100
  This watches the game server and announces if anyone has joined the server. It
91
101
  polls the server once every 30 seconds and will only report a player joining if
@@ -94,47 +104,78 @@ they haven't been connected for more than ten minutes.
94
104
  ![screenshot of bot reporting player joining server](watcher_screenshot.png)
95
105
 
96
106
 
97
- ## Docker
107
+ ## Gem
98
108
 
99
109
  Build:
100
110
 
101
- ```sh
102
- docker build --tag=discord-bot .
103
- ```
111
+ gem build qwtf_discrd_bot.gemspec
112
+
113
+
114
+ Install:
115
+
116
+
117
+ gem install --local qwtf_discord_bot-$(cat VERSION).gem
118
+
104
119
 
105
120
  Push:
106
121
 
107
- ```sh
108
- docker tag discord-bot fortressone/discord-bot:latest
109
- docker push fortressone/discord-bot:latest
110
- ```
122
+ gem push qwtf_discord_bot-$(cat VERSION).gem
123
+
124
+
125
+ ## Docker
111
126
 
112
127
  Run:
113
128
 
114
129
  Assuming a `./config.yaml` file exists:
115
130
 
116
- Server:
131
+ docker-compose up
117
132
 
118
- ```sh
119
- docker run -it \
120
- --env QWTF_DISCORD_BOT_CONFIG_FILE=config.yaml \
121
- --mount type=bind,source="$(pwd)"/config.yaml,target=/discord-bot/config.yaml \
122
- discord-bot server
123
- ```
124
133
 
125
- Watcher:
134
+ Only discord-bot server:
135
+
136
+ docker run -it \
137
+ --env QWTF_DISCORD_BOT_CONFIG_FILE=config.yaml \
138
+ --mount type=bind,source="$(pwd)"/config.yaml,target=/discord-bot/config.yaml \
139
+ discord-bot server
140
+
141
+
142
+ Only discord-bot watcher:
143
+
144
+ docker run -it \
145
+ --env QWTF_DISCORD_BOT_CONFIG_FILE=config.yaml \
146
+ --mount type=bind,source="$(pwd)"/config.yaml,target=/discord-bot/config.yaml \
147
+ discord-bot watcher
148
+
149
+
150
+ Only discord-bot pug:
151
+
152
+ docker run -it \
153
+ --env QWTF_DISCORD_BOT_CONFIG_FILE=config.yaml \
154
+ --mount type=bind,source="$(pwd)"/config.yaml,target=/discord-bot/config.yaml \
155
+ discord-bot pug
126
156
 
127
- ```sh
128
- docker run -it \
129
- --env QWTF_DISCORD_BOT_CONFIG_FILE=config.yaml \
130
- --mount type=bind,source="$(pwd)"/config.yaml,target=/discord-bot/config.yaml \
131
- discord-bot watcher
132
- ```
133
157
 
134
- Both:
158
+ Build:
159
+
160
+ docker build --tag=discord-bot .
161
+
162
+
163
+ Push:
135
164
 
136
- ```sh
137
- docker-compose up
165
+ docker tag discord-bot fortressone/discord-bot:latest
166
+ docker push fortressone/discord-bot:latest
167
+
168
+
169
+ Create AWS instance:
170
+
171
+ ```
172
+ docker-machine create \
173
+ --driver amazonec2 \
174
+ --amazonec2-access-key <AWS_ACCESS_KEY> \
175
+ --amazonec2-secret-key <AWS_SECRET_KEY> \
176
+ --amazonec2-root-size 30 \
177
+ --amazonec2-region ap-southeast-2 \
178
+ discord-bot
138
179
  ```
139
180
 
140
181
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.2.3
1
+ 5.0.2
@@ -12,7 +12,7 @@ services:
12
12
  - redis
13
13
  volumes:
14
14
  - type: bind
15
- source: ./config.yaml
15
+ source: "/home/ubuntu/.config/qwtf_discord_bot/config.yaml"
16
16
  target: /discord-bot/config.yaml
17
17
  discord-watcher-bot:
18
18
  image: fortressone/discord-bot:latest
@@ -24,5 +24,17 @@ services:
24
24
  - REDIS_URL=redis://redis
25
25
  volumes:
26
26
  - type: bind
27
- source: ./config.yaml
27
+ source: "/home/ubuntu/.config/qwtf_discord_bot/config.yaml"
28
+ target: /discord-bot/config.yaml
29
+ discord-pug-bot:
30
+ image: fortressone/discord-bot:latest
31
+ command: pug
32
+ restart: always
33
+ depends_on:
34
+ - redis
35
+ environment:
36
+ - REDIS_URL=redis://redis
37
+ volumes:
38
+ - type: bind
39
+ source: "/home/ubuntu/.config/qwtf_discord_bot/config.yaml"
28
40
  target: /discord-bot/config.yaml
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'qwtf_discord_bot'
4
4
  require 'thor'
5
+ require 'pry'
5
6
 
6
7
  class QwtfDiscordBotExe < Thor
7
8
  def self.exit_on_failure?
@@ -14,6 +15,12 @@ class QwtfDiscordBotExe < Thor
14
15
  server_bot.run
15
16
  end
16
17
 
18
+ desc 'pug', 'Start, join, leave, record pick-up games.'
19
+ def pug
20
+ pug_bot = QwtfDiscordBotPug.new
21
+ pug_bot.run
22
+ end
23
+
17
24
  desc 'watcher', 'Watches servers and accounces when a player joins'
18
25
  def watcher
19
26
  watcher_bot = QwtfDiscordBotWatcher.new
@@ -0,0 +1,58 @@
1
+ class EventWrapper
2
+ include QwtfDiscordBot
3
+
4
+ DEFAULT_MAXPLAYERS = 8
5
+
6
+ def initialize(event)
7
+ @event = event
8
+ end
9
+
10
+ def user_id
11
+ @event.user.id
12
+ end
13
+
14
+ def username
15
+ @event.user.username
16
+ end
17
+
18
+ def maxplayers_key
19
+ [pug_key, "maxplayers"].join(":")
20
+ end
21
+
22
+ def maxplayers
23
+ redis.setnx(maxplayers_key, DEFAULT_MAXPLAYERS)
24
+ redis.get(maxplayers_key).to_i
25
+ end
26
+
27
+ def joined_player_count
28
+ redis.scard(players_key).to_i
29
+ end
30
+
31
+ def slots_left
32
+ maxplayers - joined_player_count
33
+ end
34
+
35
+ def pug_key
36
+ ["pug", "channel", @event.channel.id].join(":")
37
+ end
38
+
39
+ def players_key
40
+ [pug_key, "players"].join(":")
41
+ end
42
+
43
+ def player_slots
44
+ "#{joined_player_count}/#{maxplayers}"
45
+ end
46
+
47
+ def users
48
+ @event.server.users
49
+ end
50
+
51
+ def role_key
52
+ [pug_key, "role"].join(":")
53
+ end
54
+
55
+ def role
56
+ redis.get(role_key) || "@here"
57
+ end
58
+ end
@@ -1,9 +1,11 @@
1
1
  require 'qwtf_discord_bot/version'
2
2
  require 'qwtf_discord_bot/qwtf_discord_bot_server'
3
+ require 'qwtf_discord_bot/qwtf_discord_bot_pug'
3
4
  require 'qwtf_discord_bot/qwtf_discord_bot_watcher'
4
5
  require 'qwtf_discord_bot/config'
5
6
  require 'discordrb'
6
7
  require 'yaml'
8
+ require 'redis'
7
9
 
8
10
  require 'qstat_request'
9
11
  require 'player'
@@ -12,9 +14,17 @@ require 'emoji'
12
14
  require 'roster'
13
15
 
14
16
  module QwtfDiscordBot # :nodoc:
15
- CONFIG_FILE = ENV['QWTF_DISCORD_BOT_CONFIG_FILE'] || "#{Dir.pwd}/config.yaml"
16
-
17
17
  def self.config
18
- @config ||= Config.new(CONFIG_FILE)
18
+ @config ||= Config.new(config_file)
19
+ end
20
+
21
+ def self.config_file
22
+ return ENV['QWTF_DISCORD_BOT_CONFIG_FILE'] if ENV['QWTF_DISCORD_BOT_CONFIG_FILE']
23
+ return "#{Dir.pwd}/config.yaml" if FileTest.exist?("#{Dir.pwd}/config.yaml")
24
+ "#{Dir.home}/.config/qwtf_discord_bot/config.yaml"
25
+ end
26
+
27
+ def redis
28
+ Redis.current
19
29
  end
20
30
  end
@@ -0,0 +1,139 @@
1
+ require 'event_wrapper'
2
+
3
+ class QwtfDiscordBotPug
4
+ include QwtfDiscordBot
5
+
6
+ FOUR_HOURS = 4 * 60 * 60
7
+
8
+ def run
9
+ bot = Discordrb::Commands::CommandBot.new(
10
+ token: QwtfDiscordBot.config.token,
11
+ client_id: QwtfDiscordBot.config.client_id,
12
+ help_command: false,
13
+ prefix: '!'
14
+ )
15
+
16
+ bot.command :join do |event, *args|
17
+ e = EventWrapper.new(event)
18
+
19
+ redis.setnx(e.pug_key, Time.now)
20
+ redis.sadd(e.players_key, e.user_id)
21
+
22
+ message = if e.joined_player_count == e.maxplayers
23
+ mentions = joined_users(e).map do |user|
24
+ user.mention
25
+ end
26
+ "Time to play! #{mentions.join(" ")}"
27
+ elsif (e.joined_player_count == 1)
28
+ [
29
+ "#{e.username} creates a PUG",
30
+ e.player_slots,
31
+ e.role,
32
+ ].join(" | ")
33
+ elsif e.slots_left <= 3
34
+ [
35
+ "#{e.username} joins the PUG",
36
+ e.player_slots,
37
+ "#{e.slots_left} more",
38
+ e.role,
39
+ ].join(" | ")
40
+ else
41
+ [
42
+ "#{e.username} joins the PUG",
43
+ e.player_slots,
44
+ ].join(" | ")
45
+ end
46
+
47
+ send_and_log_message(message, event)
48
+ end
49
+
50
+ bot.command :status do |event, *args|
51
+ e = EventWrapper.new(event)
52
+ usernames = joined_users(e).map(&:username)
53
+
54
+ message = [
55
+ "#{usernames.join(", ")} joined",
56
+ e.player_slots
57
+ ].join(" | ")
58
+
59
+ send_and_log_message(message, event)
60
+ end
61
+
62
+ bot.command :maxplayers do |event, *args|
63
+ e = EventWrapper.new(event)
64
+ new_maxplayers = args[0]
65
+
66
+ message = if new_maxplayers
67
+ redis.set(e.maxplayers_key, new_maxplayers)
68
+ "Max number of players set to #{e.maxplayers} | #{e.player_slots}"
69
+ else
70
+ "Current max number of players is #{e.maxplayers} | #{e.player_slots}"
71
+ end
72
+
73
+ send_and_log_message(message, event)
74
+
75
+ if e.joined_player_count >= e.maxplayers
76
+ mentions = joined_users(e).map do |user|
77
+ user.mention
78
+ end
79
+
80
+ message = "Time to play! #{mentions.join(" ")}"
81
+ send_and_log_message(message, event)
82
+ end
83
+ end
84
+
85
+ bot.command :leave do |event, *args|
86
+ e = EventWrapper.new(event)
87
+
88
+ redis.srem(e.players_key, e.user_id)
89
+
90
+ message = "#{e.username} leaves the PUG | #{e.player_slots}"
91
+
92
+ send_and_log_message(message, event)
93
+
94
+ if e.joined_player_count == 0
95
+ redis.del(e.pug_key)
96
+
97
+ message = "PUG ended"
98
+ send_and_log_message(message, event)
99
+ end
100
+ end
101
+
102
+ bot.command :end do |event, *args|
103
+ e = EventWrapper.new(event)
104
+
105
+ redis.del(e.pug_key)
106
+ redis.del(e.players_key)
107
+
108
+ message = "PUG ended"
109
+ send_and_log_message(message, event)
110
+ end
111
+
112
+ bot.command :role do |event, *args|
113
+ e = EventWrapper.new(event)
114
+ role = args[0]
115
+
116
+ redis.set(e.role_key, role)
117
+
118
+ message = "Notification role set to #{role}"
119
+ send_and_log_message(message, event)
120
+ end
121
+
122
+ bot.run
123
+ end
124
+
125
+ private
126
+
127
+ def send_and_log_message(message, event)
128
+ event.channel.send_message(message)
129
+ puts message
130
+ end
131
+
132
+ def joined_users(event)
133
+ redis.smembers(event.players_key).map do |user_id|
134
+ event.users.find do |user|
135
+ user.id.to_s == user_id
136
+ end
137
+ end
138
+ end
139
+ end
@@ -3,15 +3,16 @@ class QwtfDiscordBotServer
3
3
  bot = Discordrb::Commands::CommandBot.new(
4
4
  token: QwtfDiscordBot.config.token,
5
5
  client_id: QwtfDiscordBot.config.client_id,
6
+ help_command: false,
6
7
  prefix: '!'
7
8
  )
8
9
 
9
10
  bot.command :server do |event, *args|
10
11
  if args.empty?
11
- event.channel.send_message(
12
- 'Provide a server address e.g. `!server sydney.fortressone.org` ' \
13
- 'or use `!active` or `!all`'
14
- )
12
+ message = 'Provide a server address e.g. `!server ' \
13
+ 'sydney.fortressone.org` or use `!active` or `!all`'
14
+ event.channel.send_message(message)
15
+ puts message
15
16
  else
16
17
  endpoint = args.first
17
18
  qstat_response = QstatRequest.new(endpoint)
@@ -20,10 +21,13 @@ class QwtfDiscordBotServer
20
21
 
21
22
  if embed
22
23
  event.channel.send_embed(message, embed)
24
+ puts message
23
25
  else
24
26
  event.channel.send_message(message)
27
+ puts message
25
28
  end
26
29
  end
30
+
27
31
  end
28
32
 
29
33
  bot.command :all do |event|
@@ -34,9 +38,9 @@ class QwtfDiscordBotServer
34
38
  end
35
39
 
36
40
  if endpoints_for_this_channel.empty?
37
- event.channel.send_message(
38
- 'There are no servers associated with this channel'
39
- )
41
+ message = 'There are no servers associated with this channel'
42
+ event.channel.send_message(message)
43
+ puts message
40
44
  else
41
45
  endpoints_for_this_channel.each do |endpoint|
42
46
  qstat_request = QstatRequest.new(endpoint.address)
@@ -45,8 +49,10 @@ class QwtfDiscordBotServer
45
49
 
46
50
  if embed
47
51
  event.channel.send_embed(message, embed)
52
+ puts message
48
53
  else
49
54
  event.channel.send_message(message)
55
+ puts message
50
56
  end
51
57
  end
52
58
  end
@@ -62,9 +68,9 @@ class QwtfDiscordBotServer
62
68
  end
63
69
 
64
70
  if endpoints_for_this_channel.empty?
65
- event.channel.send_message(
66
- 'There are no servers associated with this channel'
67
- )
71
+ message = 'There are no servers associated with this channel'
72
+ event.channel.send_message(message)
73
+ puts message
68
74
  else
69
75
  qstat_requests = endpoints_for_this_channel.map do |endpoint|
70
76
  QstatRequest.new(endpoint.address)
@@ -75,7 +81,9 @@ class QwtfDiscordBotServer
75
81
  end
76
82
 
77
83
  if servers_with_players.empty?
78
- event.channel.send_message("All ##{event.channel.name} servers are empty")
84
+ message = "All ##{event.channel.name} servers are empty"
85
+ event.channel.send_message(message)
86
+ puts message
79
87
  else
80
88
  servers_with_players.each do |server|
81
89
  message = server.server_summary
@@ -83,13 +91,14 @@ class QwtfDiscordBotServer
83
91
 
84
92
  if embed
85
93
  event.channel.send_embed(message, embed)
94
+ puts message
86
95
  else
87
96
  event.channel.send_message(message)
97
+ puts message
88
98
  end
89
99
  end
90
100
  end
91
101
  end
92
-
93
102
  return nil
94
103
  end
95
104
 
@@ -1,5 +1,3 @@
1
- require "redis"
2
-
3
1
  class QwtfDiscordBotWatcher
4
2
  include QwtfDiscordBot
5
3
 
@@ -14,7 +12,7 @@ class QwtfDiscordBotWatcher
14
12
  next if request.is_empty?
15
13
 
16
14
  request.player_names.each do |name|
17
- redis_key = "#{address}:#{name}"
15
+ redis_key = ["watcher", address, name].join(":")
18
16
 
19
17
  unless seen_recently?(redis_key)
20
18
  endpoint.channel_ids.each do |channel_id|
@@ -51,16 +49,14 @@ class QwtfDiscordBotWatcher
51
49
  end
52
50
 
53
51
  def report_joined(name:, channel_id:, server_summary:)
52
+ message = "#{name} joins #{server_summary}"
53
+
54
54
  Discordrb::API::Channel.create_message(
55
55
  "Bot #{QwtfDiscordBot.config.token}",
56
56
  channel_id,
57
- "#{name} has joined #{server_summary}"
57
+ message
58
58
  )
59
- end
60
-
61
- private
62
59
 
63
- def redis
64
- @redis ||= Redis.new
60
+ puts message
65
61
  end
66
62
  end
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: 4.2.3
4
+ version: 5.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sheldon Johnson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-19 00:00:00.000000000 Z
11
+ date: 2020-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: discordrb
@@ -104,10 +104,12 @@ files:
104
104
  - exe/qwtf_discord_bot
105
105
  - lib/emoji.rb
106
106
  - lib/endpoint.rb
107
+ - lib/event_wrapper.rb
107
108
  - lib/player.rb
108
109
  - lib/qstat_request.rb
109
110
  - lib/qwtf_discord_bot.rb
110
111
  - lib/qwtf_discord_bot/config.rb
112
+ - lib/qwtf_discord_bot/qwtf_discord_bot_pug.rb
111
113
  - lib/qwtf_discord_bot/qwtf_discord_bot_server.rb
112
114
  - lib/qwtf_discord_bot/qwtf_discord_bot_watcher.rb
113
115
  - lib/qwtf_discord_bot/version.rb
@@ -135,8 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
137
  - !ruby/object:Gem::Version
136
138
  version: '0'
137
139
  requirements: []
138
- rubyforge_project:
139
- rubygems_version: 2.7.6.2
140
+ rubygems_version: 3.1.2
140
141
  signing_key:
141
142
  specification_version: 4
142
143
  summary: Works by wrapping the excellent CLI server query tool qstat. Accepts !server,