kag-gather 1.0.7 → 1.0.8

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