1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
/* +------------------------------------+
* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
* InspIRCd: (C) 2002-2011 InspIRCd Development Team
* See: http://wiki.inspircd.org/Credits
*
* This program is free but copyrighted software; see
* the file COPYING for details.
*
* ---------------------------------------------------
*/
#include "u_listmode.h"
/** Channel mode +b
*/
class ModeChannelBan : public ListModeBase
{
public:
ModeChannelBan();
};
/** Channel mode +i
*/
class ModeChannelInviteOnly : public SimpleChannelModeHandler
{
public:
ModeChannelInviteOnly();
};
/** Channel mode +k
*/
class ModeChannelKey : public ModeHandler
{
public:
ModeChannelKey();
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding);
};
/** Channel mode +l
*/
class ModeChannelLimit : public ParamChannelModeHandler
{
public:
ModeChannelLimit();
bool ParamValidate(std::string& parameter);
bool ParamOrder(const std::string&, const std::string&);
};
/** Channel mode +m
*/
class ModeChannelModerated : public SimpleChannelModeHandler
{
public:
ModeChannelModerated();
};
/** Channel mode +n
*/
class ModeChannelNoExternal : public SimpleChannelModeHandler
{
public:
ModeChannelNoExternal();
};
/** Channel mode +o
*/
class ModeChannelOp : public PrefixModeHandler
{
private:
public:
ModeChannelOp();
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding);
unsigned int GetPrefixRank();
};
/** Channel mode +p
*/
class ModeChannelPrivate : public SimpleChannelModeHandler
{
public:
ModeChannelPrivate();
};
/** Channel mode +s
*/
class ModeChannelSecret : public SimpleChannelModeHandler
{
public:
ModeChannelSecret();
};
/** Channel mode +t
*/
class ModeChannelTopicOps : public SimpleChannelModeHandler
{
public:
ModeChannelTopicOps();
};
/** Channel mode +v
*/
class ModeChannelVoice : public PrefixModeHandler
{
private:
public:
ModeChannelVoice();
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding);
unsigned int GetPrefixRank();
};
/** User mode +i
*/
class ModeUserInvisible : public SimpleUserModeHandler
{
public:
ModeUserInvisible();
};
/** User mode +o
*/
class ModeUserOperator : public ModeHandler
{
public:
ModeUserOperator();
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding);
};
/** User mode +n
*/
class ModeUserServerNoticeMask : public ModeHandler
{
public:
ModeUserServerNoticeMask();
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding);
void OnParameterMissing(User* user, User* dest, Channel* channel, std::string& parameter);
std::string GetUserParameter(User* user);
};
/** User mode +w
*/
class ModeUserWallops : public SimpleUserModeHandler
{
public:
ModeUserWallops();
};
|