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 +5 -0
- data/lib/kag/gather.rb +37 -13
- data/lib/kag/server.rb +16 -2
- data/lib/kag/version.rb +1 -1
- metadata +1 -1
data/lib/kag/config.rb
CHANGED
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
|
-
|
119
|
-
|
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
|
-
|
194
|
-
|
195
|
-
|
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
|
-
|
199
|
-
|
200
|
-
|
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
|
-
|
204
|
-
server.
|
205
|
-
|
206
|
-
|
207
|
-
|
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
|
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.
|
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