163 ModeHandler(
Module* me,
const std::string& name,
char modeletter, ParamSpec params, ModeType type);
183 virtual unsigned int GetPrefixRank();
202 int GetNumParams(
bool adding);
211 virtual std::string GetUserParameter(
User* useor);
221 virtual ModResult AccessCheck(
User* source,
Channel* channel, std::string ¶meter,
bool adding);
235 virtual ModeAction OnModeChange(
User* source,
User* dest,
Channel* channel, std::string ¶meter,
bool adding);
242 virtual void DisplayList(
User* user,
Channel* channel);
250 virtual void OnParameterMissing(
User* user,
User* dest,
Channel* channel);
257 virtual void DisplayEmptyList(
User* user,
Channel* channel);
269 virtual bool ResolveModeConflict(std::string &their_param,
const std::string &our_param,
Channel* channel);
293 inline unsigned int GetLevelRequired()
const {
return levelrequired; }
305 :
ModeHandler(Creator, Name, modeletter, PARAM_NONE, MODETYPE_USER) {}
319 :
ModeHandler(Creator, Name, modeletter, PARAM_NONE, MODETYPE_CHANNEL) {}
328 :
ModeHandler(Creator, Name, modeletter, PARAM_SETONLY, MODETYPE_CHANNEL) {}
331 virtual bool ParamValidate(std::string& parameter);
372 ModeType GetModeType();
387 virtual bool BeforeMode(
User* source,
User* dest,
Channel* channel, std::string ¶meter,
bool adding, ModeType type);
398 virtual void AfterMode(
User* source,
User* dest,
Channel* channel,
const std::string ¶meter,
bool adding, ModeType type);
401 typedef std::vector<ModeWatcher*>::iterator ModeWatchIter;
421 std::vector<ModeWatcher*> modewatchers[256];
425 void DisplayCurrentModes(
User *user,
User* targetuser,
Channel* targetchannel,
const char* text);
429 void DisplayListModes(
User* user,
Channel* chan, std::string &mode_sequence);
434 ModeAction TryMode(
User* user,
User* targu,
Channel* targc,
bool adding,
unsigned char mode, std::string ¶m,
bool SkipACL);
439 std::string LastParse;
440 std::vector<std::string> LastParseParams;
441 std::vector<TranslateType> LastParseTranslate;
443 unsigned int sent[256];
457 User* SanityChecks(
User *user,
const char *dest,
Channel *chan,
int status);
471 static void CleanMask(std::string &mask);
477 const std::string& GetLastParse();
478 const std::vector<std::string>& GetLastParseParams() {
return LastParseParams; }
479 const std::vector<TranslateType>& GetLastParseTranslate() {
return LastParseTranslate; }
518 void Process(
const std::vector<std::string>& parameters,
User *user,
bool merge =
false);
525 ModeHandler* FindMode(
unsigned const char modeletter, ModeType mt);
532 ModeHandler* FindPrefix(
unsigned const char pfxletter);
537 std::string UserModeList();
542 std::string ChannelModeList();
547 std::string ParaModeList();
555 std::string GiveModeList(ModeMasks m);
562 std::string BuildPrefixes(
bool lettersAndModes =
true);