InspIRCd  3.0
Classes | Public Member Functions | Public Attributes | List of all members
CommandBase Class Reference

#include <ctables.h>

Inheritance diagram for CommandBase:
ServiceProvider classbase Command CommandWhowas SplitCommand


class  Params

Public Member Functions

 CommandBase (Module *me, const std::string &cmd, unsigned int minpara=0, unsigned int maxpara=0)
virtual RouteDescriptor GetRouting (User *user, const CommandBase::Params &parameters)
virtual void EncodeParameter (std::string &parameter, unsigned int index)
bool WorksBeforeReg ()
- Public Member Functions inherited from ServiceProvider
 ServiceProvider (Module *Creator, const std::string &Name, ServiceType Type)
virtual void RegisterService ()
void DisableAutoRegister ()
- Public Member Functions inherited from classbase
virtual CullResult cull ()

Public Attributes

unsigned char flags_needed
const unsigned int min_params
const unsigned int max_params
unsigned long use_count
bool works_before_reg
bool allow_empty_last_param
std::string syntax
std::vector< TranslateType > translation
unsigned int Penalty
- Public Attributes inherited from ServiceProvider
ModuleRef creator
const std::string name
const ServiceType service

Detailed Description

A structure that defines a command. Every command available in InspIRCd must be defined as derived from Command.

Constructor & Destructor Documentation

◆ CommandBase()

CommandBase::CommandBase ( Module me,
const std::string &  cmd,
unsigned int  minpara = 0,
unsigned int  maxpara = 0 

Create a new command.

meThe module which created this command.
cmdCommand name. This must be UPPER CASE.
minparaMinimum parameters required for the command.
maxparaMaximum number of parameters this command may have - extra parameters will be tossed into one last space-seperated param.

Member Function Documentation

◆ EncodeParameter()

void CommandBase::EncodeParameter ( std::string &  parameter,
unsigned int  index 

Encode a parameter for server->server transmission. Used for parameters for which the translation type is TR_CUSTOM.

parameterThe parameter to encode. Can be modified in place.
indexThe parameter index (0 == first parameter).

◆ WorksBeforeReg()

bool CommandBase::WorksBeforeReg ( )
true if the command works before registration.

Member Data Documentation

◆ allow_empty_last_param

bool CommandBase::allow_empty_last_param

True if the command allows an empty last parameter. When false and the last parameter is empty, it's popped BEFORE checking there are enough params, etc. (i.e. the handler won't be called if there aren't enough params after popping the empty param). True by default

◆ flags_needed

unsigned char CommandBase::flags_needed

User flags needed to execute the command or 0

◆ max_params

const unsigned int CommandBase::max_params

Maximum number of parameters command takes. This is used by the command parser to join extra parameters into one last param. If not set, no munging is done to this command.

◆ min_params

const unsigned int CommandBase::min_params

Minimum number of parameters command takes

◆ Penalty

unsigned int CommandBase::Penalty

How many seconds worth of penalty does this command have?

◆ syntax

std::string CommandBase::syntax

Syntax string for the command, displayed if non-empty string. This takes place of the text in the 'not enough parameters' numeric.

◆ translation

std::vector<TranslateType> CommandBase::translation

Translation type list for possible parameters, used to tokenize parameters into UIDs and SIDs etc.

◆ use_count

unsigned long CommandBase::use_count

used by /stats m

◆ works_before_reg

bool CommandBase::works_before_reg

True if the command can be issued before registering

The documentation for this class was generated from the following files: