All pastes #613852 Raw Edit

Stuff

public java v1 · immutable
·published 2007-07-11 06:28 UTC
rendered paste body
import org.jibble.pircbot.*;import javax.swing.*;import java.util.*;import java.util.Timer;import java.io.*;public class iKitty extends PircBot {	private Timer unbanTimer = new Timer(true);	private TimerUnbanTask unbanTask = new TimerUnbanTask();	String noise;	public iKitty() {		this.setName("iKitty");		this.setLogin("iKitty");		sendMessage("nickserv", "identify Kitty_Cat");		this.unbanTask.setBot(this);	}	public void onJoin(String channel, String sender, String login, String hostname) {		// We only want to change ourself.		if (sender.equalsIgnoreCase(this.getNick())) {			// Set noise to quiet.			noise = "quiet";			// Give us the modes we are entitled to. 			setMode(getNick(), "+T");			setMode(getNick(), "+p");			setMode(getNick(), "+B");		}	}	public void onDisconnect() {		try {			reconnect();		}		catch (IOException e) {		}		catch (IrcException e) {		}	}	public void onMessage(String channel, String sender, String login, String hostname, String message) {		// Check for annoying mesages. 		if (message.startsWith("Playing: [") && message.endsWith("mp3 ]")) {			if (noise.equals("noisy")) {				// Make sure that they can't talk on this channel for at least a minute.				// "Nice" way to give them a hint.				ban(channel, hostname);				kick(channel, sender, "The mp3 script isn't welcome.  Turn it off.  Your ban will be removed in 1 minute");				// Get rid of old canceled tasks.				this.unbanTimer.purge();				// Tell our handler what to allow again.				this.unbanTask = new TimerUnbanTask(channel, hostname, this);				// Start their timer.				this.unbanTimer.schedule(unbanTask, 60 * 1000);			}			else {}		}		if (message.equals("!noisy")) {			if (sender.equals("Kitty_Cat")) {				noise = "noisy";			}			if (sender.equals("Vesuvius")) {				noise = "noisy";			}		}		if (message.equals("!quiet")) {			if (sender.equals("Kitty_Cat")) {				noise = "quiet";			}		}	}}// This is what is fired when the timer is up.class TimerUnbanTask extends TimerTask {	// Teh data we need to undo our ban.	private String channel = "";	private String hostmask = "";	// The bot we are doing this for.	private iKitty bot;	// Default constructor. Doesn't do anything.	public TimerUnbanTask() {}	// Set the info at creation.	public TimerUnbanTask(String channel, String hostmask) {		this.setInfo(channel, hostmask);	}	// Set the info at creation, including the bot.	public TimerUnbanTask(String channel, String hostmask, iKitty bot) {		this.setInfo(channel, hostmask);		this.setBot(bot);	}	// Set the info after the object has been created.	public void setInfo(String channel, String hostmask) {		this.channel = channel;		this.hostmask = hostmask;	}	// Register a new bot.	public void setBot(iKitty bot) {		this.bot = bot; 	}	// Unban the individual.	public void run() {		this.bot.unBan(this.channel, this.hostmask);		this.cancel();	}}