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 +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