Index: src/IrcCommands/IrcCommands.cs =================================================================== --- src/IrcCommands/IrcCommands.cs (revisione 290) +++ src/IrcCommands/IrcCommands.cs (copia locale) @@ -196,6 +196,48 @@ /// /// /// + public void Halfop(string channel, string nickname, Priority priority) + { + WriteLine(Rfc2812.Mode(channel, "+h "+nickname), priority); + } + + /// + /// + /// + /// + /// + public void Halfop(string channel, string nickname) + { + WriteLine(Rfc2812.Mode(channel, "+h "+nickname)); + } + + /// + /// + /// + /// + /// + /// + public void Dehalfop(string channel, string nickname, Priority priority) + { + WriteLine(Rfc2812.Mode(channel, "-h "+nickname), priority); + } + + /// + /// + /// + /// + /// + public void Dehalfop(string channel, string nickname) + { + WriteLine(Rfc2812.Mode(channel, "-h "+nickname)); + } + + /// + /// + /// + /// + /// + /// public void Voice(string channel, string nickname, Priority priority) { WriteLine(Rfc2812.Mode(channel, "+v "+nickname), priority); Index: src/IrcClient/NonRfcChannelUser.cs =================================================================== --- src/IrcClient/NonRfcChannelUser.cs (revisione 290) +++ src/IrcClient/NonRfcChannelUser.cs (copia locale) @@ -55,9 +55,11 @@ #endif /// - /// + /// Gets or sets the halfop flag of the user (+h) /// - /// + /// + /// only used with channel sync + /// public bool IsHalfop { get { return _IsHalfop; Index: src/IrcClient/WhoInfo.cs =================================================================== --- src/IrcClient/WhoInfo.cs (revisione 290) +++ src/IrcClient/WhoInfo.cs (copia locale) @@ -42,6 +42,7 @@ private string f_Realname; private bool f_IsAway; private bool f_IsOp; + private bool f_IsHalfop; private bool f_IsVoice; private bool f_IsIrcOp; @@ -99,6 +100,12 @@ } } + public bool IsHalfop { + get { + return f_IsHalfop; + } + } + public bool IsVoice { get { return f_IsVoice; @@ -139,6 +146,7 @@ string usermode = data.RawMessageArray[8]; bool op = false; + bool halfop = false; bool voice = false; bool ircop = false; bool away = false; @@ -154,6 +162,9 @@ case '@': op = true; break; + case '%': + halfop = true; + break; case '+': voice = true; break; @@ -164,6 +175,7 @@ } whoInfo.f_IsAway = away; whoInfo.f_IsOp = op; + whoInfo.f_IsHalfop = halfop; whoInfo.f_IsVoice = voice; whoInfo.f_IsIrcOp = ircop;