Trunk_AdminOwner.patch
| IrcClient/Delegates.cs (working copy) | ||
|---|---|---|
| 7 | 7 |
* |
| 8 | 8 |
* SmartIrc4net - the IRC library for .NET/C# <http://smartirc4net.sf.net> |
| 9 | 9 |
* |
| 10 |
* Copyright (c) 2003-2005 Mirco Bauer <[email protected]> <http://www.meebey.net> |
|
| 10 |
* Copyright (c) 2003-2009 Mirco Bauer <[email protected]> <http://www.meebey.net> |
|
| 11 |
* Copyright (c) 2008-2009 Thomas Bruderer <[email protected]> |
|
| 11 | 12 |
* |
| 12 | 13 |
* Full LGPL License: <http://www.gnu.org/licenses/lgpl.txt> |
| 13 | 14 |
* |
| ... | ... | |
| 41 | 42 |
public delegate void InviteEventHandler(object sender, InviteEventArgs e); |
| 42 | 43 |
public delegate void OpEventHandler(object sender, OpEventArgs e); |
| 43 | 44 |
public delegate void DeopEventHandler(object sender, DeopEventArgs e); |
| 45 |
public delegate void AdminEventHandler(object sender, AdminEventArgs e); |
|
| 46 |
public delegate void DeadminEventHandler(object sender, DeadminEventArgs e); |
|
| 44 | 47 |
public delegate void HalfopEventHandler(object sender, HalfopEventArgs e); |
| 45 | 48 |
public delegate void DehalfopEventHandler(object sender, DehalfopEventArgs e); |
| 49 |
public delegate void OwnerEventHandler(object sender, OwnerEventArgs e); |
|
| 50 |
public delegate void DeownerEventHandler(object sender, DeownerEventArgs e); |
|
| 46 | 51 |
public delegate void VoiceEventHandler(object sender, VoiceEventArgs e); |
| 47 | 52 |
public delegate void DevoiceEventHandler(object sender, DevoiceEventArgs e); |
| 48 | 53 |
public delegate void BanEventHandler(object sender, BanEventArgs e); |
| IrcClient/EventArgs.cs (working copy) | ||
|---|---|---|
| 7 | 7 |
* |
| 8 | 8 |
* SmartIrc4net - the IRC library for .NET/C# <http://smartirc4net.sf.net> |
| 9 | 9 |
* |
| 10 |
* Copyright (c) 2003-2005 Mirco Bauer <[email protected]> <http://www.meebey.net> |
|
| 10 |
* Copyright (c) 2003-2009 Mirco Bauer <[email protected]> <http://www.meebey.net> |
|
| 11 |
* Copyright (c) 2008-2009 Thomas Bruderer <[email protected]> |
|
| 11 | 12 |
* |
| 12 | 13 |
* Full LGPL License: <http://www.gnu.org/licenses/lgpl.txt> |
| 13 | 14 |
* |
| ... | ... | |
| 780 | 781 |
} |
| 781 | 782 |
} |
| 782 | 783 |
|
| 784 |
public class AdminEventArgs : IrcEventArgs |
|
| 785 |
{
|
|
| 786 |
private string _Channel; |
|
| 787 |
private string _Who; |
|
| 788 |
private string _Whom; |
|
| 789 |
|
|
| 790 |
public string Channel {
|
|
| 791 |
get {
|
|
| 792 |
return _Channel; |
|
| 793 |
} |
|
| 794 |
} |
|
| 795 |
|
|
| 796 |
public string Who {
|
|
| 797 |
get {
|
|
| 798 |
return _Who; |
|
| 799 |
} |
|
| 800 |
} |
|
| 801 |
|
|
| 802 |
public string Whom {
|
|
| 803 |
get {
|
|
| 804 |
return _Whom; |
|
| 805 |
} |
|
| 806 |
} |
|
| 807 |
|
|
| 808 |
internal AdminEventArgs(IrcMessageData data, string channel, string who, string whom) : base(data) |
|
| 809 |
{
|
|
| 810 |
_Channel = channel; |
|
| 811 |
_Who = who; |
|
| 812 |
_Whom = whom; |
|
| 813 |
} |
|
| 814 |
} |
|
| 815 |
|
|
| 816 |
public class DeadminEventArgs : IrcEventArgs |
|
| 817 |
{
|
|
| 818 |
private string _Channel; |
|
| 819 |
private string _Who; |
|
| 820 |
private string _Whom; |
|
| 821 |
|
|
| 822 |
public string Channel {
|
|
| 823 |
get {
|
|
| 824 |
return _Channel; |
|
| 825 |
} |
|
| 826 |
} |
|
| 827 |
|
|
| 828 |
public string Who {
|
|
| 829 |
get {
|
|
| 830 |
return _Who; |
|
| 831 |
} |
|
| 832 |
} |
|
| 833 |
|
|
| 834 |
public string Whom {
|
|
| 835 |
get {
|
|
| 836 |
return _Whom; |
|
| 837 |
} |
|
| 838 |
} |
|
| 839 |
|
|
| 840 |
internal DeadminEventArgs(IrcMessageData data, string channel, string who, string whom) : base(data) |
|
| 841 |
{
|
|
| 842 |
_Channel = channel; |
|
| 843 |
_Who = who; |
|
| 844 |
_Whom = whom; |
|
| 845 |
} |
|
| 846 |
} |
|
| 847 |
|
|
| 848 |
public class OwnerEventArgs : IrcEventArgs |
|
| 849 |
{
|
|
| 850 |
private string _Channel; |
|
| 851 |
private string _Who; |
|
| 852 |
private string _Whom; |
|
| 853 |
|
|
| 854 |
public string Channel {
|
|
| 855 |
get {
|
|
| 856 |
return _Channel; |
|
| 857 |
} |
|
| 858 |
} |
|
| 859 |
|
|
| 860 |
public string Who {
|
|
| 861 |
get {
|
|
| 862 |
return _Who; |
|
| 863 |
} |
|
| 864 |
} |
|
| 865 |
|
|
| 866 |
public string Whom {
|
|
| 867 |
get {
|
|
| 868 |
return _Whom; |
|
| 869 |
} |
|
| 870 |
} |
|
| 871 |
|
|
| 872 |
internal OwnerEventArgs(IrcMessageData data, string channel, string who, string whom) : base(data) |
|
| 873 |
{
|
|
| 874 |
_Channel = channel; |
|
| 875 |
_Who = who; |
|
| 876 |
_Whom = whom; |
|
| 877 |
} |
|
| 878 |
} |
|
| 879 |
|
|
| 880 |
public class DeownerEventArgs : IrcEventArgs |
|
| 881 |
{
|
|
| 882 |
private string _Channel; |
|
| 883 |
private string _Who; |
|
| 884 |
private string _Whom; |
|
| 885 |
|
|
| 886 |
public string Channel {
|
|
| 887 |
get {
|
|
| 888 |
return _Channel; |
|
| 889 |
} |
|
| 890 |
} |
|
| 891 |
|
|
| 892 |
public string Who {
|
|
| 893 |
get {
|
|
| 894 |
return _Who; |
|
| 895 |
} |
|
| 896 |
} |
|
| 897 |
|
|
| 898 |
public string Whom {
|
|
| 899 |
get {
|
|
| 900 |
return _Whom; |
|
| 901 |
} |
|
| 902 |
} |
|
| 903 |
|
|
| 904 |
internal DeownerEventArgs(IrcMessageData data, string channel, string who, string whom) : base(data) |
|
| 905 |
{
|
|
| 906 |
_Channel = channel; |
|
| 907 |
_Who = who; |
|
| 908 |
_Whom = whom; |
|
| 909 |
} |
|
| 910 |
} |
|
| 911 |
|
|
| 783 | 912 |
/// <summary> |
| 784 | 913 |
/// |
| 785 | 914 |
/// </summary> |
| IrcClient/IrcClient.cs (working copy) | ||
|---|---|---|
| 7 | 7 |
* |
| 8 | 8 |
* SmartIrc4net - the IRC library for .NET/C# <http://smartirc4net.sf.net> |
| 9 | 9 |
* |
| 10 |
* Copyright (c) 2003-2008 Mirco Bauer <[email protected]> |
|
| 10 |
* Copyright (c) 2003-2009 Mirco Bauer <[email protected]> |
|
| 11 |
* Copyright (c) 2008-2009 Thomas Bruderer <[email protected]> |
|
| 11 | 12 |
* |
| 12 | 13 |
* Full LGPL License: <http://www.gnu.org/licenses/lgpl.txt> |
| 13 | 14 |
* |
| ... | ... | |
| 114 | 115 |
public event UnbanEventHandler OnUnban; |
| 115 | 116 |
public event OpEventHandler OnOp; |
| 116 | 117 |
public event DeopEventHandler OnDeop; |
| 118 |
public event AdminEventHandler OnAdmin; |
|
| 119 |
public event DeadminEventHandler OnDeadmin; |
|
| 117 | 120 |
public event HalfopEventHandler OnHalfop; |
| 118 | 121 |
public event DehalfopEventHandler OnDehalfop; |
| 122 |
public event OwnerEventHandler OnOwner; |
|
| 123 |
public event DeownerEventHandler OnDeowner; |
|
| 119 | 124 |
public event VoiceEventHandler OnVoice; |
| 120 | 125 |
public event DevoiceEventHandler OnDevoice; |
| 121 | 126 |
public event WhoEventHandler OnWho; |
| ... | ... | |
| 311 | 316 |
} |
| 312 | 317 |
#endif |
| 313 | 318 |
_SupportNonRfc = value; |
| 319 |
|
|
| 320 |
if (SupportNonRfcChanged != null) {
|
|
| 321 |
SupportNonRfcChanged(this, EventArgs.Empty); |
|
| 322 |
} |
|
| 314 | 323 |
} |
| 315 | 324 |
} |
| 325 |
|
|
| 326 |
public event EventHandler SupportNonRfcChanged; |
|
| 316 | 327 |
|
| 317 | 328 |
/// <summary> |
| 318 | 329 |
/// Gets the nickname of us. |
| ... | ... | |
| 1366 | 1377 |
chan.UnsafeVoices.Remove(nickname); |
| 1367 | 1378 |
if (SupportNonRfc) {
|
| 1368 | 1379 |
NonRfcChannel nchan = (NonRfcChannel)chan; |
| 1380 |
nchan.UnsafeAdmins.Remove(nickname); |
|
| 1369 | 1381 |
nchan.UnsafeHalfops.Remove(nickname); |
| 1382 |
nchan.UnsafeOwners.Remove(nickname); |
|
| 1370 | 1383 |
} |
| 1371 | 1384 |
} |
| 1372 | 1385 |
|
| ... | ... | |
| 1530 | 1543 |
} |
| 1531 | 1544 |
} |
| 1532 | 1545 |
break; |
| 1546 |
case 'a': |
|
| 1547 |
if (SupportNonRfc) {
|
|
| 1548 |
temp = (string)parametersEnumerator.Current; |
|
| 1549 |
parametersEnumerator.MoveNext(); |
|
| 1550 |
|
|
| 1551 |
if (add) {
|
|
| 1552 |
if (ActiveChannelSyncing) {
|
|
| 1553 |
// sanity check |
|
| 1554 |
if (GetChannelUser(ircdata.Channel, temp) != null) {
|
|
| 1555 |
// update the halfop list |
|
| 1556 |
try {
|
|
| 1557 |
((NonRfcChannel)channel).UnsafeAdmins.Add(temp, GetIrcUser(temp)); |
|
| 1558 |
#if LOG4NET |
|
| 1559 |
Logger.ChannelSyncing.Debug("added admin: "+temp+" to: "+ircdata.Channel);
|
|
| 1560 |
#endif |
|
| 1561 |
} catch (ArgumentException) {
|
|
| 1562 |
#if LOG4NET |
|
| 1563 |
Logger.ChannelSyncing.Debug("duplicate admin: "+temp+" in: "+ircdata.Channel+" not added");
|
|
| 1564 |
#endif |
|
| 1565 |
} |
|
| 1566 |
|
|
| 1567 |
// update the user halfop status |
|
| 1568 |
NonRfcChannelUser cuser = (NonRfcChannelUser)GetChannelUser(ircdata.Channel, temp); |
|
| 1569 |
cuser.IsAdmin = true; |
|
| 1570 |
#if LOG4NET |
|
| 1571 |
Logger.ChannelSyncing.Debug("set admin status: " + temp + " for: "+ircdata.Channel);
|
|
| 1572 |
#endif |
|
| 1573 |
} else {
|
|
| 1574 |
#if LOG4NET |
|
| 1575 |
Logger.ChannelSyncing.Error("_InterpretChannelMode(): GetChannelUser(" + ircdata.Channel + "," + temp + ") returned null! Ignoring...");
|
|
| 1576 |
#endif |
|
| 1577 |
} |
|
| 1578 |
} |
|
| 1579 |
|
|
| 1580 |
if (OnAdmin != null) {
|
|
| 1581 |
OnAdmin(this, new AdminEventArgs(ircdata, ircdata.Channel, ircdata.Nick, temp)); |
|
| 1582 |
} |
|
| 1583 |
} |
|
| 1584 |
if (remove) {
|
|
| 1585 |
if (ActiveChannelSyncing) {
|
|
| 1586 |
// sanity check |
|
| 1587 |
if (GetChannelUser(ircdata.Channel, temp) != null) {
|
|
| 1588 |
// update the halfop list |
|
| 1589 |
((NonRfcChannel)channel).UnsafeAdmins.Remove(temp); |
|
| 1590 |
#if LOG4NET |
|
| 1591 |
Logger.ChannelSyncing.Debug("removed admin: "+temp+" from: "+ircdata.Channel);
|
|
| 1592 |
#endif |
|
| 1593 |
// update the user halfop status |
|
| 1594 |
NonRfcChannelUser cuser = (NonRfcChannelUser)GetChannelUser(ircdata.Channel, temp); |
|
| 1595 |
cuser.IsAdmin = false; |
|
| 1596 |
#if LOG4NET |
|
| 1597 |
Logger.ChannelSyncing.Debug("unset admin status: " + temp + " for: "+ircdata.Channel);
|
|
| 1598 |
#endif |
|
| 1599 |
} else {
|
|
| 1600 |
#if LOG4NET |
|
| 1601 |
Logger.ChannelSyncing.Error("_InterpretChannelMode(): GetChannelUser(" + ircdata.Channel + "," + temp + ") returned null! Ignoring...");
|
|
| 1602 |
#endif |
|
| 1603 |
} |
|
| 1604 |
} |
|
| 1605 |
|
|
| 1606 |
if (OnDeadmin != null) {
|
|
| 1607 |
OnDeadmin(this, new DeadminEventArgs(ircdata, ircdata.Channel, ircdata.Nick, temp)); |
|
| 1608 |
} |
|
| 1609 |
} |
|
| 1610 |
} |
|
| 1611 |
break; |
|
| 1612 |
case 'r': |
|
| 1613 |
if (SupportNonRfc) {
|
|
| 1614 |
temp = (string)parametersEnumerator.Current; |
|
| 1615 |
parametersEnumerator.MoveNext(); |
|
| 1616 |
|
|
| 1617 |
if (add) {
|
|
| 1618 |
if (ActiveChannelSyncing) {
|
|
| 1619 |
// sanity check |
|
| 1620 |
if (GetChannelUser(ircdata.Channel, temp) != null) {
|
|
| 1621 |
// update the halfop list |
|
| 1622 |
try {
|
|
| 1623 |
((NonRfcChannel)channel).UnsafeOwners.Add(temp, GetIrcUser(temp)); |
|
| 1624 |
#if LOG4NET |
|
| 1625 |
Logger.ChannelSyncing.Debug("added owner: "+temp+" to: "+ircdata.Channel);
|
|
| 1626 |
#endif |
|
| 1627 |
} catch (ArgumentException) {
|
|
| 1628 |
#if LOG4NET |
|
| 1629 |
Logger.ChannelSyncing.Debug("duplicate owner: "+temp+" in: "+ircdata.Channel+" not added");
|
|
| 1630 |
#endif |
|
| 1631 |
} |
|
| 1632 |
|
|
| 1633 |
// update the user halfop status |
|
| 1634 |
NonRfcChannelUser cuser = (NonRfcChannelUser)GetChannelUser(ircdata.Channel, temp); |
|
| 1635 |
cuser.IsOwner = true; |
|
| 1636 |
#if LOG4NET |
|
| 1637 |
Logger.ChannelSyncing.Debug("set owner status: " + temp + " for: "+ircdata.Channel);
|
|
| 1638 |
#endif |
|
| 1639 |
} else {
|
|
| 1640 |
#if LOG4NET |
|
| 1641 |
Logger.ChannelSyncing.Error("_InterpretChannelMode(): GetChannelUser(" + ircdata.Channel + "," + temp + ") returned null! Ignoring...");
|
|
| 1642 |
#endif |
|
| 1643 |
} |
|
| 1644 |
} |
|
| 1645 |
|
|
| 1646 |
if (OnOwner != null) {
|
|
| 1647 |
OnOwner(this, new OwnerEventArgs(ircdata, ircdata.Channel, ircdata.Nick, temp)); |
|
| 1648 |
} |
|
| 1649 |
} |
|
| 1650 |
if (remove) {
|
|
| 1651 |
if (ActiveChannelSyncing) {
|
|
| 1652 |
// sanity check |
|
| 1653 |
if (GetChannelUser(ircdata.Channel, temp) != null) {
|
|
| 1654 |
// update the halfop list |
|
| 1655 |
((NonRfcChannel)channel).UnsafeOwners.Remove(temp); |
|
| 1656 |
#if LOG4NET |
|
| 1657 |
Logger.ChannelSyncing.Debug("removed owner: "+temp+" from: "+ircdata.Channel);
|
|
| 1658 |
#endif |
|
| 1659 |
// update the user halfop status |
|
| 1660 |
NonRfcChannelUser cuser = (NonRfcChannelUser)GetChannelUser(ircdata.Channel, temp); |
|
| 1661 |
cuser.IsOwner = false; |
|
| 1662 |
#if LOG4NET |
|
| 1663 |
Logger.ChannelSyncing.Debug("unset owner status: " + temp + " for: "+ircdata.Channel);
|
|
| 1664 |
#endif |
|
| 1665 |
} else {
|
|
| 1666 |
#if LOG4NET |
|
| 1667 |
Logger.ChannelSyncing.Error("_InterpretChannelMode(): GetChannelUser(" + ircdata.Channel + "," + temp + ") returned null! Ignoring...");
|
|
| 1668 |
#endif |
|
| 1669 |
} |
|
| 1670 |
} |
|
| 1671 |
|
|
| 1672 |
if (OnDeowner != null) {
|
|
| 1673 |
OnDeowner(this, new DeownerEventArgs(ircdata, ircdata.Channel, ircdata.Nick, temp)); |
|
| 1674 |
} |
|
| 1675 |
} |
|
| 1676 |
} |
|
| 1677 |
break; |
|
| 1533 | 1678 |
case 'v': |
| 1534 | 1679 |
temp = (string)parametersEnumerator.Current; |
| 1535 | 1680 |
parametersEnumerator.MoveNext(); |
| ... | ... | |
| 2084 | 2229 |
channel.UnsafeOps.Remove(oldnickname); |
| 2085 | 2230 |
channel.UnsafeOps.Add(newnickname, channeluser); |
| 2086 | 2231 |
} |
| 2087 |
if (SupportNonRfc && ((NonRfcChannelUser)channeluser).IsHalfop) {
|
|
| 2088 |
NonRfcChannel nchannel = (NonRfcChannel)channel; |
|
| 2089 |
nchannel.UnsafeHalfops.Remove(oldnickname); |
|
| 2090 |
nchannel.UnsafeHalfops.Add(newnickname, channeluser); |
|
| 2091 |
} |
|
| 2092 | 2232 |
if (channeluser.IsVoice) {
|
| 2093 | 2233 |
channel.UnsafeVoices.Remove(oldnickname); |
| 2094 | 2234 |
channel.UnsafeVoices.Add(newnickname, channeluser); |
| 2095 | 2235 |
} |
| 2236 |
if (SupportNonRfc) {
|
|
| 2237 |
NonRfcChannel nchannel = (NonRfcChannel)channel; |
|
| 2238 |
if (((NonRfcChannelUser)channeluser).IsAdmin) {
|
|
| 2239 |
nchannel.UnsafeAdmins.Remove(oldnickname); |
|
| 2240 |
nchannel.UnsafeAdmins.Add(newnickname, channeluser); |
|
| 2241 |
} |
|
| 2242 |
if (((NonRfcChannelUser)channeluser).IsHalfop) {
|
|
| 2243 |
nchannel.UnsafeHalfops.Remove(oldnickname); |
|
| 2244 |
nchannel.UnsafeHalfops.Add(newnickname, channeluser); |
|
| 2245 |
} |
|
| 2246 |
if (((NonRfcChannelUser)channeluser).IsOwner) {
|
|
| 2247 |
nchannel.UnsafeOwners.Remove(oldnickname); |
|
| 2248 |
nchannel.UnsafeOwners.Add(newnickname, channeluser); |
|
| 2249 |
} |
|
| 2250 |
} |
|
| 2251 |
|
|
| 2096 | 2252 |
} |
| 2097 | 2253 |
} |
| 2098 | 2254 |
} |
| ... | ... | |
| 2234 | 2390 |
if (ActiveChannelSyncing && |
| 2235 | 2391 |
IsJoined(channelname)) {
|
| 2236 | 2392 |
string nickname; |
| 2237 |
bool op; |
|
| 2238 |
bool halfop; |
|
| 2239 |
bool voice; |
|
| 2393 |
bool op, voice; |
|
| 2394 |
bool halfop, admin, owner; |
|
| 2240 | 2395 |
foreach (string user in userlist) {
|
| 2241 | 2396 |
if (user.Length <= 0) {
|
| 2242 | 2397 |
continue; |
| 2243 | 2398 |
} |
| 2244 | 2399 |
|
| 2245 | 2400 |
op = false; |
| 2401 |
voice = false; |
|
| 2246 | 2402 |
halfop = false; |
| 2247 |
voice = false; |
|
| 2403 |
admin = false; |
|
| 2404 |
owner = false; |
|
| 2248 | 2405 |
switch (user[0]) {
|
| 2249 | 2406 |
case '@': |
| 2250 | 2407 |
op = true; |
| ... | ... | |
| 2266 | 2423 |
case '~': |
| 2267 | 2424 |
nickname = user.Substring(1); |
| 2268 | 2425 |
break; |
| 2426 |
case '*': |
|
| 2427 |
owner = true; |
|
| 2428 |
nickname = user.Substring(1); |
|
| 2429 |
break; |
|
| 2430 |
case '!': |
|
| 2431 |
admin = true; |
|
| 2432 |
nickname = user.Substring(1); |
|
| 2433 |
break; |
|
| 2269 | 2434 |
default: |
| 2270 | 2435 |
nickname = user; |
| 2271 | 2436 |
break; |
| ... | ... | |
| 2297 | 2462 |
Logger.ChannelSyncing.Debug("added op: "+nickname+" to: "+channelname);
|
| 2298 | 2463 |
#endif |
| 2299 | 2464 |
} |
| 2300 |
if (SupportNonRfc && halfop) {
|
|
| 2301 |
((NonRfcChannel)channel).UnsafeHalfops.Add(nickname, channeluser); |
|
| 2302 |
#if LOG4NET |
|
| 2303 |
Logger.ChannelSyncing.Debug("added halfop: "+nickname+" to: "+channelname);
|
|
| 2304 |
#endif |
|
| 2305 |
} |
|
| 2306 | 2465 |
if (voice) {
|
| 2307 | 2466 |
channel.UnsafeVoices.Add(nickname, channeluser); |
| 2308 | 2467 |
#if LOG4NET |
| 2309 | 2468 |
Logger.ChannelSyncing.Debug("added voice: "+nickname+" to: "+channelname);
|
| 2310 | 2469 |
#endif |
| 2311 | 2470 |
} |
| 2471 |
if (SupportNonRfc) {
|
|
| 2472 |
if (admin) {
|
|
| 2473 |
((NonRfcChannel)channel).UnsafeAdmins.Add(nickname, channeluser); |
|
| 2474 |
#if LOG4NET |
|
| 2475 |
Logger.ChannelSyncing.Debug("added admin: "+nickname+" to: "+channelname);
|
|
| 2476 |
#endif |
|
| 2477 |
} |
|
| 2478 |
if (halfop) {
|
|
| 2479 |
((NonRfcChannel)channel).UnsafeHalfops.Add(nickname, channeluser); |
|
| 2480 |
#if LOG4NET |
|
| 2481 |
Logger.ChannelSyncing.Debug("added halfop: "+nickname+" to: "+channelname);
|
|
| 2482 |
#endif |
|
| 2483 |
} |
|
| 2484 |
if (owner) {
|
|
| 2485 |
((NonRfcChannel)channel).UnsafeOwners.Add(nickname, channeluser); |
|
| 2486 |
#if LOG4NET |
|
| 2487 |
Logger.ChannelSyncing.Debug("added owner: "+nickname+" to: "+channelname);
|
|
| 2488 |
#endif |
|
| 2489 |
} |
|
| 2490 |
|
|
| 2491 |
} |
|
| 2312 | 2492 |
} |
| 2313 | 2493 |
|
| 2314 | 2494 |
channeluser.IsOp = op; |
| 2315 | 2495 |
channeluser.IsVoice = voice; |
| 2316 | 2496 |
if (SupportNonRfc) {
|
| 2497 |
((NonRfcChannelUser)channeluser).IsAdmin = admin; |
|
| 2317 | 2498 |
((NonRfcChannelUser)channeluser).IsHalfop = halfop; |
| 2499 |
((NonRfcChannelUser)channeluser).IsOwner = owner; |
|
| 2318 | 2500 |
} |
| 2319 | 2501 |
} |
| 2320 | 2502 |
} |
| IrcClient/NonRfcChannel.cs (working copy) | ||
|---|---|---|
| 8 | 8 |
* SmartIrc4net - the IRC library for .NET/C# <http://smartirc4net.sf.net> |
| 9 | 9 |
* |
| 10 | 10 |
* Copyright (c) 2003-2005 Mirco Bauer <[email protected]> <http://www.meebey.net> |
| 11 |
* Copyright (c) 2008-2009 Thomas Bruderer <[email protected]> |
|
| 11 | 12 |
* |
| 12 | 13 |
* Full LGPL License: <http://www.gnu.org/licenses/lgpl.txt> |
| 13 | 14 |
* |
| ... | ... | |
| 38 | 39 |
public class NonRfcChannel : Channel |
| 39 | 40 |
{
|
| 40 | 41 |
private Hashtable _Halfops = Hashtable.Synchronized(new Hashtable(new CaseInsensitiveHashCodeProvider(), new CaseInsensitiveComparer())); |
| 42 |
private Hashtable _Admins = Hashtable.Synchronized(new Hashtable(new CaseInsensitiveHashCodeProvider(), new CaseInsensitiveComparer())); |
|
| 43 |
private Hashtable _Owners = Hashtable.Synchronized(new Hashtable(new CaseInsensitiveHashCodeProvider(), new CaseInsensitiveComparer())); |
|
| 41 | 44 |
|
| 42 | 45 |
/// <summary> |
| 43 | 46 |
/// |
| ... | ... | |
| 73 | 76 |
return _Halfops; |
| 74 | 77 |
} |
| 75 | 78 |
} |
| 79 |
|
|
| 80 |
/// <summary> |
|
| 81 |
/// |
|
| 82 |
/// </summary> |
|
| 83 |
/// <value> </value> |
|
| 84 |
public Hashtable Admins {
|
|
| 85 |
get {
|
|
| 86 |
return (Hashtable) _Admins.Clone(); |
|
| 87 |
} |
|
| 88 |
} |
|
| 89 |
|
|
| 90 |
/// <summary> |
|
| 91 |
/// |
|
| 92 |
/// </summary> |
|
| 93 |
/// <value> </value> |
|
| 94 |
internal Hashtable UnsafeAdmins {
|
|
| 95 |
get {
|
|
| 96 |
return _Admins; |
|
| 97 |
} |
|
| 98 |
} |
|
| 99 |
|
|
| 100 |
/// <summary> |
|
| 101 |
/// |
|
| 102 |
/// </summary> |
|
| 103 |
/// <value> </value> |
|
| 104 |
public Hashtable Owners {
|
|
| 105 |
get {
|
|
| 106 |
return (Hashtable) _Owners.Clone(); |
|
| 107 |
} |
|
| 108 |
} |
|
| 109 |
|
|
| 110 |
/// <summary> |
|
| 111 |
/// |
|
| 112 |
/// </summary> |
|
| 113 |
/// <value> </value> |
|
| 114 |
internal Hashtable UnsafeOwners {
|
|
| 115 |
get {
|
|
| 116 |
return _Owners; |
|
| 117 |
} |
|
| 118 |
} |
|
| 76 | 119 |
} |
| 77 | 120 |
} |
| IrcClient/NonRfcChannelUser.cs (working copy) | ||
|---|---|---|
| 8 | 8 |
* SmartIrc4net - the IRC library for .NET/C# <http://smartirc4net.sf.net> |
| 9 | 9 |
* |
| 10 | 10 |
* Copyright (c) 2003-2005 Mirco Bauer <[email protected]> <http://www.meebey.net> |
| 11 |
* Copyright (c) 2008-2009 Thomas Bruderer <[email protected]> |
|
| 11 | 12 |
* |
| 12 | 13 |
* Full LGPL License: <http://www.gnu.org/licenses/lgpl.txt> |
| 13 | 14 |
* |
| ... | ... | |
| 34 | 35 |
/// <threadsafety static="true" instance="true" /> |
| 35 | 36 |
public class NonRfcChannelUser : ChannelUser |
| 36 | 37 |
{
|
| 37 |
private bool _IsHalfop; |
|
| 38 |
private bool _IsOwner; |
|
| 39 |
private bool _IsAdmin; |
|
| 38 |
private bool _IsHalfop; //+h - halfop (%) |
|
| 39 |
private bool _IsOwner; //+q - owner (*) |
|
| 40 |
private bool _IsAdmin; //+a - admin/protect (!) |
|
| 40 | 41 |
|
| 41 | 42 |
/// <summary> |
| 42 | 43 |
/// |
| ... | ... | |
| 58 | 59 |
/// |
| 59 | 60 |
/// </summary> |
| 60 | 61 |
/// <value> </value> |
| 62 |
public bool IsAdmin {
|
|
| 63 |
get {
|
|
| 64 |
return _IsAdmin; |
|
| 65 |
} |
|
| 66 |
set {
|
|
| 67 |
_IsAdmin = value; |
|
| 68 |
} |
|
| 69 |
} |
|
| 70 |
|
|
| 71 |
/// <summary> |
|
| 72 |
/// |
|
| 73 |
/// </summary> |
|
| 74 |
/// <value> </value> |
|
| 61 | 75 |
public bool IsHalfop {
|
| 62 | 76 |
get {
|
| 63 | 77 |
return _IsHalfop; |
| ... | ... | |
| 66 | 80 |
_IsHalfop = value; |
| 67 | 81 |
} |
| 68 | 82 |
} |
| 83 |
|
|
| 84 |
/// <summary> |
|
| 85 |
/// |
|
| 86 |
/// </summary> |
|
| 87 |
/// <value> </value> |
|
| 88 |
public bool IsOwner {
|
|
| 89 |
get {
|
|
| 90 |
return _IsOwner; |
|
| 91 |
} |
|
| 92 |
set {
|
|
| 93 |
_IsOwner = value; |
|
| 94 |
} |
|
| 95 |
} |
|
| 96 |
|
|
| 69 | 97 |
} |
| 70 | 98 |
} |