1 |
+ |
/* |
2 |
+ |
* i-scream central monitoring system |
3 |
+ |
* http://www.i-scream.org.uk |
4 |
+ |
* Copyright (C) 2000-2002 i-scream |
5 |
+ |
* |
6 |
+ |
* This program is free software; you can redistribute it and/or |
7 |
+ |
* modify it under the terms of the GNU General Public License |
8 |
+ |
* as published by the Free Software Foundation; either version 2 |
9 |
+ |
* of the License, or (at your option) any later version. |
10 |
+ |
* |
11 |
+ |
* This program is distributed in the hope that it will be useful, |
12 |
+ |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 |
+ |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 |
+ |
* GNU General Public License for more details. |
15 |
+ |
* |
16 |
+ |
* You should have received a copy of the GNU General Public License |
17 |
+ |
* along with this program; if not, write to the Free Software |
18 |
+ |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
19 |
+ |
*/ |
20 |
+ |
|
21 |
|
//---PACKAGE DECLARATION--- |
22 |
|
package uk.org.iscream.cms.server.client.alerters; |
23 |
|
|
287 |
|
|
288 |
|
// put these details into the bot |
289 |
|
this.setLogin(user); |
290 |
< |
this.setVersion(comment); |
290 |
> |
this.setVersion("[" + getRevision() + "] " + comment); |
291 |
|
this.setFinger(finger); |
292 |
|
|
293 |
|
// attempt to connect, trying each nickname |
309 |
|
_logger.write(this.toString(), Logger.ERROR, "IO error when connecting to server: "+e); |
310 |
|
throw new IOException("IO error when connecting to server"); |
311 |
|
} |
292 |
– |
catch(IrcException e) { |
293 |
– |
_logger.write(this.toString(), Logger.ERROR, "IRC error when connecting to server: "+e); |
294 |
– |
throw new IOException("IRC error when connecting to server"); |
295 |
– |
} |
312 |
|
catch(NickAlreadyInUseException e) { |
313 |
|
_logger.write(this.toString(), Logger.ERROR, "Nickname "+nick+" is already in use: "+e); |
314 |
|
// don't do anything, instead just loop round |
315 |
|
// and try the next nickname in the list |
316 |
|
} |
317 |
+ |
catch(IrcException e) { |
318 |
+ |
_logger.write(this.toString(), Logger.ERROR, "IRC error when connecting to server: "+e); |
319 |
+ |
throw new IOException("IRC error when connecting to server"); |
320 |
+ |
} |
321 |
|
} |
322 |
|
if(!ok) { |
323 |
|
// must have tried all the nicknames, best bail out |
430 |
|
public void onNickChange(String oldNick, String login, String hostname, String newNick) { |
431 |
|
if(oldNick.equals(_nickname)) { |
432 |
|
_nickname = newNick; |
433 |
+ |
// tell the underlying pircbot that our nick has changed too :) |
434 |
+ |
setName(newNick); |
435 |
|
} |
436 |
|
} |
437 |
|
|
470 |
|
* This method handles input directed to us, and |
471 |
|
* responds accordingly if required. |
472 |
|
* |
451 |
– |
* nb. matching user input is quite bad right now, |
452 |
– |
* and should be improved one day. |
453 |
– |
* |
473 |
|
* @param message the message from someone |
474 |
|
* @param source where the message came from, so we know where to send the response |
475 |
|
*/ |
498 |
|
return; |
499 |
|
} |
500 |
|
|
482 |
– |
// see if the message matches (loosely!) any |
483 |
– |
// of our known commands |
501 |
|
if(message.equalsIgnoreCase(stopCommand)) { |
502 |
|
_active = false; |
503 |
|
sendMessage(source, "alerts have been stopped"); |
528 |
|
} |
529 |
|
|
530 |
|
} |
531 |
< |
else if(message.equalsIgnoreCase(joinCommand)) { |
531 |
> |
else if(message.toLowerCase().startsWith(joinCommand.toLowerCase())) { |
532 |
|
String joinCmd = joinCommand; |
533 |
|
String newChan = message.substring(message.indexOf(joinCmd) + joinCmd.length() + 1); |
534 |
|
int endOfChan = newChan.indexOf(" "); |
544 |
|
_channel = newChan; |
545 |
|
} |
546 |
|
} |
547 |
< |
else if(message.equalsIgnoreCase(nickChangeCommand)) { |
547 |
> |
else if(message.toLowerCase().startsWith(nickChangeCommand.toLowerCase())) { |
548 |
|
String nickChangeCmd = nickChangeCommand; |
549 |
|
String newNick = message.substring(message.indexOf(nickChangeCmd) + nickChangeCmd.length() + 1); |
550 |
|
int endOfNick = newNick.indexOf(" "); |
555 |
|
changeNick(newNick); |
556 |
|
} |
557 |
|
else if(message.equalsIgnoreCase(versionCommand)) { |
558 |
< |
sendMessage(source, "I am version "+REVISION.substring(11, REVISION.length()-2)+" of the i-scream alerting bot"); |
558 |
> |
sendMessage(source, "I am version " + getRevision() + " of the i-scream alerting bot"); |
559 |
|
} |
560 |
|
else if(message.equalsIgnoreCase(helpCommand)) { |
561 |
|
sendMessage(source, "Hello, I am the i-scream alerting bot version "+REVISION.substring(11, REVISION.length() -2)); |
644 |
|
try { |
645 |
|
Thread.sleep(delayTime * 1000); |
646 |
|
} catch (InterruptedException e) {} |
647 |
+ |
} |
648 |
+ |
|
649 |
+ |
/** |
650 |
+ |
* Returns the revision of the bot. |
651 |
+ |
* |
652 |
+ |
* @return the revision of this bot |
653 |
+ |
*/ |
654 |
+ |
private String getRevision() { |
655 |
+ |
return REVISION.substring(11, REVISION.length()-2); |
656 |
|
} |
657 |
|
|
658 |
|
/** |