/* * Copyright (C) 2013 Aaron Weiss <aaronweiss74@gmail.com> * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom * the Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package us.aaronweiss.juicebot.examples; import io.netty.channel.Channel; import us.aaronweiss.juicebot.Bot; import us.aaronweiss.juicebot.SimpleBot; import java.util.Scanner; /** * A bot that responds to phrases containing "gas" and "jews" with a fun * message. {@code JuiceBot} serves as an example of the simple messaging * API. * * @author Aaron Weiss * @version 1.0.0 * @since 2.0.0 */ public class JuiceBot extends SimpleBot { /** * Creates a {@code JuiceBot}. */ public JuiceBot() { super("JuiceBot"); } /** * Creates a {@code JuiceBot} over SSL. * * @param useSSL whether or not to use SSL */ public JuiceBot(boolean useSSL) { super("JuiceBot", useSSL); } /** * Instructs the bot to join all of its home channels. */ public void joinAll() { join("#vana"); } @Override public void receive(String[] message, Channel session) { if (message[0].endsWith(username()) && message[1].equals("MODE") && message[2].equals(username())) joinAll(); boolean gas = false, jews = false; for (String token : message) { if (token.equalsIgnoreCase("gas") || token.equalsIgnoreCase(":gas")) gas = true; else if (token.equalsIgnoreCase("jews") || token.equalsIgnoreCase("joos")) jews = true; } if (gas || jews) say("No, I said pass the juice!", message[2], session); } /** * Runs this bot. * * @param args the server to connect to */ public static void main(String[] args) { String server = "irc.fyrechat.net:6667"; if (args.length > 0) server = args[0]; Bot bot = new JuiceBot(); Channel session = bot.connect(server); Scanner input = new Scanner(System.in); while (true) { String cmd = input.nextLine(); if (cmd.equalsIgnoreCase("quit") || cmd.equalsIgnoreCase("exit") || cmd.equalsIgnoreCase("shutdown")) { bot.disconnect(session); break; } } input.close(); } }