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;