public void onMessage(String channel, String sender, String login, String hostname, String message) { if (message.equals("!help")) { sendMessage(channel, "Sending you help via msg"); sendMessage(sender, "!linkme Stats Graph"); sendMessage(sender, "!remembername Stores the RSN for an IRC nick"); sendMessage(sender, "!hiscore Hiscores"); sendMessage(sender, "!price Price Lookup"); sendMessage(sender, "!w dictionary reference to the word"); sendMessage(sender, "!urban Urban dictionary reference to the word."); sendMessage(sender, "!xp Calculates ways to get to the goal level (or next level) in the skill."); } if (message.startsWith("!rsname")) { String[] rsnameSplit = message.split(" "); sendMessage(channel, rsnameSplit[1] + " - " + (String) rsname.get(rsnameSplit[1])); } if (message.startsWith("!remember")) { String[] remember = message.split(" "); rsname.put(sender, remember[1]); sendMessage(channel, "Associating RSN " + remember[1] + " with nick " + sender); writeNames(); } if (message.startsWith("!link")) { String[] split = message.split(" "); if (split.length == 1 ) { String realname = (String) rsname.get(sender); if (realname == null) { realname = sender; } sendMessage(channel, "http://guilds.sinthos-soft.com/rs/stats/rs_levels.php?user=" + realname); } else {sendMessage(channel, "http://guilds.sinthos-soft.com/rs/stats/rs_levels.php?user=" + split[1]); } } if (message.startsWith("!price")) { String priceSearch; String[] priceSplit = message.split(" ", 2); priceSearch = priceSplit[1].replaceAll(" ", "+"); writePrice(channel, sender, priceSearch); } if (message.startsWith("!cmb")) { String[] combatSplit = message.split(" "); String realname2 = combatSplit[1]; writeCombat(realname2); } if (message.startsWith("!urban")) { String[] urbanLookup = message.split(" ", 2); urbanLookup[1] = urbanLookup[1].replaceAll(" ", "+"); sendMessage(channel, "http://www.urbandictionary.com/define.php?term=" + urbanLookup[1]); } if (message.startsWith("!w")) { String[] word = message.split(" "); sendMessage(channel, "http://dictionary.reference.com/search?q=" + word[1]); } if (message.startsWith("!pot")) { String[] potSplit = message.split(" "); String pot = potSplit[1]; potHash.removePotAbbrevs(pot); sendMessage(channel, (String) potHash.potHash.get("range")); } if (message.startsWith("!xp")) { String realname2 = null; skillSearch = null; String goalLevel = null; message = message.toLowerCase(); String[] hiscoreSplit = message.split(" "); if (hiscoreSplit.length == 2) { realname2 = (String) rsname.get(sender); if (realname2 == null) { realname2 = sender; } skillSearch = hiscoreSplit[1]; removeAbbreviations(); } if (hiscoreSplit.length == 3) { try { Integer.parseInt(hiscoreSplit[2]); goalLevel = hiscoreSplit[2]; skillSearch = hiscoreSplit[1]; realname2 = (String) rsname.get(sender); if (realname2 == null) { realname2 = sender; } removeAbbreviations(); } catch (NumberFormatException e) { realname2 = (String) rsname.get(hiscoreSplit[1]); if (realname2 == null) { realname2 = hiscoreSplit[1]; } skillSearch = hiscoreSplit[2]; goalLevel = null; removeAbbreviations(); } } if (hiscoreSplit.length == 4) { realname2 = (String) rsname.get(hiscoreSplit[1]); if (realname2 == null) { realname2 = hiscoreSplit[1]; } skillSearch = hiscoreSplit[2]; goalLevel = hiscoreSplit[3]; removeAbbreviations(); } writeXP(realname2, skillSearch, goalLevel); if (xpVector.size() <= 6) { while (xpVector.size() != 0) { sendMessage(channel, xpVector.firstElement().toString()); xpVector.remove(0); } xpVector.clear(); } else { sendMessage(channel, "Stats over six lines. Sending via PM"); while (xpVector.size() != 0) { sendMessage(sender, xpVector.firstElement().toString()); xpVector.remove(0); } xpVector.clear(); } } if (message.startsWith("!hiscore")) { String realname2 = null; skillSearch = null; message = message.toLowerCase(); String[] hiscoreSplit = message.split(" "); if (hiscoreSplit.length == 2) { realname2 = (String) rsname.get(sender); if (realname2 == null) { realname2 = sender; } skillSearch = hiscoreSplit[1]; } if (hiscoreSplit.length == 3) { realname2 = (String) rsname.get(hiscoreSplit[1]); if (realname2 == null) { realname2 = hiscoreSplit[1]; } skillSearch = hiscoreSplit[2]; } int i = 0; removeAbbreviations(); writeStats(realname2); if (skillSearch.equals("all")) { if (statsVector.size() <= 5) { while (statsVector.size() > i) { sendMessage(channel, statsVector.get(i).toString()); i++; } statsVector.clear(); } else { sendMessage(channel, "Stats over six lines. Sending via PM"); while (statsVector.size() > i) { sendMessage(sender, statsVector.get(i).toString()); i++; } statsVector.clear(); } } else { String statMessage = (String) statsMap.get(skillSearch); if (statsMap.isEmpty()) { sendMessage(channel, "User " + realname2 + " does not feature in the highscores"); } else if (statMessage == null) { sendMessage(channel, "User " + realname2 + " is unranked for skill " + skillSearch); } else { sendMessage(channel, statMessage); } } statsMap.clear(); statsVector.clear(); } }