@@ -0,0 +1,1143 @@
+import uk.co.uwcs.choob.*;%0Aimport uk.co.uwcs.choob.modules.*;%0Aimport uk.co.uwcs.choob.support.*;%0Aimport uk.co.uwcs.choob.support.events.*;%0Aimport java.util.*;%0Aimport java.util.regex.*;%0Aimport java.text.*;%0A%0A/**%0A * Choob link plugin%0A *%0A * @author Tim Retout %3Ctim@retout.co.uk%3E%0A *%0A */%0A%0Apublic class Link%0A%7B%0A%09public String%5B%5D info()%0A%09%7B%0A%09%09return new String%5B%5D %7B%0A%09%09%09%22Plugin which matches on links.%22,%0A%09%09%09%22Tim Retout%22,%0A%09%09%09%22tim@retout.co.uk%22,%0A%09%09%09%22Version 0.1%22%0A%09%09%7D;%0A%09%7D%0A%0A%09Modules mods;%0A%09IRCInterface irc;%0A%0A%09Set links = Collections.synchronizedSet(new HashSet());%0A%0A%09public Link(Modules mods, IRCInterface irc)%0A%09%7B%0A%09%09this.irc = irc;%0A%09%09this.mods = mods;%0A%09%7D%0A%0A%09public static String filterLinkRegex = %22http://%5C%5CS*%22;%0A%0A%09final private static Pattern linkPattern = Pattern.compile(filterLinkRegex);%0A%0A%09public synchronized void filterLink( Message mes, Modules mods, IRCInterface irc )%0A%09%7B%0A%09%09Matcher linkMatch = linkPattern.matcher(mes.getMessage());%0A%09%09%0A%09%09// Iterate over links in line.%0A%09%09while (linkMatch.find()) %7B%0A%09%09%09String link = linkMatch.group(0);%0A%09%09%09%0A%09%09%09if (links.contains(link))%0A%09%09%09%09irc.sendContextReply(mes, %22oooolllldddd%22);%0A%09%09%09else%0A%09%09%09%09links.add(link);%0A%09%09%7D%0A%09%7D%0A%7D%0A

Add 'Link' plugin. Currently it says "oolllddd" on duplicate links. I'm so proud. -- Tim