本文整理匯總了C#中wmib.Channel.Remove方法的典型用法代碼示例。如果您正苦於以下問題:C# Channel.Remove方法的具體用法?C# Channel.Remove怎麽用?C# Channel.Remove使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類wmib.Channel
的用法示例。
在下文中一共展示了Channel.Remove方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: PartChannel
/// <summary>
/// Part a channel
/// </summary>
/// <param name="channel">Channel object</param>
/// <param name="user">User</param>
/// <param name="host">Host</param>
/// <param name="message">Message</param>
/// <param name="origin"></param>
public static void PartChannel(Channel channel, string user, string host, string message, string origin = "NULL")
{
try
{
if (origin == "NULL")
{
origin = channel.Name;
}
if (channel.Name == Configuration.System.DebugChan && (message == Configuration.System.CommandPrefix + "part"
|| message == Configuration.System.CommandPrefix + "drop"))
{
channel.PrimaryInstance.irc.Queue.DeliverMessage("Cowardly refusing to part this channel, because I love it :3", channel);
return;
}
if (message == Configuration.System.CommandPrefix + "drop")
{
if (channel.SystemUsers.IsApproved(user, host, "admin"))
{
while (!Core.FinishedJoining)
{
Syslog.Log("Postponing request to part " + channel.Name + " because bot is still loading", true);
Thread.Sleep(2000);
}
channel.PrimaryInstance.irc.SendData("PART " + channel.Name + " :" + "dropped by " + user + " from " + origin);
Syslog.Log("Dropped " + channel.Name + " dropped by " + user + " from " + origin);
Thread.Sleep(100);
try
{
File.Delete(Variables.ConfigurationDirectory + Path.DirectorySeparatorChar + channel.Name + ".xml");
lock (ExtensionHandler.Extensions)
{
foreach (Module curr in ExtensionHandler.Extensions)
{
try
{
if (curr.IsWorking)
{
curr.Hook_ChannelDrop(channel);
}
}
catch (Exception fail)
{
Syslog.Log("MODULE: exception at Hook_ChannelDrop in " + curr.Name, true);
Core.HandleException(fail, curr.Name);
}
}
}
}
catch (Exception fail)
{
Core.HandleException(fail);
}
lock (Configuration.Channels)
{
channel.Remove();
Configuration.Channels.Remove(channel);
}
Configuration.Save();
return;
}
Core.irc.Queue.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), origin);
return;
}
if (message == Configuration.System.CommandPrefix + "part")
{
if (channel.SystemUsers.IsApproved(user, host, "admin"))
{
while (!Core.FinishedJoining)
{
Syslog.Log("Postponing request to part " + channel.Name + " because bot is still loading", true);
Thread.Sleep(2000);
}
channel.PrimaryInstance.irc.SendData("PART " + channel.Name + " :" + "removed by " + user + " from " + origin);
Syslog.Log("Removed " + channel.Name + " removed by " + user + " from " + origin);
Thread.Sleep(100);
lock (Configuration.Channels)
{
channel.Remove();
Configuration.Channels.Remove(channel);
}
Configuration.Save();
return;
}
Core.irc.Queue.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), origin);
}
}
catch (Exception fail)
{
Core.HandleException(fail);
}
}
示例2: PartChannel
/// <summary>
/// Part a channel
/// </summary>
/// <param name="channel">Channel object</param>
/// <param name="user">User</param>
/// <param name="host">Host</param>
/// <param name="message">Message</param>
/// <param name="origin">The channel from which this request was sent</param>
public static void PartChannel(Channel channel, string user, string host, string message, string origin = "NULL")
{
try
{
if (origin == "NULL")
origin = channel.Name;
if (channel.Name == Configuration.System.DebugChan && (message == Configuration.System.CommandPrefix + "part"
|| message == Configuration.System.CommandPrefix + "drop"))
{
IRC.DeliverMessage("Cowardly refusing to part this channel, because I love it :3", channel);
return;
}
if (message == Configuration.System.CommandPrefix + "drop")
{
if (channel.SystemUsers.IsApproved(user, host, "drop"))
{
while (!IRC.FinishedJoining)
{
Syslog.Log("Postponing request to part " + channel.Name + " because bot is still loading", true);
Thread.Sleep(2000);
}
channel.PrimaryInstance.Network.Transfer("PART " + channel.Name + " :" + "dropped by " + user + " from " + origin);
Syslog.Log("Dropped " + channel.Name + " dropped by " + user + " from " + origin);
Thread.Sleep(100);
try
{
File.Delete(Variables.ConfigurationDirectory + Path.DirectorySeparatorChar + channel.Name + ".xml");
}
catch (Exception fail)
{
Syslog.ErrorLog("Failed to delete configuration file of " + channel.Name);
Core.HandleException(fail);
}
foreach (Module module in ExtensionHandler.ExtensionList)
{
try
{
if (module.IsWorking)
module.Hook_ChannelDrop(channel);
}
catch (Exception fail)
{
Syslog.Log("MODULE: exception at Hook_ChannelDrop in " + module.Name, true);
Core.HandleException(fail, module.Name);
}
}
lock (Configuration.Channels)
{
channel.Remove();
}
Configuration.Save();
return;
}
IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), origin);
return;
}
if (message == Configuration.System.CommandPrefix + "part")
{
if (channel.SystemUsers.IsApproved(user, host, "part"))
{
while (!IRC.FinishedJoining)
{
Syslog.Log("Postponing request to part " + channel.Name + " because bot is still loading", true);
Thread.Sleep(2000);
}
channel.PrimaryInstance.Network.Transfer("PART " + channel.Name + " :" + "removed by " + user + " from " + origin);
Syslog.Log("Removed " + channel.Name + " removed by " + user + " from " + origin);
Thread.Sleep(100);
lock (Configuration.Channels)
{
channel.Remove();
if (origin != channel.Name)
IRC.DeliverMessage("Successfully parted channel: " + channel.Name, origin);
}
channel.SaveConfig();
Configuration.Save();
return;
}
IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), origin);
}
}
catch (Exception fail)
{
Core.HandleException(fail);
}
}