/* This file is part of leafdigital leafChat. leafChat is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. leafChat is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with leafChat. If not, see <http://www.gnu.org/licenses/>. Copyright 2011 Samuel Marshall. */ package com.leafdigital.irc.api; import leafchat.core.api.*; /** * Singleton that runs IRC /-commands. Commands are implemented via plugins * which listen for {@link UserCommandMsg}. */ public interface Commands extends Singleton { /** * Carries out an IRC command. * @param command Command string * @param contextServer Context server that command applies to * @param contextNick Context nickname (may be null) * @param contextChan Context channel (may be null) * @param md Display to use for response/error messages * @param variables If true, replaces variables in command (note: this is * currently not implemented and has no effect) */ public void doCommand(String command, Server contextServer,IRCUserAddress contextNick,String contextChan, MessageDisplay md,boolean variables); /** * Returns true if the character (presumably first character of an IRC typed * line) is a command character. Usually command character is / but users * can add others. * @param c Character in question * @return True if command, false otherwise */ public boolean isCommandCharacter(char c); }