View Javadoc

1   /***
2    * Jetrix TetriNET Server
3    * Copyright (C) 2001-2004  Emmanuel Bourg
4    *
5    * This program is free software; you can redistribute it and/or
6    * modify it under the terms of the GNU General Public License
7    * as published by the Free Software Foundation; either version 2
8    * of the License, or (at your option) any later version.
9    *
10   * This program is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   * GNU General Public License for more details.
14   *
15   * You should have received a copy of the GNU General Public License
16   * along with this program; if not, write to the Free Software
17   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18   */
19  
20  package net.jetrix.commands;
21  
22  import java.util.*;
23  
24  import net.jetrix.messages.channel.CommandMessage;
25  
26  /***
27   * A command consummes a CommandMessage to execute a specific operation.
28   *
29   * @author Emmanuel Bourg
30   * @version $Revision: 798 $, $Date: 2009-02-18 16:24:28 +0100 (Wed, 18 Feb 2009) $
31   */
32  public interface Command
33  {
34      /***
35       * Return the different names available to invoke this command.
36       * An alias doesn't contain the leading character used to call
37       * a command ("/" or "!"). The first alias in the array is the 
38       * default name that will be displayed in the /help list.
39       */
40      String[] getAliases();
41  
42      /***
43       * Return the usage of this command, for example
44       * <tt>/cmd &lt;param1&gt; &lt;param2&gt;</tt>
45       *
46       * @param locale the locale to be used for the usage
47       */
48      String getUsage(Locale locale);
49  
50      /***
51       * Return a description of this command.
52       *
53       * @param locale the locale to be used for the description
54       */
55      String getDescription(Locale locale);
56  
57      /***
58       * Return the required access level to execute this command.
59       */
60      int getAccessLevel();
61  
62      /***
63       * Set the access level required to execute this command.
64       *
65       * @since 0.2
66       *
67       * @param level the access level
68       */
69      void setAccessLevel(int level);
70  
71      /***
72       * Tells if the command is hidden from the /help list.
73       *
74       * @since 0.2
75       */
76      boolean isHidden();
77  
78      /***
79       * Change the hidden status of the command on the /help list.
80       *
81       * @since 0.2
82       *
83       * @param hidden
84       */
85      void setHidden(boolean hidden);
86  
87      /***
88       * Execute the command.
89       */
90      void execute(CommandMessage message);
91  
92  }