netstandard and revert target type new
This commit is contained in:
parent
5c2b0faf52
commit
53add8700f
|
@ -1,7 +1,5 @@
|
||||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=3892ce1c_002Daad5_002D4870_002D98ea_002D199acb6b67c3/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from Solution #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
|
||||||
<Solution />
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=64875d9c_002Daf58_002D4d04_002D996b_002Ddf4baee8e592/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
</SessionState></s:String>
|
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=64875d9c_002Daf58_002D4d04_002D996b_002Ddf4baee8e592/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
|
||||||
<Solution />
|
<Solution />
|
||||||
</SessionState></s:String></wpf:ResourceDictionary>
|
</SessionState></s:String></wpf:ResourceDictionary>
|
|
@ -12,7 +12,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
internal CapabilityPool()
|
internal CapabilityPool()
|
||||||
{
|
{
|
||||||
Capabilities = new();
|
Capabilities = new List<IrcCapability>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<IrcCapability> Capabilities { get; }
|
private List<IrcCapability> Capabilities { get; }
|
||||||
|
@ -67,7 +67,7 @@ namespace ChatSharp
|
||||||
if (Capabilities.Any(cap => cap.Name == name))
|
if (Capabilities.Any(cap => cap.Name == name))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Capabilities.Add(new(name));
|
Capabilities.Add(new IrcCapability(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void AddRange(IEnumerable<string> range)
|
internal void AddRange(IEnumerable<string> range)
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
internal ChannelCollection()
|
internal ChannelCollection()
|
||||||
{
|
{
|
||||||
Channels = new();
|
Channels = new List<IrcChannel>();
|
||||||
}
|
}
|
||||||
|
|
||||||
internal ChannelCollection(IrcClient client) : this()
|
internal ChannelCollection(IrcClient client) : this()
|
||||||
|
|
|
@ -1,17 +1,14 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||||
<RepositoryUrl>https://tildegit.org/ben/chatsharp</RepositoryUrl>
|
<RepositoryUrl>https://tildegit.org/ben/chatsharp</RepositoryUrl>
|
||||||
<PackageReadmeFile>README.md</PackageReadmeFile>
|
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||||
<PackageProjectUrl>https://tildegit.org/ben/chatsharp</PackageProjectUrl>
|
<PackageProjectUrl>https://tildegit.org/ben/chatsharp</PackageProjectUrl>
|
||||||
<Description>c# irc library</Description>
|
<Description>c# irc library</Description>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>netstandard2.1</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="..\README.md">
|
<None Include="..\README.md" Pack="true" PackagePath="\"/>
|
||||||
<Pack>True</Pack>
|
|
||||||
<PackagePath></PackagePath>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -37,11 +37,11 @@ namespace ChatSharp.Events
|
||||||
{
|
{
|
||||||
const string nickCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
const string nickCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||||
|
|
||||||
_random ??= new();
|
_random ??= new Random();
|
||||||
var nick = new char[8];
|
var nick = new char[8];
|
||||||
for (var i = 0; i < nick.Length; i++)
|
for (var i = 0; i < nick.Length; i++)
|
||||||
nick[i] = nickCharacters[_random.Next(nickCharacters.Length)];
|
nick[i] = nickCharacters[_random.Next(nickCharacters.Length)];
|
||||||
return new(nick);
|
return new string(nick);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -12,7 +12,7 @@ namespace ChatSharp.Events
|
||||||
internal PrivateMessageEventArgs(IrcClient client, IrcMessage ircMessage, ServerInfo serverInfo)
|
internal PrivateMessageEventArgs(IrcClient client, IrcMessage ircMessage, ServerInfo serverInfo)
|
||||||
{
|
{
|
||||||
IrcMessage = ircMessage;
|
IrcMessage = ircMessage;
|
||||||
PrivateMessage = new(client, IrcMessage, serverInfo);
|
PrivateMessage = new PrivateMessage(client, IrcMessage, serverInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -2,6 +2,7 @@ using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using ChatSharp.Events;
|
||||||
|
|
||||||
namespace ChatSharp.Handlers
|
namespace ChatSharp.Handlers
|
||||||
{
|
{
|
||||||
|
@ -25,7 +26,7 @@ namespace ChatSharp.Handlers
|
||||||
user.Account = whoQuery[0].User.Account;
|
user.Account = whoQuery[0].User.Account;
|
||||||
});
|
});
|
||||||
|
|
||||||
client.OnUserJoinedChannel(new(channel, user));
|
client.OnUserJoinedChannel(new ChannelUserEventArgs(channel, user));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +35,7 @@ namespace ChatSharp.Handlers
|
||||||
var channel = client.Channels.GetOrAdd(message.Parameters[1]);
|
var channel = client.Channels.GetOrAdd(message.Parameters[1]);
|
||||||
var old = channel._Topic;
|
var old = channel._Topic;
|
||||||
channel._Topic = message.Parameters[2];
|
channel._Topic = message.Parameters[2];
|
||||||
client.OnChannelTopicReceived(new(channel, old, channel._Topic));
|
client.OnChannelTopicReceived(new ChannelTopicEventArgs(channel, old, channel._Topic));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HandleGetEmptyTopic(IrcClient client, IrcMessage message)
|
public static void HandleGetEmptyTopic(IrcClient client, IrcMessage message)
|
||||||
|
@ -42,7 +43,7 @@ namespace ChatSharp.Handlers
|
||||||
var channel = client.Channels.GetOrAdd(message.Parameters[1]);
|
var channel = client.Channels.GetOrAdd(message.Parameters[1]);
|
||||||
var old = channel._Topic;
|
var old = channel._Topic;
|
||||||
channel._Topic = message.Parameters[2];
|
channel._Topic = message.Parameters[2];
|
||||||
client.OnChannelTopicReceived(new(channel, old, channel._Topic));
|
client.OnChannelTopicReceived(new ChannelTopicEventArgs(channel, old, channel._Topic));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HandlePart(IrcClient client, IrcMessage message)
|
public static void HandlePart(IrcClient client, IrcMessage message)
|
||||||
|
@ -58,7 +59,7 @@ namespace ChatSharp.Handlers
|
||||||
if (user.ChannelModes.ContainsKey(channel))
|
if (user.ChannelModes.ContainsKey(channel))
|
||||||
user.ChannelModes.Remove(channel);
|
user.ChannelModes.Remove(channel);
|
||||||
|
|
||||||
client.OnUserPartedChannel(new(channel, user));
|
client.OnUserPartedChannel(new ChannelUserEventArgs(channel, user));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HandleUserListPart(IrcClient client, IrcMessage message)
|
public static void HandleUserListPart(IrcClient client, IrcMessage message)
|
||||||
|
@ -127,7 +128,7 @@ namespace ChatSharp.Handlers
|
||||||
public static void HandleUserListEnd(IrcClient client, IrcMessage message)
|
public static void HandleUserListEnd(IrcClient client, IrcMessage message)
|
||||||
{
|
{
|
||||||
var channel = client.Channels[message.Parameters[1]];
|
var channel = client.Channels[message.Parameters[1]];
|
||||||
client.OnChannelListReceived(new(channel));
|
client.OnChannelListReceived(new ChannelEventArgs(channel));
|
||||||
if (client.Settings.ModeOnJoin)
|
if (client.Settings.ModeOnJoin)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -164,7 +165,7 @@ namespace ChatSharp.Handlers
|
||||||
var kicked = channel.Users[message.Parameters[1]];
|
var kicked = channel.Users[message.Parameters[1]];
|
||||||
if (kicked.Channels.Contains(channel))
|
if (kicked.Channels.Contains(channel))
|
||||||
kicked.Channels.Remove(channel);
|
kicked.Channels.Remove(channel);
|
||||||
client.OnUserKicked(new(channel, new(message.Prefix),
|
client.OnUserKicked(new KickEventArgs(channel, new IrcUser(message.Prefix),
|
||||||
kicked, message.Parameters[2]));
|
kicked, message.Parameters[2]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
using ChatSharp.Events;
|
||||||
|
|
||||||
namespace ChatSharp.Handlers
|
namespace ChatSharp.Handlers
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -10,7 +12,7 @@ namespace ChatSharp.Handlers
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static void HandleError(IrcClient client, IrcMessage message)
|
public static void HandleError(IrcClient client, IrcMessage message)
|
||||||
{
|
{
|
||||||
client.OnErrorReply(new(message));
|
client.OnErrorReply(new ErrorReplyEventArgs(message));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -8,7 +8,7 @@ namespace ChatSharp.Handlers
|
||||||
var parameters = parameterString[parameterString.IndexOf(' ')..].Split(' ');
|
var parameters = parameterString[parameterString.IndexOf(' ')..].Split(' ');
|
||||||
var request = client.RequestManager.PeekOperation("GETMODE b " + parameters[1]);
|
var request = client.RequestManager.PeekOperation("GETMODE b " + parameters[1]);
|
||||||
var list = (MaskCollection)request.State;
|
var list = (MaskCollection)request.State;
|
||||||
list.Add(new(parameters[2], client.Users.GetOrAdd(parameters[3]),
|
list.Add(new Mask(parameters[2], client.Users.GetOrAdd(parameters[3]),
|
||||||
IrcClient.DateTimeFromIrcTime(int.Parse(parameters[4]))));
|
IrcClient.DateTimeFromIrcTime(int.Parse(parameters[4]))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ namespace ChatSharp.Handlers
|
||||||
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
|
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
|
||||||
var request = client.RequestManager.PeekOperation("GETMODE e " + parameters[1]);
|
var request = client.RequestManager.PeekOperation("GETMODE e " + parameters[1]);
|
||||||
var list = (MaskCollection)request.State;
|
var list = (MaskCollection)request.State;
|
||||||
list.Add(new(parameters[2], client.Users.GetOrAdd(parameters[3]),
|
list.Add(new Mask(parameters[2], client.Users.GetOrAdd(parameters[3]),
|
||||||
IrcClient.DateTimeFromIrcTime(int.Parse(parameters[4]))));
|
IrcClient.DateTimeFromIrcTime(int.Parse(parameters[4]))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ namespace ChatSharp.Handlers
|
||||||
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
|
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
|
||||||
var request = client.RequestManager.PeekOperation("GETMODE I " + parameters[1]);
|
var request = client.RequestManager.PeekOperation("GETMODE I " + parameters[1]);
|
||||||
var list = (MaskCollection)request.State;
|
var list = (MaskCollection)request.State;
|
||||||
list.Add(new(parameters[2], client.Users.GetOrAdd(parameters[3]),
|
list.Add(new Mask(parameters[2], client.Users.GetOrAdd(parameters[3]),
|
||||||
IrcClient.DateTimeFromIrcTime(int.Parse(parameters[4]))));
|
IrcClient.DateTimeFromIrcTime(int.Parse(parameters[4]))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ namespace ChatSharp.Handlers
|
||||||
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
|
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
|
||||||
var request = client.RequestManager.PeekOperation("GETMODE q " + parameters[1]);
|
var request = client.RequestManager.PeekOperation("GETMODE q " + parameters[1]);
|
||||||
var list = (MaskCollection)request.State;
|
var list = (MaskCollection)request.State;
|
||||||
list.Add(new(parameters[2], client.Users.GetOrAdd(parameters[3]),
|
list.Add(new Mask(parameters[2], client.Users.GetOrAdd(parameters[3]),
|
||||||
IrcClient.DateTimeFromIrcTime(int.Parse(parameters[4]))));
|
IrcClient.DateTimeFromIrcTime(int.Parse(parameters[4]))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
|
using ChatSharp.Events;
|
||||||
|
|
||||||
namespace ChatSharp.Handlers
|
namespace ChatSharp.Handlers
|
||||||
{
|
{
|
||||||
|
@ -17,21 +18,21 @@ namespace ChatSharp.Handlers
|
||||||
throw new IrcProtocolException("372 MOTD message is incorrectly formatted.");
|
throw new IrcProtocolException("372 MOTD message is incorrectly formatted.");
|
||||||
var part = message.Parameters[1][2..];
|
var part = message.Parameters[1][2..];
|
||||||
MOTD += part + Environment.NewLine;
|
MOTD += part + Environment.NewLine;
|
||||||
client.OnMOTDPartReceived(new(part));
|
client.OnMOTDPartReceived(new ServerMOTDEventArgs(part));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HandleEndOfMOTD(IrcClient client, IrcMessage message)
|
public static void HandleEndOfMOTD(IrcClient client, IrcMessage message)
|
||||||
{
|
{
|
||||||
client.OnMOTDReceived(new(MOTD));
|
client.OnMOTDReceived(new ServerMOTDEventArgs(MOTD));
|
||||||
client.OnConnectionComplete(new());
|
client.OnConnectionComplete(EventArgs.Empty);
|
||||||
// Verify our identity
|
// Verify our identity
|
||||||
VerifyOurIdentity(client);
|
VerifyOurIdentity(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HandleMOTDNotFound(IrcClient client, IrcMessage message)
|
public static void HandleMOTDNotFound(IrcClient client, IrcMessage message)
|
||||||
{
|
{
|
||||||
client.OnMOTDReceived(new(MOTD));
|
client.OnMOTDReceived(new ServerMOTDEventArgs(MOTD));
|
||||||
client.OnConnectionComplete(new());
|
client.OnConnectionComplete(EventArgs.Empty);
|
||||||
|
|
||||||
VerifyOurIdentity(client);
|
VerifyOurIdentity(client);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using ChatSharp.Events;
|
using ChatSharp.Events;
|
||||||
|
|
||||||
|
@ -95,7 +96,7 @@ namespace ChatSharp.Handlers
|
||||||
var oldNick = user.Nick;
|
var oldNick = user.Nick;
|
||||||
user.Nick = message.Parameters[0];
|
user.Nick = message.Parameters[0];
|
||||||
|
|
||||||
client.OnNickChanged(new()
|
client.OnNickChanged(new NickChangedEventArgs
|
||||||
{
|
{
|
||||||
User = user,
|
User = user,
|
||||||
OldNick = oldNick,
|
OldNick = oldNick,
|
||||||
|
@ -109,7 +110,7 @@ namespace ChatSharp.Handlers
|
||||||
if (client.User.Nick != user.Nick)
|
if (client.User.Nick != user.Nick)
|
||||||
{
|
{
|
||||||
client.Users.Remove(user);
|
client.Users.Remove(user);
|
||||||
client.OnUserQuit(new(user));
|
client.OnUserQuit(new UserEventArgs(user));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,7 +122,7 @@ namespace ChatSharp.Handlers
|
||||||
|
|
||||||
public static void HandleNotice(IrcClient client, IrcMessage message)
|
public static void HandleNotice(IrcClient client, IrcMessage message)
|
||||||
{
|
{
|
||||||
client.OnNoticeReceived(new(message));
|
client.OnNoticeReceived(new IrcNoticeEventArgs(message));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HandlePrivmsg(IrcClient client, IrcMessage message)
|
public static void HandlePrivmsg(IrcClient client, IrcMessage message)
|
||||||
|
@ -186,22 +187,22 @@ namespace ChatSharp.Handlers
|
||||||
// TODO: Support the ones here that aren't done properly
|
// TODO: Support the ones here that aren't done properly
|
||||||
if (client.ServerInfo.SupportedChannelModes.ParameterizedSettings.Contains(c))
|
if (client.ServerInfo.SupportedChannelModes.ParameterizedSettings.Contains(c))
|
||||||
{
|
{
|
||||||
client.OnModeChanged(new(channel.Name, new(message.Prefix),
|
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
|
||||||
(add ? "+" : "-") + c + " " + message.Parameters[i++]));
|
(add ? "+" : "-") + c + " " + message.Parameters[i++]));
|
||||||
}
|
}
|
||||||
else if (client.ServerInfo.SupportedChannelModes.ChannelLists.Contains(c))
|
else if (client.ServerInfo.SupportedChannelModes.ChannelLists.Contains(c))
|
||||||
{
|
{
|
||||||
client.OnModeChanged(new(channel.Name, new(message.Prefix),
|
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
|
||||||
(add ? "+" : "-") + c + " " + message.Parameters[i++]));
|
(add ? "+" : "-") + c + " " + message.Parameters[i++]));
|
||||||
}
|
}
|
||||||
else if (client.ServerInfo.SupportedChannelModes.ChannelUserModes.Contains(c))
|
else if (client.ServerInfo.SupportedChannelModes.ChannelUserModes.Contains(c))
|
||||||
{
|
{
|
||||||
if (!channel.UsersByMode.ContainsKey(c))
|
if (!channel.UsersByMode.ContainsKey(c))
|
||||||
channel.UsersByMode.Add(c,
|
channel.UsersByMode.Add(c,
|
||||||
new(channel.Users.Where(u =>
|
new UserPoolView(channel.Users.Where(u =>
|
||||||
{
|
{
|
||||||
if (!u.ChannelModes.ContainsKey(channel))
|
if (!u.ChannelModes.ContainsKey(channel))
|
||||||
u.ChannelModes.Add(channel, new());
|
u.ChannelModes.Add(channel, new List<char?>());
|
||||||
return u.ChannelModes[channel].Contains(c);
|
return u.ChannelModes[channel].Contains(c);
|
||||||
})));
|
})));
|
||||||
var user = new IrcUser(message.Parameters[i]);
|
var user = new IrcUser(message.Parameters[i]);
|
||||||
|
@ -217,7 +218,7 @@ namespace ChatSharp.Handlers
|
||||||
user.ChannelModes[channel] = null;
|
user.ChannelModes[channel] = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
client.OnModeChanged(new(channel.Name, new(message.Prefix),
|
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
|
||||||
(add ? "+" : "-") + c + " " + message.Parameters[i++]));
|
(add ? "+" : "-") + c + " " + message.Parameters[i++]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -233,7 +234,7 @@ namespace ChatSharp.Handlers
|
||||||
channel.Mode = channel.Mode.Replace(c.ToString(), string.Empty);
|
channel.Mode = channel.Mode.Replace(c.ToString(), string.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
client.OnModeChanged(new(channel.Name, new(message.Prefix),
|
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
|
||||||
(add ? "+" : "-") + c));
|
(add ? "+" : "-") + c));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
using ChatSharp.Events;
|
||||||
|
|
||||||
namespace ChatSharp.Handlers
|
namespace ChatSharp.Handlers
|
||||||
{
|
{
|
||||||
internal static class ServerHandlers
|
internal static class ServerHandlers
|
||||||
|
@ -5,7 +7,7 @@ namespace ChatSharp.Handlers
|
||||||
public static void HandleISupport(IrcClient client, IrcMessage message)
|
public static void HandleISupport(IrcClient client, IrcMessage message)
|
||||||
{
|
{
|
||||||
if (client.ServerInfo == null)
|
if (client.ServerInfo == null)
|
||||||
client.ServerInfo = new();
|
client.ServerInfo = new ServerInfo();
|
||||||
foreach (var item in message.Parameters)
|
foreach (var item in message.Parameters)
|
||||||
{
|
{
|
||||||
string key, value;
|
string key, value;
|
||||||
|
@ -57,7 +59,7 @@ namespace ChatSharp.Handlers
|
||||||
var limitedModes = limits[i].Remove(limits[i].IndexOf(':'));
|
var limitedModes = limits[i].Remove(limits[i].IndexOf(':'));
|
||||||
var limit = int.Parse(limits[i][(limits[i].IndexOf(':') + 1)..]);
|
var limit = int.Parse(limits[i][(limits[i].IndexOf(':') + 1)..]);
|
||||||
foreach (var mode in limitedModes)
|
foreach (var mode in limitedModes)
|
||||||
client.ServerInfo.ModeListLimits[i] = new(mode, limit);
|
client.ServerInfo.ModeListLimits[i] = new ServerInfo.ModeListLimit(mode, limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -92,7 +94,7 @@ namespace ChatSharp.Handlers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
client.OnServerInfoReceived(new(client.ServerInfo));
|
client.OnServerInfoReceived(new SupportsEventArgs(client.ServerInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HandleMyInfo(IrcClient client, IrcMessage message)
|
public static void HandleMyInfo(IrcClient client, IrcMessage message)
|
||||||
|
@ -100,7 +102,7 @@ namespace ChatSharp.Handlers
|
||||||
// 004 sendak.freenode.net ircd-seven-1.1.3 DOQRSZaghilopswz CFILMPQbcefgijklmnopqrstvz bkloveqjfI
|
// 004 sendak.freenode.net ircd-seven-1.1.3 DOQRSZaghilopswz CFILMPQbcefgijklmnopqrstvz bkloveqjfI
|
||||||
// TODO: Figure out how to properly handle this message
|
// TODO: Figure out how to properly handle this message
|
||||||
if (client.ServerInfo == null)
|
if (client.ServerInfo == null)
|
||||||
client.ServerInfo = new();
|
client.ServerInfo = new ServerInfo();
|
||||||
if (message.Parameters.Length >= 5)
|
if (message.Parameters.Length >= 5)
|
||||||
foreach (var c in message.Parameters[4])
|
foreach (var c in message.Parameters[4])
|
||||||
if (!client.ServerInfo.SupportedChannelModes.ChannelUserModes.Contains(c))
|
if (!client.ServerInfo.SupportedChannelModes.ChannelUserModes.Contains(c))
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using ChatSharp.Events;
|
||||||
|
|
||||||
namespace ChatSharp.Handlers
|
namespace ChatSharp.Handlers
|
||||||
{
|
{
|
||||||
|
@ -68,7 +69,7 @@ namespace ChatSharp.Handlers
|
||||||
if (!client.Users.Contains(whois.User.Nick))
|
if (!client.Users.Contains(whois.User.Nick))
|
||||||
client.Users.Add(whois.User);
|
client.Users.Add(whois.User);
|
||||||
request.Callback?.Invoke(request);
|
request.Callback?.Invoke(request);
|
||||||
client.OnWhoIsReceived(new(whois));
|
client.OnWhoIsReceived(new WhoIsReceivedEventArgs(whois));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HandleWho(IrcClient client, IrcMessage message)
|
public static void HandleWho(IrcClient client, IrcMessage message)
|
||||||
|
@ -81,7 +82,7 @@ namespace ChatSharp.Handlers
|
||||||
var who = new ExtendedWho
|
var who = new ExtendedWho
|
||||||
{
|
{
|
||||||
Channel = message.Parameters[1],
|
Channel = message.Parameters[1],
|
||||||
User = new()
|
User = new IrcUser
|
||||||
{
|
{
|
||||||
User = message.Parameters[2],
|
User = message.Parameters[2],
|
||||||
Nick = message.Parameters[5]
|
Nick = message.Parameters[5]
|
||||||
|
@ -236,7 +237,7 @@ namespace ChatSharp.Handlers
|
||||||
client.Users.Add(whox.User);
|
client.Users.Add(whox.User);
|
||||||
|
|
||||||
request.Callback?.Invoke(request);
|
request.Callback?.Invoke(request);
|
||||||
client.OnWhoxReceived(new(whoxList.ToArray()));
|
client.OnWhoxReceived(new WhoxReceivedEventArgs(whoxList.ToArray()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -250,7 +251,7 @@ namespace ChatSharp.Handlers
|
||||||
client.Users.Add(who.User);
|
client.Users.Add(who.User);
|
||||||
|
|
||||||
request.Callback?.Invoke(request);
|
request.Callback?.Invoke(request);
|
||||||
client.OnWhoxReceived(new(whoList.ToArray()));
|
client.OnWhoxReceived(new WhoxReceivedEventArgs(whoList.ToArray()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
Client = client;
|
Client = client;
|
||||||
Name = name;
|
Name = name;
|
||||||
Users = new(client.Users.Where(u => u.Channels.Contains(this)));
|
Users = new UserPoolView(client.Users.Where(u => u.Channels.Contains(this)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private IrcClient Client { get; }
|
private IrcClient Client { get; }
|
||||||
|
|
|
@ -163,7 +163,7 @@ namespace ChatSharp
|
||||||
public void WhoIs(string nick, Action<WhoIs> callback)
|
public void WhoIs(string nick, Action<WhoIs> callback)
|
||||||
{
|
{
|
||||||
var whois = new WhoIs();
|
var whois = new WhoIs();
|
||||||
RequestManager.QueueOperation("WHOIS " + nick, new(whois, ro => { callback?.Invoke((WhoIs)ro.State); }));
|
RequestManager.QueueOperation("WHOIS " + nick, new RequestOperation(whois, ro => { callback?.Invoke((WhoIs)ro.State); }));
|
||||||
SendRawMessage("WHOIS {0}", nick);
|
SendRawMessage("WHOIS {0}", nick);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ namespace ChatSharp
|
||||||
var queryKey = string.Format("WHO {0} {1} {2:D}", target, queryType, _fields);
|
var queryKey = string.Format("WHO {0} {1} {2:D}", target, queryType, _fields);
|
||||||
|
|
||||||
RequestManager.QueueOperation(queryKey,
|
RequestManager.QueueOperation(queryKey,
|
||||||
new(whox, ro => { callback?.Invoke((List<ExtendedWho>)ro.State); }));
|
new RequestOperation(whox, ro => { callback?.Invoke((List<ExtendedWho>)ro.State); }));
|
||||||
SendRawMessage(whoQuery);
|
SendRawMessage(whoQuery);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -200,7 +200,7 @@ namespace ChatSharp
|
||||||
var whoQuery = string.Format("WHO {0}", target);
|
var whoQuery = string.Format("WHO {0}", target);
|
||||||
|
|
||||||
RequestManager.QueueOperation(whoQuery,
|
RequestManager.QueueOperation(whoQuery,
|
||||||
new(whox, ro => { callback?.Invoke((List<ExtendedWho>)ro.State); }));
|
new RequestOperation(whox, ro => { callback?.Invoke((List<ExtendedWho>)ro.State); }));
|
||||||
SendRawMessage(whoQuery);
|
SendRawMessage(whoQuery);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -218,7 +218,7 @@ namespace ChatSharp
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void GetMode(string channel, Action<IrcChannel> callback)
|
public void GetMode(string channel, Action<IrcChannel> callback)
|
||||||
{
|
{
|
||||||
RequestManager.QueueOperation("MODE " + channel, new(channel, ro =>
|
RequestManager.QueueOperation("MODE " + channel, new RequestOperation(channel, ro =>
|
||||||
{
|
{
|
||||||
var c = Channels[(string)ro.State];
|
var c = Channels[(string)ro.State];
|
||||||
callback?.Invoke(c);
|
callback?.Invoke(c);
|
||||||
|
@ -240,7 +240,7 @@ namespace ChatSharp
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void GetModeList(string channel, char mode, Action<MaskCollection> callback)
|
public void GetModeList(string channel, char mode, Action<MaskCollection> callback)
|
||||||
{
|
{
|
||||||
RequestManager.QueueOperation("GETMODE " + mode + " " + channel, new(new MaskCollection(), ro =>
|
RequestManager.QueueOperation("GETMODE " + mode + " " + channel, new RequestOperation(new MaskCollection(), ro =>
|
||||||
{
|
{
|
||||||
var c = (MaskCollection)ro.State;
|
var c = (MaskCollection)ro.State;
|
||||||
callback?.Invoke(c);
|
callback?.Invoke(c);
|
||||||
|
|
|
@ -35,18 +35,18 @@ namespace ChatSharp
|
||||||
User = user ?? throw new ArgumentNullException(nameof(user));
|
User = user ?? throw new ArgumentNullException(nameof(user));
|
||||||
ServerAddress = serverAddress ?? throw new ArgumentNullException(nameof(serverAddress));
|
ServerAddress = serverAddress ?? throw new ArgumentNullException(nameof(serverAddress));
|
||||||
Encoding = Encoding.UTF8;
|
Encoding = Encoding.UTF8;
|
||||||
Settings = new();
|
Settings = new ClientSettings();
|
||||||
Handlers = new();
|
Handlers = new Dictionary<string, MessageHandler>();
|
||||||
MessageHandlers.RegisterDefaultHandlers(this);
|
MessageHandlers.RegisterDefaultHandlers(this);
|
||||||
RequestManager = new();
|
RequestManager = new RequestManager();
|
||||||
UseSSL = useSSL;
|
UseSSL = useSSL;
|
||||||
WriteQueue = new();
|
WriteQueue = new ConcurrentQueue<string>();
|
||||||
ServerInfo = new();
|
ServerInfo = new ServerInfo();
|
||||||
PrivmsgPrefix = "";
|
PrivmsgPrefix = "";
|
||||||
Channels = User.Channels = new(this);
|
Channels = User.Channels = new ChannelCollection(this);
|
||||||
// Add self to user pool
|
// Add self to user pool
|
||||||
Users = new() { User };
|
Users = new UserPool { User };
|
||||||
Capabilities = new();
|
Capabilities = new CapabilityPool();
|
||||||
|
|
||||||
// List of supported capabilities
|
// List of supported capabilities
|
||||||
Capabilities.AddRange(new[]
|
Capabilities.AddRange(new[]
|
||||||
|
@ -58,7 +58,7 @@ namespace ChatSharp
|
||||||
IsNegotiatingCapabilities = false;
|
IsNegotiatingCapabilities = false;
|
||||||
IsAuthenticatingSasl = false;
|
IsAuthenticatingSasl = false;
|
||||||
|
|
||||||
RandomNumber = new();
|
RandomNumber = new Random();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Dictionary<string, MessageHandler> Handlers { get; }
|
private Dictionary<string, MessageHandler> Handlers { get; }
|
||||||
|
@ -199,17 +199,17 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
if (Socket != null && Socket.Connected)
|
if (Socket != null && Socket.Connected)
|
||||||
throw new InvalidOperationException("Socket is already connected to server.");
|
throw new InvalidOperationException("Socket is already connected to server.");
|
||||||
Socket = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||||
ReadBuffer = new byte[ReadBufferLength];
|
ReadBuffer = new byte[ReadBufferLength];
|
||||||
ReadBufferIndex = 0;
|
ReadBufferIndex = 0;
|
||||||
PingTimer = new(30000);
|
PingTimer = new Timer(30000);
|
||||||
PingTimer.Elapsed += (_, _) =>
|
PingTimer.Elapsed += (x, y) =>
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(ServerNameFromPing))
|
if (!string.IsNullOrEmpty(ServerNameFromPing))
|
||||||
SendRawMessage("PING :{0}", ServerNameFromPing);
|
SendRawMessage("PING :{0}", ServerNameFromPing);
|
||||||
};
|
};
|
||||||
var checkQueue = new Timer(1000);
|
var checkQueue = new Timer(1000);
|
||||||
checkQueue.Elapsed += (_, _) =>
|
checkQueue.Elapsed += (x, y) =>
|
||||||
{
|
{
|
||||||
if (!WriteQueue.IsEmpty)
|
if (!WriteQueue.IsEmpty)
|
||||||
{
|
{
|
||||||
|
@ -260,7 +260,7 @@ namespace ChatSharp
|
||||||
if (UseSSL)
|
if (UseSSL)
|
||||||
{
|
{
|
||||||
if (IgnoreInvalidSSL)
|
if (IgnoreInvalidSSL)
|
||||||
NetworkStream = new SslStream(NetworkStream, false, (_, _, _, _) => true);
|
NetworkStream = new SslStream(NetworkStream, false, (a, b, c, d) => true);
|
||||||
else
|
else
|
||||||
NetworkStream = new SslStream(NetworkStream);
|
NetworkStream = new SslStream(NetworkStream);
|
||||||
((SslStream)NetworkStream).AuthenticateAsClient(ServerHostname);
|
((SslStream)NetworkStream).AuthenticateAsClient(ServerHostname);
|
||||||
|
@ -279,11 +279,11 @@ namespace ChatSharp
|
||||||
}
|
}
|
||||||
catch (SocketException e)
|
catch (SocketException e)
|
||||||
{
|
{
|
||||||
OnNetworkError(new(e.SocketErrorCode));
|
OnNetworkError(new SocketErrorEventArgs(e.SocketErrorCode));
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
OnError(new(e));
|
OnError(new ErrorEventArgs(e));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -291,7 +291,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
if (NetworkStream == null)
|
if (NetworkStream == null)
|
||||||
{
|
{
|
||||||
OnNetworkError(new(SocketError.NotConnected));
|
OnNetworkError(new SocketErrorEventArgs(SocketError.NotConnected));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -303,7 +303,7 @@ namespace ChatSharp
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
if (e.InnerException is SocketException socketException)
|
if (e.InnerException is SocketException socketException)
|
||||||
OnNetworkError(new(socketException.SocketErrorCode));
|
OnNetworkError(new SocketErrorEventArgs(socketException.SocketErrorCode));
|
||||||
else
|
else
|
||||||
throw;
|
throw;
|
||||||
return;
|
return;
|
||||||
|
@ -332,7 +332,7 @@ namespace ChatSharp
|
||||||
|
|
||||||
private void HandleMessage(string rawMessage)
|
private void HandleMessage(string rawMessage)
|
||||||
{
|
{
|
||||||
OnRawMessageReceived(new(rawMessage, false));
|
OnRawMessageReceived(new RawMessageEventArgs(rawMessage, false));
|
||||||
var message = new IrcMessage(rawMessage);
|
var message = new IrcMessage(rawMessage);
|
||||||
if (Handlers.ContainsKey(message.Command.ToUpper()))
|
if (Handlers.ContainsKey(message.Command.ToUpper()))
|
||||||
{
|
{
|
||||||
|
@ -347,7 +347,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
if (NetworkStream == null)
|
if (NetworkStream == null)
|
||||||
{
|
{
|
||||||
OnNetworkError(new(SocketError.NotConnected));
|
OnNetworkError(new SocketErrorEventArgs(SocketError.NotConnected));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -377,7 +377,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
if (NetworkStream == null)
|
if (NetworkStream == null)
|
||||||
{
|
{
|
||||||
OnNetworkError(new(SocketError.NotConnected));
|
OnNetworkError(new SocketErrorEventArgs(SocketError.NotConnected));
|
||||||
IsWriting = false;
|
IsWriting = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -389,7 +389,7 @@ namespace ChatSharp
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
if (e.InnerException is SocketException socketException)
|
if (e.InnerException is SocketException socketException)
|
||||||
OnNetworkError(new(socketException.SocketErrorCode));
|
OnNetworkError(new SocketErrorEventArgs(socketException.SocketErrorCode));
|
||||||
else
|
else
|
||||||
throw;
|
throw;
|
||||||
return;
|
return;
|
||||||
|
@ -399,7 +399,7 @@ namespace ChatSharp
|
||||||
IsWriting = false;
|
IsWriting = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
OnRawMessageSent(new((string)result.AsyncState, true));
|
OnRawMessageSent(new RawMessageEventArgs((string)result.AsyncState, true));
|
||||||
|
|
||||||
string nextMessage;
|
string nextMessage;
|
||||||
if (!WriteQueue.IsEmpty)
|
if (!WriteQueue.IsEmpty)
|
||||||
|
|
|
@ -29,13 +29,13 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
var replacedTag = rawTag.Replace(@"\:", ";");
|
var replacedTag = rawTag.Replace(@"\:", ";");
|
||||||
// The spec declares `@a=` as a tag with an empty value, while `@b;` as a tag with a null value
|
// The spec declares `@a=` as a tag with an empty value, while `@b;` as a tag with a null value
|
||||||
KeyValuePair<string, string> tag = new(replacedTag, null);
|
KeyValuePair<string, string> tag = new KeyValuePair<string, string>(replacedTag, null);
|
||||||
|
|
||||||
if (replacedTag.Contains("="))
|
if (replacedTag.Contains("="))
|
||||||
{
|
{
|
||||||
var key = replacedTag.Substring(0, replacedTag.IndexOf("=", StringComparison.Ordinal));
|
var key = replacedTag.Substring(0, replacedTag.IndexOf("=", StringComparison.Ordinal));
|
||||||
var value = replacedTag[(replacedTag.IndexOf("=", StringComparison.Ordinal) + 1)..];
|
var value = replacedTag[(replacedTag.IndexOf("=", StringComparison.Ordinal) + 1)..];
|
||||||
tag = new(key, value);
|
tag = new KeyValuePair<string, string>(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
tags.Add(tag);
|
tags.Add(tag);
|
||||||
|
@ -91,13 +91,13 @@ namespace ChatSharp
|
||||||
if (Tags.Any(tag => tag.Key == "t"))
|
if (Tags.Any(tag => tag.Key == "t"))
|
||||||
{
|
{
|
||||||
var tag = Tags.SingleOrDefault(x => x.Key == "t");
|
var tag = Tags.SingleOrDefault(x => x.Key == "t");
|
||||||
Timestamp = new(tag.Value, true);
|
Timestamp = new Timestamp(tag.Value, true);
|
||||||
}
|
}
|
||||||
// server-time tag
|
// server-time tag
|
||||||
else if (Tags.Any(tag => tag.Key == "time"))
|
else if (Tags.Any(tag => tag.Key == "time"))
|
||||||
{
|
{
|
||||||
var tag = Tags.SingleOrDefault(x => x.Key == "time");
|
var tag = Tags.SingleOrDefault(x => x.Key == "time");
|
||||||
Timestamp = new(tag.Value);
|
Timestamp = new Timestamp(tag.Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,8 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
internal IrcUser()
|
internal IrcUser()
|
||||||
{
|
{
|
||||||
Channels = new();
|
Channels = new ChannelCollection();
|
||||||
ChannelModes = new();
|
ChannelModes = new Dictionary<IrcChannel, List<char?>>();
|
||||||
Account = "*";
|
Account = "*";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
internal MaskCollection()
|
internal MaskCollection()
|
||||||
{
|
{
|
||||||
Masks = new();
|
Masks = new List<Mask>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Mask> Masks { get; }
|
private List<Mask> Masks { get; }
|
||||||
|
|
|
@ -8,7 +8,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
public RequestManager()
|
public RequestManager()
|
||||||
{
|
{
|
||||||
PendingOperations = new();
|
PendingOperations = new Dictionary<string, RequestOperation>();
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Dictionary<string, RequestOperation> PendingOperations { get; }
|
internal Dictionary<string, RequestOperation> PendingOperations { get; }
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
// Guess for some defaults
|
// Guess for some defaults
|
||||||
Prefixes = new[] { "ovhaq", "@+%&~" };
|
Prefixes = new[] { "ovhaq", "@+%&~" };
|
||||||
SupportedChannelModes = new();
|
SupportedChannelModes = new ChannelModes();
|
||||||
IsGuess = true;
|
IsGuess = true;
|
||||||
ExtendedWho = false;
|
ExtendedWho = false;
|
||||||
}
|
}
|
||||||
|
@ -115,8 +115,8 @@ namespace ChatSharp
|
||||||
public List<char?> GetModesForNick(string nick)
|
public List<char?> GetModesForNick(string nick)
|
||||||
{
|
{
|
||||||
var supportedPrefixes = Prefixes[1];
|
var supportedPrefixes = Prefixes[1];
|
||||||
List<char?> modeList = new();
|
List<char?> modeList = new List<char?>();
|
||||||
List<char> nickPrefixes = new();
|
List<char> nickPrefixes = new List<char>();
|
||||||
|
|
||||||
foreach (var prefix in supportedPrefixes)
|
foreach (var prefix in supportedPrefixes)
|
||||||
if (nick.Contains(prefix))
|
if (nick.Contains(prefix))
|
||||||
|
|
|
@ -13,7 +13,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
internal UserPool()
|
internal UserPool()
|
||||||
{
|
{
|
||||||
Users = new();
|
Users = new List<IrcUser>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<IrcUser> Users { get; }
|
private List<IrcUser> Users { get; }
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
internal WhoIs()
|
internal WhoIs()
|
||||||
{
|
{
|
||||||
User = new();
|
User = new IrcUser();
|
||||||
SecondsIdle = -1;
|
SecondsIdle = -1;
|
||||||
Channels = Array.Empty<string>();
|
Channels = Array.Empty<string>();
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace ChatSharp
|
||||||
{
|
{
|
||||||
QueryType = -1;
|
QueryType = -1;
|
||||||
Channel = "*";
|
Channel = "*";
|
||||||
User = new();
|
User = new IrcUser();
|
||||||
IP = string.Empty;
|
IP = string.Empty;
|
||||||
Server = string.Empty;
|
Server = string.Empty;
|
||||||
Flags = string.Empty;
|
Flags = string.Empty;
|
||||||
|
|
|
@ -1,17 +1,8 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="MSTest.Sdk/3.3.1">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\ChatSharp\ChatSharp.csproj"/>
|
<ProjectReference Include="..\ChatSharp\ChatSharp.csproj"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0"/>
|
|
||||||
<PackageReference Include="MSTest.TestAdapter" Version="2.2.9"/>
|
|
||||||
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.3.310801">
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="MSTest.TestFramework" Version="2.2.9"/>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
|
@ -1,19 +0,0 @@
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
[assembly: AssemblyTitle("ChatSharpTests")]
|
|
||||||
[assembly: AssemblyDescription("")]
|
|
||||||
[assembly: AssemblyConfiguration("")]
|
|
||||||
[assembly: AssemblyCompany("")]
|
|
||||||
[assembly: AssemblyProduct("ChatSharpTests")]
|
|
||||||
[assembly: AssemblyCopyright("Copyright © 2017")]
|
|
||||||
[assembly: AssemblyTrademark("")]
|
|
||||||
[assembly: AssemblyCulture("")]
|
|
||||||
|
|
||||||
[assembly: ComVisible(false)]
|
|
||||||
|
|
||||||
[assembly: Guid("24d593ec-ca81-41dc-9fe7-a434ddde229d")]
|
|
||||||
|
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
|
||||||
[assembly: AssemblyVersion("1.0.0.0")]
|
|
||||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
Loading…
Reference in New Issue
Block a user