private static string GetSelfHost(Channel channel) { // try to get own hostname, if we can't find it, use default from configuration files string hostname = Configuration.IRC.Hostname; libirc.User self = channel.RetrieveUser(channel.PrimaryInstance.Nick); if (self != null) { hostname = self.Host; } return(hostname); }
public void GetOp(Channel chan) { // get our user libirc.User user = chan.RetrieveUser(chan.PrimaryInstance.Nick); if (user == null) { chan.PrimaryInstance.Network.Transfer("CS op " + chan.Name, libirc.Defs.Priority.High); return; } if (!user.IsOp) { chan.PrimaryInstance.Network.Transfer("CS op " + chan.Name, libirc.Defs.Priority.High); } }
public override void Hook_PRIV(Channel channel, libirc.UserInfo invoker, string message) { if (message.StartsWith(Configuration.System.CommandPrefix + "kick ")) { if (channel.SystemUsers.IsApproved(invoker, "admin")) { if (GetConfig(channel, "OP.Enabled", false)) { string nick = message.Substring(6); string reason = "Removed from the channel"; if (nick.Contains(" ")) { reason = nick.Substring(nick.IndexOf(" ") + 1); nick = nick.Substring(0, nick.IndexOf(" ")); } libirc.User user = getUser(nick, channel); if (user == null) { IRC.DeliverMessage(messages.Localize("OpE5", channel.Language), channel, libirc.Defs.Priority.High); return; } // op self GetOp(channel); channel.PrimaryInstance.Network.Transfer("KICK " + channel.Name + " " + user.Nick + " :" + reason, libirc.Defs.Priority.High); if (!GetConfig(channel, "OP.Permanent", false)) { channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " -o " + channel.PrimaryInstance.Nick); } return; } return; } if (!channel.SuppressWarnings) { IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel.Name); } return; } if (message.StartsWith(Configuration.System.CommandPrefix + "kb ")) { if (channel.SystemUsers.IsApproved(invoker, "admin")) { if (GetConfig(channel, "OP.Enabled", false)) { string nick = message.Substring(4); string reason = "Removed from the channel"; if (nick.Contains(" ")) { reason = nick.Substring(nick.IndexOf(" ") + 1); nick = nick.Substring(0, nick.IndexOf(" ")); } libirc.User user = getUser(nick, channel); if (user == null) { IRC.DeliverMessage(messages.Localize("OpE5", channel.Language), channel); return; } // op self GetOp(channel); if (string.IsNullOrEmpty(user.Host)) { IRC.DeliverMessage(messages.Localize("OpE6", channel.Language), channel, libirc.Defs.Priority.High); } else { channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " +b *!*@" + user.Host, libirc.Defs.Priority.High); } channel.PrimaryInstance.Network.Transfer("KICK " + channel.Name + " " + user.Nick + " :" + reason, libirc.Defs.Priority.High); if (!GetConfig(channel, "OP.Permanent", false)) { channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " -o " + channel.PrimaryInstance.Nick, libirc.Defs.Priority.Low); } return; } return; } if (!channel.SuppressWarnings) { IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel.Name, libirc.Defs.Priority.Low); } return; } if (message.StartsWith(Configuration.System.CommandPrefix + "unkb ")) { if (channel.SystemUsers.IsApproved(invoker, "admin")) { if (GetConfig(channel, "OP.Enabled", false)) { string nick = message.Substring(6); GetOp(channel); channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " -b *!*@" + nick, libirc.Defs.Priority.High); if (!GetConfig(channel, "OP.Permanent", false)) { channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " -o " + channel.PrimaryInstance.Nick, libirc.Defs.Priority.Low); } return; } return; } if (!channel.SuppressWarnings) { IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel.Name, libirc.Defs.Priority.Low); } return; } if (message.StartsWith(Configuration.System.CommandPrefix + "unq ")) { if (channel.SystemUsers.IsApproved(invoker, "admin")) { if (GetConfig(channel, "OP.Enabled", false)) { string nick = message.Substring(5); if (nick.Contains(" ")) { nick = nick.Substring(0, nick.IndexOf(" ")); } libirc.User user = getUser(nick, channel); if (user == null) { IRC.DeliverMessage(messages.Localize("OpE5", channel.Language), channel, libirc.Defs.Priority.High); return; } if (string.IsNullOrEmpty(user.Host)) { IRC.DeliverMessage(messages.Localize("OpE6", channel.Language), channel, libirc.Defs.Priority.High); return; } // op self GetOp(channel); channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " -q *!*@" + user.Host, libirc.Defs.Priority.High); if (!GetConfig(channel, "OP.Permanent", false)) { channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " -o " + channel.PrimaryInstance.Nick); } return; } return; } if (!channel.SuppressWarnings) { IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel.Name, libirc.Defs.Priority.Low); } return; } if (message.StartsWith(Configuration.System.CommandPrefix + "q ")) { if (channel.SystemUsers.IsApproved(invoker, "admin")) { if (GetConfig(channel, "OP.Enabled", false)) { string nick = message.Substring(3); if (nick.Contains(" ")) { nick = nick.Substring(0, nick.IndexOf(" ")); } libirc.User user = getUser(nick, channel); if (user == null) { IRC.DeliverMessage(messages.Localize("OpE5", channel.Language), channel, libirc.Defs.Priority.High); return; } if (string.IsNullOrEmpty(user.Host)) { IRC.DeliverMessage(messages.Localize("OpE6", channel.Language), channel, libirc.Defs.Priority.High); return; } GetOp(channel); channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " +q *!*@" + user.Host, libirc.Defs.Priority.High); if (!GetConfig(channel, "OP.Permanent", false)) { channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " -o " + channel.PrimaryInstance.Nick, libirc.Defs.Priority.Low); } return; } return; } if (!channel.SuppressWarnings) { IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel.Name, libirc.Defs.Priority.Low); } return; } if (message.StartsWith(Configuration.System.CommandPrefix + "jb ")) { if (channel.SystemUsers.IsApproved(invoker, "admin")) { if (GetConfig(channel, "OP.Enabled", false)) { string nick = message.Substring(4); if (nick.Contains(" ")) { nick = nick.Substring(0, nick.IndexOf(" ")); } libirc.User user = getUser(nick, channel); if (user != null) { nick = user.Nick; } // op self GetOp(channel); channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " +b " + nick + "!*@*$##fix_your_connection", libirc.Defs.Priority.High); if (!GetConfig(channel, "OP.Permanent", false)) { channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " -o " + channel.PrimaryInstance.Nick, libirc.Defs.Priority.Low); } return; } return; } if (!channel.SuppressWarnings) { IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel.Name, libirc.Defs.Priority.Low); } return; } if (message.StartsWith(Configuration.System.CommandPrefix + "unjb ")) { if (channel.SystemUsers.IsApproved(invoker, "admin")) { if (GetConfig(channel, "OP.Enabled", false)) { string nick = message.Substring(6); if (nick.Contains(" ")) { nick = nick.Substring(0, nick.IndexOf(" ")); } libirc.User user = getUser(nick, channel); if (user != null) { nick = user.Nick; } // op self GetOp(channel); channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " -b " + nick + "!*@*$##fix_your_connection", libirc.Defs.Priority.High); if (!GetConfig(channel, "OP.Permanent", false)) { channel.PrimaryInstance.Network.Transfer("MODE " + channel.Name + " -o " + channel.PrimaryInstance.Nick, libirc.Defs.Priority.Low); } return; } return; } if (!channel.SuppressWarnings) { IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel.Name, libirc.Defs.Priority.Low); } } }