@@ -9,7 +9,7 @@ var LogFile : File = File(config.LogPath)
99val listen = listener()
1010val tailer = Tailer .create(LogFile , listen, 20 , true )
1111
12- enum class supportedClients {hexchat}
12+ enum class supportedClients {hexchat, mirc }
1313
1414
1515var tailerStopped = false
@@ -35,6 +35,13 @@ class listener : TailerListenerAdapter(){
3535 handleMessage(nick, line)
3636 }
3737
38+ fun mirc (l : String? ){
39+ var line : String = l!! .replace(" \t " , " " )
40+ val nick = line.split(Pattern .compile(" " ), 3 )[1 ].replace(" <" , " " ).replace(" >" , " " ).replace(" +" , " " ).replace(" %" , " " ).replace(" @" , " " ).replace(" ~" , " " ).replace(" &" , " " ) // strip: +%@~&
41+ line = line.split(Pattern .compile(" " ), 3 )[2 ].trim()
42+ handleMessage(nick, line)
43+ }
44+
3845
3946
4047 fun handleMessage (nick : String , message : String ){
@@ -46,6 +53,7 @@ class listener : TailerListenerAdapter(){
4653 when (message.split(Pattern .compile(" " ), 2 )[0 ]){
4754 " !go" , " !assign" -> {
4855 var number = message.split(" " )[1 ]
56+ if (message.split(Pattern .compile(" " ), 3 ).size < 3 ) return
4957 val rt = message.split(Pattern .compile(" " ), 3 )[2 ]
5058 var rats = ArrayList <Rat >()
5159 rt.split(" " ).mapTo(rats) { Rat (it, Status (" " )) }
@@ -96,7 +104,7 @@ class listener : TailerListenerAdapter(){
96104
97105 }
98106
99- " !sys" -> {
107+ " !sys" , " !system " -> {
100108 var number = message.split(" " )[1 ]
101109 val sys = message.split(Pattern .compile(" " ), 3 )[2 ]
102110 if (number.contains(" #" ) || number.toIntOrNull() != null ){
@@ -107,7 +115,7 @@ class listener : TailerListenerAdapter(){
107115 rescues.filter { it.client == number }.forEach { it.clientSystem.name = sys }
108116 }
109117 }
110- " !cmdr" -> {
118+ " !cmdr" , " !commander " -> {
111119 var number = message.split(" " )[1 ]
112120 val cmdr = message.split(Pattern .compile(" " ), 3 )[2 ]
113121 if (number.contains(" #" ) || number.toIntOrNull() != null ){
@@ -212,8 +220,9 @@ class listener : TailerListenerAdapter(){
212220 var number : String = " "
213221 rescues.forEach { names.add(it.client.toLowerCase()) }
214222 line.split(" " ).forEach { if (names.contains(it) || it.contains(" #" ) || it.toIntOrNull() != null ){number = it} }
215- if (number.contains (" #" ) || number .toIntOrNull() != null ) {
223+ if (number.replace (" #" , " " ) .toIntOrNull() != null ) {
216224 number = number.replace(" #" , " " )
225+
217226 val ret = rescues.filter{it.number == number.toInt()}
218227 if (ret.isEmpty()) return Rescue (" " , System (" " ), " " , - 1 , " " , false )
219228 return ret[0 ]
@@ -224,7 +233,7 @@ class listener : TailerListenerAdapter(){
224233 for (res in rescues) {
225234 var valid = false
226235 res.rats.forEach { if (it.name == nick){valid = true }}
227- if (valid){ret.add(res); break }
236+ if (valid && res.active ){ret.add(res); break }
228237 }
229238 }
230239 if (ret.isEmpty()){
0 commit comments