314 |
|
|
315 |
|
public void onMessage(String channel, String sender, String login, String hostname, String message) { |
316 |
|
if(isForMe(message)) { |
317 |
< |
String response = handleInput(message); |
318 |
< |
if(response != null) { |
319 |
< |
sendMessage(channel, response); |
320 |
< |
} |
317 |
> |
handleInput(message, channel); |
318 |
|
} |
319 |
|
} |
320 |
|
|
321 |
|
public void onPrivateMessage(String sender, String login, String hostname, String message) { |
322 |
< |
String response = handleInput(message); |
326 |
< |
if(response != null) { |
327 |
< |
sendMessage(sender, response); |
328 |
< |
} |
322 |
> |
handleInput(message, sender); |
323 |
|
} |
324 |
|
|
325 |
|
public void onNickChange(String oldNick, String login, String hostname, String newNick) { |
328 |
|
} |
329 |
|
} |
330 |
|
|
331 |
< |
private String handleInput(String message) { |
332 |
< |
//return "yup, gotcha!"; |
331 |
> |
public void onKick(String channel, String kickerNick, String kickerLogin, String kickerHostname, String recipientNick, String reason) { |
332 |
> |
if(recipientNick.equals(_nickname) && channel.equals(_channel)) { |
333 |
> |
sendMessage(kickerNick, "That wasn't a nice thing to do..."); |
334 |
> |
try { |
335 |
> |
_channel = ConfigurationProxy.getInstance().getProperty(_name, "Alerter.IRC.channel"); |
336 |
> |
} catch(PropertyNotFoundException e) { |
337 |
> |
_logger.write(this.toString(), Logger.ERROR, "Configuration error: "+e); |
338 |
> |
} |
339 |
> |
// should this be in the try? |
340 |
> |
joinChannel(_channel); |
341 |
> |
} |
342 |
> |
} |
343 |
> |
|
344 |
> |
private void handleInput(String message, String source) { |
345 |
> |
System.out.println("message: "+message); |
346 |
> |
System.out.println("from: "+source); |
347 |
|
ConfigurationProxy cp = ConfigurationProxy.getInstance(); |
348 |
|
// setup some String's |
349 |
|
String stopCommand, startCommand, timeSinceLastAlertCommand, lastAlertCommand, joinCommand; |
364 |
|
_logger.write(this.toString(), Logger.ERROR, "Configuration error: "+e); |
365 |
|
// lets bail from handling this line... |
366 |
|
// ...it's gonna be hard without a command set! |
367 |
< |
return null; |
367 |
> |
return; |
368 |
|
} |
369 |
|
|
370 |
< |
if(message.indexOf(stopCommand)!=-1) { |
370 |
> |
if(message.indexOf(stopCommand) != -1) { |
371 |
|
_active = false; |
372 |
< |
return "alerts have been stopped"; |
372 |
> |
sendMessage(source, "alerts have been stopped"); |
373 |
|
} |
374 |
< |
else if(message.indexOf(startCommand)!=-1) { |
374 |
> |
else if(message.indexOf(startCommand) != -1) { |
375 |
|
_active = true; |
376 |
< |
return "alerts have been activated"; |
376 |
> |
sendMessage(source, "alerts have been activated"); |
377 |
|
} |
378 |
|
// this needs to go here if it contains the same words as the lastAlertCommand |
379 |
< |
else if(message.indexOf(timeSinceLastAlertCommand)!=-1) { |
379 |
> |
else if(message.indexOf(timeSinceLastAlertCommand) != -1) { |
380 |
|
if(_lastAlertTime != -1) { |
381 |
|
long uptime = (System.currentTimeMillis() - _lastAlertTime) / 1000; |
382 |
|
String uptimeText = DateUtils.formatTime(uptime, "%DAYS% days, %HOURS% hours, %MINS% mins, and %SECS% secs"); |
383 |
< |
return "I last sent an alert "+uptimeText+ " ago"; |
383 |
> |
sendMessage(source, "I last sent an alert "+uptimeText+ " ago"); |
384 |
|
} |
385 |
|
else { |
386 |
< |
return "I've never sent an alert!"; |
386 |
> |
sendMessage(source, "I've never sent an alert!"); |
387 |
|
} |
388 |
|
} |
389 |
< |
else if(message.indexOf(lastAlertCommand)!=-1) { |
389 |
> |
else if(message.indexOf(lastAlertCommand) != -1) { |
390 |
|
if(_lastAlertTime != -1) { |
391 |
|
String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.UK).format(new Date(_lastAlertTime)); |
392 |
< |
return "last alert was at "+date+"; "+_lastAlert; |
392 |
> |
sendMessage(source, "last alert was at "+date+"; "+_lastAlert); |
393 |
|
} |
394 |
|
else { |
395 |
< |
return "I've never sent an alert!"; |
395 |
> |
sendMessage(source, "I've never sent an alert!"); |
396 |
|
} |
397 |
|
|
398 |
|
} |
399 |
< |
else if(message.indexOf(joinCommand)!=-1) { |
399 |
> |
else if(message.indexOf(joinCommand) != -1) { |
400 |
|
String joinCmd = joinCommand; |
401 |
|
String newChan = message.substring(message.indexOf(joinCmd) + joinCmd.length() + 1); |
402 |
|
int endOfChan = newChan.indexOf(" "); |
405 |
|
} |
406 |
|
newChan = newChan.substring(0, endOfChan); |
407 |
|
if(newChan.equals(_channel)) { |
408 |
< |
return "I'm already on "+newChan+"!"; |
408 |
> |
sendMessage(source, "I'm already on "+newChan+"!"); |
409 |
|
} else { |
410 |
|
partChannel(_channel); |
411 |
|
joinChannel(newChan); |
412 |
|
_channel = newChan; |
413 |
< |
return null; // ??? |
413 |
> |
//return null; // ??? |
414 |
|
} |
415 |
|
} |
416 |
< |
else if(message.indexOf(nickChangeCommand)!=-1) { |
416 |
> |
else if(message.indexOf(nickChangeCommand) != -1) { |
417 |
|
String nickChangeCmd = nickChangeCommand; |
418 |
|
String newNick = message.substring(message.indexOf(nickChangeCmd) + nickChangeCmd.length() + 1); |
419 |
|
int endOfNick = newNick.indexOf(" "); |
424 |
|
changeNick(newNick); |
425 |
|
// should we check this worked? |
426 |
|
//_nickname = newNick; |
427 |
< |
return null; // ??? |
427 |
> |
//return null; // ??? |
428 |
|
} |
429 |
< |
else if(message.indexOf(versionCommand)!=-1) { |
430 |
< |
return "I am version "+REVISION.substring(11, REVISION.length() -2)+" of the i-scream alerting bot"; |
429 |
> |
else if(message.indexOf(versionCommand) != -1) { |
430 |
> |
sendMessage(source, "I am version "+REVISION.substring(11, REVISION.length() -2)+" of the i-scream alerting bot"); |
431 |
|
} |
432 |
< |
else if(message.indexOf(helpCommand)!=-1) { |
433 |
< |
return "this will return some help text soon"; |
434 |
< |
/* |
435 |
< |
sendPrivMsg(getMsgSender(line), "Hello, I am the i-scream alerting bot version "+REVISION.substring(11, REVISION.length() -2)); |
436 |
< |
sendPrivMsg(getMsgSender(line), "I understand the following commands;"); |
437 |
< |
sendPrivMsg(getMsgSender(line), stopCommand); |
438 |
< |
sendPrivMsg(getMsgSender(line), startCommand); |
439 |
< |
sendPrivMsg(getMsgSender(line), lastAlertCommand); |
440 |
< |
sendPrivMsg(getMsgSender(line), joinCommand); |
441 |
< |
sendPrivMsg(getMsgSender(line), nickChangeCommand); |
442 |
< |
sendPrivMsg(getMsgSender(line), statCommand); |
443 |
< |
sendPrivMsg(getMsgSender(line), uptimeCommand); |
444 |
< |
sendPrivMsg(getMsgSender(line), timeSinceLastAlertCommand); |
445 |
< |
sendPrivMsg(getMsgSender(line), helpCommand); |
438 |
< |
*/ |
432 |
> |
else if(message.indexOf(helpCommand) != -1) { |
433 |
> |
//System.out.println("--starting help"); |
434 |
> |
sendMessage(source, "Hello, I am the i-scream alerting bot version "+REVISION.substring(11, REVISION.length() -2)); |
435 |
> |
sendMessage(source, "I understand the following commands;"); |
436 |
> |
sendMessage(source, stopCommand); |
437 |
> |
sendMessage(source, startCommand); |
438 |
> |
sendMessage(source, lastAlertCommand); |
439 |
> |
sendMessage(source, joinCommand); |
440 |
> |
sendMessage(source, nickChangeCommand); |
441 |
> |
sendMessage(source, statCommand); |
442 |
> |
sendMessage(source, uptimeCommand); |
443 |
> |
sendMessage(source, timeSinceLastAlertCommand); |
444 |
> |
sendMessage(source, helpCommand); |
445 |
> |
//System.out.println("--ending help"); |
446 |
|
} |
447 |
< |
else if(message.indexOf(statCommand)!=-1) { |
448 |
< |
return "I have sent a total of "+_alertCount+" alerts, and ignored a total of "+_ignoredCount+"!"; |
447 |
> |
else if(message.indexOf(statCommand) != -1) { |
448 |
> |
sendMessage(source, "I have sent a total of "+_alertCount+" alerts, and ignored a total of "+_ignoredCount+"!"); |
449 |
|
} |
450 |
< |
else if(message.indexOf(uptimeCommand)!=-1) { |
450 |
> |
else if(message.indexOf(uptimeCommand) != -1) { |
451 |
|
long uptime = (System.currentTimeMillis() - _startTime) / 1000; |
452 |
|
String uptimeText = DateUtils.formatTime(uptime, "%DAYS% days, %HOURS% hours, %MINS% mins, and %SECS% secs"); |
453 |
< |
return "I have been running for "+uptimeText; |
453 |
> |
sendMessage(source, "I have been running for "+uptimeText); |
454 |
|
} |
455 |
< |
else if(message.indexOf("ping")!=-1) { |
456 |
< |
return "pong"; |
455 |
> |
else if(message.indexOf("ping") != -1) { |
456 |
> |
sendMessage(source, "pong"); |
457 |
|
} |
458 |
< |
else if(message.indexOf("do a jibble dance")!=-1) { |
458 |
> |
else if(message.indexOf("do a jibble dance") != -1) { |
459 |
|
// little joke :) |
460 |
< |
return "jives to the funky beat shouting \"ii--screeeaaammm\""; |
460 |
> |
sendAction(source, "jives to the funky beat shouting \"ii--screeeaaammm\""); |
461 |
|
} |
462 |
|
|
463 |
|
else { |
467 |
|
} catch(PropertyNotFoundException e) { |
468 |
|
_logger.write(this.toString(), Logger.ERROR, "Configuration error: "+e); |
469 |
|
} |
470 |
< |
return rejectMessage; |
470 |
> |
sendMessage(source, rejectMessage); |
471 |
|
} |
472 |
|
} |
473 |
|
|