gnuworld/mod.ccontrol/CControlCommands.h

142 lines
3.3 KiB
C++

/**
* CControlCommands.h
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*
* $Id: CControlCommands.h,v 1.34 2009/07/26 18:30:37 mrbean_ Exp $
*/
#ifndef __CCONTROLCOMMANDS_H
#define __CCONTROLCOMMANDS_H "$Id: CControlCommands.h,v 1.34 2009/07/26 18:30:37 mrbean_ Exp $"
#include <string>
#include "iClient.h"
using std::string ;
namespace gnuworld
{
class xServer ;
namespace uworld
{
class ccontrol ;
class Command
{
public:
Command( ccontrol* _bot, const string& _commName,
const bool _needsDB,
const string& _help, const unsigned long _flags,
const bool _disabled, const bool _needOp,
const bool _noLog,const int unsigned _minLevel,
const bool _secondAccess)
: bot( _bot ),
server( 0 ),
commName( _commName ),
commRealName( _commName ),
needDB ( _needsDB ),
help( _help ),
flags ( _flags ),
isDisabled ( _disabled ),
needOp ( _needOp),
noLog ( _noLog ),
minLevel ( _minLevel ),
secondAccess ( _secondAccess )
{}
virtual ~Command() {}
/// Exec returns true if the command was successfully
/// executed, false otherwise.
virtual bool Exec( iClient*, const string&) = 0 ;
void setServer( xServer* _server )
{ server = _server ; }
virtual string getInfo() const
{ return commName + ' ' + help ; }
virtual void Usage( iClient* theClient ) ;
void setName( const string& _name )
{ commName = string_upper( _name ); }
void Disable()
{ isDisabled = true ; }
void Enable()
{ isDisabled = false ; }
void setNeedOp ( const bool _needOp )
{ needOp = _needOp ; }
void setNoLog ( const bool _noLog )
{ noLog = _noLog ; }
void setMinLevel ( const int unsigned _minLevel )
{ minLevel = _minLevel ; }
inline const string& getName() const
{ return commName ; }
inline const string& getRealName() const
{ return commRealName ; }
inline const bool& needsDB() const
{ return needDB ; }
inline const string& getHelp() const
{ return help ; }
inline const unsigned long& getFlags() const
{ return flags ; }
inline const bool& getIsDisabled() const
{ return isDisabled ; }
inline const bool& getNeedOp() const
{ return needOp ; }
inline const bool& getNoLog() const
{ return noLog ; }
inline const unsigned int& getMinLevel() const
{ return minLevel ; }
inline const bool& getSecondAccess() const
{ return secondAccess ; }
protected:
ccontrol* bot ;
xServer* server ;
string commName ;
string commRealName ;
bool needDB;
string help ;
unsigned long flags;
bool isDisabled;
bool needOp;
bool noLog;
unsigned int minLevel;
bool secondAccess;
} ;
}
} // namespace gnuworld
#endif // __CCONTROLCOMMANDS_H