63 |
|
/* Channel related flags */ |
64 |
|
enum |
65 |
|
{ |
66 |
< |
CHFL_CHANOP = 0x00000001U, /* Channel operator */ |
67 |
< |
CHFL_HALFOP = 0x00000002U, /* Channel half op */ |
68 |
< |
CHFL_VOICE = 0x00000004U, /* the power to speak */ |
69 |
< |
CHFL_BAN = 0x00000008U, /* ban channel flag */ |
70 |
< |
CHFL_EXCEPTION = 0x00000010U, /* exception to ban channel flag */ |
71 |
< |
CHFL_INVEX = 0x00000020U, |
66 |
> |
CHFL_CHANOP = 1 << 0, /* Channel operator */ |
67 |
> |
CHFL_HALFOP = 1 << 1, /* Channel half op */ |
68 |
> |
CHFL_VOICE = 1 << 2, /* the power to speak */ |
69 |
> |
CHFL_BAN = 1 << 3, /* ban channel flag */ |
70 |
> |
CHFL_EXCEPTION = 1 << 4, /* exception to ban channel flag */ |
71 |
> |
CHFL_INVEX = 1 << 5, |
72 |
|
/* Cache flags for silence on ban */ |
73 |
< |
CHFL_BAN_CHECKED = 0x00000040U, |
74 |
< |
CHFL_BAN_SILENCED = 0x00000080U |
73 |
> |
CHFL_BAN_CHECKED = 1 << 6, |
74 |
> |
CHFL_BAN_SILENCED = 1 << 7 |
75 |
|
}; |
76 |
|
|
77 |
|
/* channel modes ONLY */ |
78 |
|
enum |
79 |
|
{ |
80 |
< |
MODE_PRIVATE = 0x00000001U, /**< */ |
81 |
< |
MODE_SECRET = 0x00000002U, /**< Channel does not show up on NAMES or LIST */ |
82 |
< |
MODE_MODERATED = 0x00000004U, /**< Users without +v/+h/+o cannot send text to the channel */ |
83 |
< |
MODE_TOPICLIMIT = 0x00000008U, /**< Only chanops can change the topic */ |
84 |
< |
MODE_INVITEONLY = 0x00000010U, /**< Only invited users may join this channel */ |
85 |
< |
MODE_NOPRIVMSGS = 0x00000020U, /**< Users must be in the channel to send text to it */ |
86 |
< |
MODE_SSLONLY = 0x00000040U, /**< Prevents anyone who isn't connected via SSL/TLS from joining the channel */ |
87 |
< |
MODE_OPERONLY = 0x00000080U, /**< Prevents anyone who hasn't obtained IRC operator status from joining the channel */ |
88 |
< |
MODE_REGISTERED = 0x00000100U, /**< Channel has been registered with ChanServ */ |
89 |
< |
MODE_REGONLY = 0x00000200U, /**< Only registered clients may join a channel with that mode set */ |
90 |
< |
MODE_NOCTRL = 0x00000400U, /**< Prevents users from sending messages containing control codes to the channel */ |
91 |
< |
MODE_MODREG = 0x00000800U, /**< Unregistered/unidentified clients cannot send text to the channel */ |
92 |
< |
MODE_NOCTCP = 0x00001000U, /**< Clients cannot send CTCP messages to the channel */ |
93 |
< |
MODE_NONOTICE = 0x00002000U, /**< Clients cannot send NOTICE to the channel */ |
94 |
< |
MODE_HIDEBMASKS = 0x00004000U, /**< Hides +b/+e/+I lists/changes for non-chanops everywhere */ |
95 |
< |
MODE_EXTLIMIT = 0x00008000U /**< Channel can make use of the extended ban list limit */ |
80 |
> |
MODE_PRIVATE = 1 << 0, /**< */ |
81 |
> |
MODE_SECRET = 1 << 1, /**< Channel does not show up on NAMES or LIST */ |
82 |
> |
MODE_MODERATED = 1 << 2, /**< Users without +v/+h/+o cannot send text to the channel */ |
83 |
> |
MODE_TOPICLIMIT = 1 << 3, /**< Only chanops can change the topic */ |
84 |
> |
MODE_INVITEONLY = 1 << 4, /**< Only invited users may join this channel */ |
85 |
> |
MODE_NOPRIVMSGS = 1 << 5, /**< Users must be in the channel to send text to it */ |
86 |
> |
MODE_SSLONLY = 1 << 6, /**< Prevents anyone who isn't connected via SSL/TLS from joining the channel */ |
87 |
> |
MODE_OPERONLY = 1 << 7, /**< Prevents anyone who hasn't obtained IRC operator status from joining the channel */ |
88 |
> |
MODE_REGISTERED = 1 << 8, /**< Channel has been registered with ChanServ */ |
89 |
> |
MODE_REGONLY = 1 << 9, /**< Only registered clients may join a channel with that mode set */ |
90 |
> |
MODE_NOCTRL = 1 << 10, /**< Prevents users from sending messages containing control codes to the channel */ |
91 |
> |
MODE_MODREG = 1 << 11, /**< Unregistered/unidentified clients cannot send text to the channel */ |
92 |
> |
MODE_NOCTCP = 1 << 12, /**< Clients cannot send CTCP messages to the channel */ |
93 |
> |
MODE_NONOTICE = 1 << 13, /**< Clients cannot send NOTICE to the channel */ |
94 |
> |
MODE_HIDEBMASKS = 1 << 14, /**< Hides +b/+e/+I lists/changes for non-chanops everywhere */ |
95 |
> |
MODE_EXTLIMIT = 1 << 15 /**< Channel can make use of the extended ban list limit */ |
96 |
|
}; |
97 |
|
|
98 |
|
#define HasCMode(x, y) ((x)->mode.mode & (y)) |
130 |
|
|
131 |
|
extern void channel_mode_init(void); |
132 |
|
extern int add_id(struct Client *, struct Channel *, char *, unsigned int); |
133 |
< |
extern void set_channel_mode(struct Client *, struct Channel *, |
133 |
> |
extern void channel_mode_set(struct Client *, struct Channel *, |
134 |
|
struct Membership *, int, char **); |
135 |
|
extern void clear_ban_cache_list(dlink_list *); |
136 |
|
#endif /* INCLUDED_channel_mode_h */ |