kag-gather 1.0.7 → 1.0.8

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.
data/lib/kag/config.rb CHANGED
@@ -18,5 +18,10 @@ module KAG
18
18
  raise 'Error loading config file from config/config.json'
19
19
  end
20
20
  end
21
+
22
+ def reload
23
+ puts "Reloading configuration file..."
24
+ self.merge!(self._get_config)
25
+ end
21
26
  end
22
27
  end
data/lib/kag/gather.rb CHANGED
@@ -115,8 +115,12 @@ module KAG
115
115
 
116
116
  def end_match(match)
117
117
  if match[:server].has_rcon?
118
- match[:server].kick_all
119
- match[:server].disconnect
118
+ begin
119
+ match[:server].kick_all
120
+ rescue Exception => e
121
+ debug e.message
122
+ debug e.backtrace.join("\n")
123
+ end
120
124
  else
121
125
  debug "NO RCON, so could not kick!"
122
126
  end
@@ -137,7 +141,9 @@ module KAG
137
141
 
138
142
  def get_match_in(nick)
139
143
  m = false
144
+ puts "looking for #{nick} in a match"
140
145
  @matches.each do |k,match|
146
+ puts match.inspect
141
147
  if match[:team1] and match[:team1].include?(nick)
142
148
  m = match
143
149
  elsif match[:team2] and match[:team2].include?(nick)
@@ -190,21 +196,31 @@ module KAG
190
196
  classes_t2 = get_team_classes(2)
191
197
 
192
198
  team1.each do |p|
193
- msg = msg+classes_t1.shift if KAG::Config.instance[:pick_classes]
194
- sleep(0.5)
195
- User(p).send(msg+" \x0312Blue Team with: #{team1.join(", ")}") unless p.include?("player")
199
+ player_msg = msg.clone
200
+ player_msg = player_msg+classes_t1.shift if KAG::Config.instance[:pick_classes]
201
+ player_msg = player_msg+" \x0312Blue Team with: #{team1.join(", ")}"
202
+ User(p).send(player_msg) unless p.include?("player")
203
+ debug "Sent to #{p.to_s}: "+player_msg
204
+ sleep(1)
196
205
  end
197
206
  team2.each do |p|
198
- msg = msg+classes_t2.shift if KAG::Config.instance[:pick_classes]
199
- sleep(0.5)
200
- User(p).send(msg+" \x0304Red Team with: #{team2.join(", ")}") unless p.include?("player")
207
+ player_msg = msg.clone
208
+ player_msg = player_msg+classes_t2.shift if KAG::Config.instance[:pick_classes]
209
+ player_msg = player_msg+" \x0304Red Team with: #{team2.join(", ")}"
210
+ User(p).send(player_msg) unless p.include?("player")
211
+ debug "Sent to #{p.to_s}: "+player_msg
212
+ sleep(1)
201
213
  end
202
214
 
203
- if server.has_rcon?
204
- server.connect
205
- server.restart_map
206
- else
207
- debug "Cannot restart map, no RCON!"
215
+ begin
216
+ if server.has_rcon?
217
+ server.restart_map
218
+ else
219
+ debug "Cannot restart map, no RCON!"
220
+ end
221
+ rescue Exception => e
222
+ debug e.message
223
+ debug e.backtrace.join("\n")
208
224
  end
209
225
 
210
226
  @matches[server[:key]] = {
@@ -318,6 +334,14 @@ module KAG
318
334
  exit
319
335
  end
320
336
  end
337
+
338
+ match "reload_config", method: :evt_reload_config
339
+ def evt_reload_config(m)
340
+ if is_admin(m.user)
341
+ KAG::Config.instance.reload
342
+ m.reply "Configuration reloaded."
343
+ end
344
+ end
321
345
 
322
346
  def get_team_classes(team)
323
347
  classes = KAG::Config.instance[:classes]
data/lib/kag/server.rb CHANGED
@@ -23,18 +23,27 @@ module KAG
23
23
  end
24
24
 
25
25
  def connect
26
- return false unless self.socket
26
+ return true if self.connected?
27
+ unless self.socket
28
+ puts "Could not establish TCP socket to connect"
29
+ return false
30
+ end
27
31
  self.socket.puts self[:rcon_password]
28
32
  z = self.socket.gets
29
33
  z.include?("now authenticated")
30
34
  self[:_connected] = true
35
+ true
31
36
  end
32
37
 
33
38
  def disconnect
34
39
  if self[:_socket]
40
+ puts "[RCON] Closing socket..."
41
+ self.socket.puts "/quit"
35
42
  self[:_socket].close
36
43
  self[:_connected] = false
44
+ self.delete(:_socket)
37
45
  end
46
+ true
38
47
  end
39
48
 
40
49
  def connected?
@@ -53,6 +62,7 @@ module KAG
53
62
  end
54
63
 
55
64
  def players
65
+ return false unless self.connect
56
66
  _command "/players"
57
67
 
58
68
  players = []
@@ -89,16 +99,18 @@ module KAG
89
99
 
90
100
  players << player
91
101
  end
102
+ _cycle
92
103
  players
93
104
  end
94
105
 
95
106
  def kick(nick)
96
- return false unless self.connected?
107
+ return false unless self.connect
97
108
  self.socket.puts "/kick #{nick}"
98
109
  _cycle
99
110
  end
100
111
 
101
112
  def kick_all
113
+ return false unless self.connect
102
114
  ps = self.players
103
115
  if ps
104
116
  ps.each do |player|
@@ -111,11 +123,13 @@ module KAG
111
123
  end
112
124
 
113
125
  def restart_map
126
+ return false unless self.connect
114
127
  _command "/restartmap"
115
128
  _cycle
116
129
  end
117
130
 
118
131
  def next_map
132
+ return false unless self.connect
119
133
  _command "/nextmap"
120
134
  _cycle
121
135
  end
data/lib/kag/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module KAG
2
- VERSION = '1.0.7'
2
+ VERSION = '1.0.8'
3
3
  def self.version
4
4
  VERSION
5
5
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: kag-gather
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.7
5
+ version: 1.0.8
6
6
  platform: ruby
7
7
  authors:
8
8
  - Shaun McCormick