diff options
Diffstat (limited to 'EssentialsUpdate/src/f00f/net/irc/martyr/modes/channel/SecretMode.java')
-rw-r--r-- | EssentialsUpdate/src/f00f/net/irc/martyr/modes/channel/SecretMode.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/EssentialsUpdate/src/f00f/net/irc/martyr/modes/channel/SecretMode.java b/EssentialsUpdate/src/f00f/net/irc/martyr/modes/channel/SecretMode.java new file mode 100644 index 000000000..33bb13733 --- /dev/null +++ b/EssentialsUpdate/src/f00f/net/irc/martyr/modes/channel/SecretMode.java @@ -0,0 +1,50 @@ +package f00f.net.irc.martyr.modes.channel; + +import f00f.net.irc.martyr.Mode; + +/** + * <p>Private and Secret Channels - The channel flag 'p' is used to + * mark a channel "private" and the channel flag 's' to mark a + * channel "secret". Both properties are similar and conceal the + * existence of the channel from other users.</p> + * + * <p>This means that there is no way of getting this channel's name from + * the server without being a member. In other words, these channels + * MUST be omitted from replies to queries like the WHOIS + * command.</p> + * + * <p>When a channel is "secret", in addition to the restriction above, the + * server will act as if the channel does not exist for queries like the + * TOPIC, LIST, NAMES commands. Note that there is one exception to + * this rule: servers will correctly reply to the MODE command. + * Finally, secret channels are not accounted for in the reply to the + * LUSERS command (See "Internet Relay Chat: Client Protocol" [IRC- + * CLIENT]) when the <mask> parameter is specified.</p> + * + * <p>The channel flags 'p' and 's' MUST NOT both be set at the same time. + * If a MODE message originating from a server sets the flag 'p' and the + * flag 's' is already set for the channel, the change is silently + * ignored. This should only happen during a split healing phase + * (mentioned in the "IRC Server Protocol" document + * [IRC-SERVER]).</p> + * + * (From RFC2811) + */ +public class SecretMode extends GenericChannelMode +{ + public boolean requiresParam() + { + return false; + } + + public char getChar() + { + return 's'; + } + + public Mode newInstance() + { + return new SecretMode(); + } +} + |