"kliRzOL",
"Message restrictions"=>"cSmMnGT",
"Anti-flood and other restrictions"=>"FftCNKVQ",
"Visibility"=>"sp",
"Other"=>"rPHzZDd",
];
public static $cmodes =
[
"a" => [
"name" => "Admin",
"description" => "Marks someone as channel admin (&)",
"requires" => "Admin"
],
"b" => [
"name" => "Ban",
"description" => "Marks a ban from a channel",
"requires" => "HalfOp"
],
"c" => [
"name" => "No colors",
"description" => "Block messages containing mIRC color codes",
"requires" => "Operator"
],
"d" => [
"name" => "Delay Join",
"description" => "Indicates there are invisible users left over due to unsetting 'D'",
"requires" => "Server"
],
"e" => [
"name" => "Ban Exemption",
"description" => "Marks an exemption from channel bans",
"requires" => "HalfOp"
],
"f" => [
"name" => "Flood Protection",
"description" => "Implements channel flood protection",
"requires" => "Operator"
],
"h" => [
"name" => "Half Op",
"description" => "Marks someone as channel halfop (%)",
"requires" => "Operator"
],
"i" => [
"name" => "Invite Only",
"description" => "Requires an invitation to join",
"requires" => "HalfOp"
],
"k" => [
"name" => "Key",
"description" => "Requires a key/password to join",
"requires" => "HalfOp"
],
"l" => [
"name" => "Limit",
"description" => "Limits a channel to a specific amount of users",
"requires" => "HalfOp"
],
"m" => [
"name" => "Moderation",
"description" => "Prevents non-voiced users from speaking in a channel",
"requires" => "HalfOp"
],
"n" => [
"name" => "No External Messages",
"description" => "Messages cannot be sent to the channel from outside it",
"requires" => "HalfOp"
],
"o" => [
"name" => "Operator",
"description" => "Marks someone as channel operator (@)",
"requires" => "Operator"
],
"p" => [
"name" => "Private",
"description" => "Prevents the channel from showing up in /WHOIS
outputs and is replaces with \"*\" in /LIST
outputs",
"requires" => "Operator"
],
"q" => [
"name" => "Owner",
"description" => "Marks someone as channel owner (~)",
"requires" => "Owner"
],
"r" => [
"name" => "Registered",
"description" => "Channel has been registered to an account",
"requires" => "Server"
],
"s" => [
"name" => "Secret",
"description" => "Prevents the channel from showing up in /WHOIS
and /LIST
outputs",
"requires" => "Operator"
],
"t" => [
"name" => "Topic",
"description" => "Only HalfOps and above may set the topic.",
"requires" => "HalfOp"
],
"v" => [
"name" => "Voice",
"description" => "Marks someone as voiced in the channel (+)",
"requires" => "HalfOp"
],
"z" => [
"name" => "Secure Only",
"description" => "Only users using a secure connection may join this channel.",
"requires" => "Operator"
],
"C" => [
"name" => "No CTCPs",
"description" => "CTCP messages are not allowed on the channel.",
"requires" => "Operator"
],
"D" => [
"name" => "Delay Join",
"description" => "Delay showing joins until someone actually speaks.",
"requires" => "Operator"
],
"F" => [
"name" => "Flood Profile",
"description" => "Uses a Flood Profile to easily apply flood protection mechanisms",
"requires" => "Operator"
],
"G" => [
"name" => "Filter",
"description" => "Filters out all Bad words in messages with \"<censored>\".",
"requires" => "Operator"
],
"H" => [
"name" => "History",
"description" => "Record channel history with specified maximums.",
"requires" => "Operator"
],
"I" => [
"name" => "Invitation",
"description" => "Marks an inviation to a channel.",
"requires" => "HalfOp"
],
"K" => [
"name" => "No Knock",
"description" => "Users may not knock on this channel.",
"requires" => "HalfOp"
],
"L" => [
"name" => "Link",
"description" => "Link to another channel when unable to join",
"requires" => "Operator"
],
"M" => [
"name" => "Auth Moderated",
"description" => "Only users who have voice or are authenticated may talk in this channel.",
"requires" => "HalfOp"
],
"N" => [
"name" => "No Nick Changes",
"description" => "Nickname changes are not permitted on the channel.",
"requires" => "HalfOp"
],
"O" => [
"name" => "IRCOps Only",
"description" => "Only IRC Operators may join this channel.",
"requires" => "IRC Operator"
],
"P" => [
"name" => "Permanent",
"description" => "This channel will exist even when nobody is inside.",
"requires" => "IRC Operator"
],
"Q" => [
"name" => "No Kicks",
"description" => "Kicks are not allowed in this channel.",
"requires" => "Operator"
],
"R" => [
"name" => "Reg Only",
"description" => "Only registered/authenticated users may join the channel.",
"requires" => "Operator"
],
"S" => [
"name" => "Strip Color",
"description" => "All color is stripped from channel messages.",
"requires" => "IRC Operator"
],
"T" => [
"name" => "No Notices",
"description" => "Notices are not permitted on the channel.",
"requires" => "IRC Operator"
],
"V" => [
"name" => "No Invites",
"description" => "Users are not allowed to /INVITE
others to the channel.",
"requires" => "IRC Operator"
],
"Z" => [
"name" => "Is Secure",
"description" => "Indication that all users on the channel are on a Secure connection.",
"requires" => "Server"
]
];
static function lookup($mode)
{
return (isset(self::$cmodes[$mode])) ? self::$cmodes[$mode] :
[
'name' => "Unknown mode",
'description' => "Unknown mode +$mode",
'requires' => 'Unknown'
];
}
static function setmodes($modes)
{
$g = [];
if (is_array($modes))
{
self::$uplink = $modes;
return;
}
else if (!strstr($modes,","))
$g = [$modes];
else $g = split($g,",");
self::$uplink = $g;
}
static $uplink = [];
}