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">
|
||||
<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 />
|
||||
</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">
|
||||
|
||||
<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">
|
||||
<Solution />
|
||||
</SessionState></s:String></wpf:ResourceDictionary>
|
|
@ -12,7 +12,7 @@ namespace ChatSharp
|
|||
{
|
||||
internal CapabilityPool()
|
||||
{
|
||||
Capabilities = new();
|
||||
Capabilities = new List<IrcCapability>();
|
||||
}
|
||||
|
||||
private List<IrcCapability> Capabilities { get; }
|
||||
|
@ -67,7 +67,7 @@ namespace ChatSharp
|
|||
if (Capabilities.Any(cap => cap.Name == name))
|
||||
return;
|
||||
|
||||
Capabilities.Add(new(name));
|
||||
Capabilities.Add(new IrcCapability(name));
|
||||
}
|
||||
|
||||
internal void AddRange(IEnumerable<string> range)
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace ChatSharp
|
|||
{
|
||||
internal ChannelCollection()
|
||||
{
|
||||
Channels = new();
|
||||
Channels = new List<IrcChannel>();
|
||||
}
|
||||
|
||||
internal ChannelCollection(IrcClient client) : this()
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<RepositoryUrl>https://tildegit.org/ben/chatsharp</RepositoryUrl>
|
||||
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||
<PackageProjectUrl>https://tildegit.org/ben/chatsharp</PackageProjectUrl>
|
||||
<Description>c# irc library</Description>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>netstandard2.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\README.md">
|
||||
<Pack>True</Pack>
|
||||
<PackagePath></PackagePath>
|
||||
</None>
|
||||
<None Include="..\README.md" Pack="true" PackagePath="\"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -37,11 +37,11 @@ namespace ChatSharp.Events
|
|||
{
|
||||
const string nickCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
|
||||
_random ??= new();
|
||||
_random ??= new Random();
|
||||
var nick = new char[8];
|
||||
for (var i = 0; i < nick.Length; i++)
|
||||
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)
|
||||
{
|
||||
IrcMessage = ircMessage;
|
||||
PrivateMessage = new(client, IrcMessage, serverInfo);
|
||||
PrivateMessage = new PrivateMessage(client, IrcMessage, serverInfo);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -2,6 +2,7 @@ using System;
|
|||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using ChatSharp.Events;
|
||||
|
||||
namespace ChatSharp.Handlers
|
||||
{
|
||||
|
@ -25,7 +26,7 @@ namespace ChatSharp.Handlers
|
|||
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 old = channel._Topic;
|
||||
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)
|
||||
|
@ -42,7 +43,7 @@ namespace ChatSharp.Handlers
|
|||
var channel = client.Channels.GetOrAdd(message.Parameters[1]);
|
||||
var old = channel._Topic;
|
||||
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)
|
||||
|
@ -58,7 +59,7 @@ namespace ChatSharp.Handlers
|
|||
if (user.ChannelModes.ContainsKey(channel))
|
||||
user.ChannelModes.Remove(channel);
|
||||
|
||||
client.OnUserPartedChannel(new(channel, user));
|
||||
client.OnUserPartedChannel(new ChannelUserEventArgs(channel, user));
|
||||
}
|
||||
|
||||
public static void HandleUserListPart(IrcClient client, IrcMessage message)
|
||||
|
@ -127,7 +128,7 @@ namespace ChatSharp.Handlers
|
|||
public static void HandleUserListEnd(IrcClient client, IrcMessage message)
|
||||
{
|
||||
var channel = client.Channels[message.Parameters[1]];
|
||||
client.OnChannelListReceived(new(channel));
|
||||
client.OnChannelListReceived(new ChannelEventArgs(channel));
|
||||
if (client.Settings.ModeOnJoin)
|
||||
try
|
||||
{
|
||||
|
@ -164,7 +165,7 @@ namespace ChatSharp.Handlers
|
|||
var kicked = channel.Users[message.Parameters[1]];
|
||||
if (kicked.Channels.Contains(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]));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
using ChatSharp.Events;
|
||||
|
||||
namespace ChatSharp.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
|
@ -10,7 +12,7 @@ namespace ChatSharp.Handlers
|
|||
/// </summary>
|
||||
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 request = client.RequestManager.PeekOperation("GETMODE b " + parameters[1]);
|
||||
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]))));
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ namespace ChatSharp.Handlers
|
|||
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
|
||||
var request = client.RequestManager.PeekOperation("GETMODE e " + parameters[1]);
|
||||
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]))));
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,7 @@ namespace ChatSharp.Handlers
|
|||
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
|
||||
var request = client.RequestManager.PeekOperation("GETMODE I " + parameters[1]);
|
||||
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]))));
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ namespace ChatSharp.Handlers
|
|||
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
|
||||
var request = client.RequestManager.PeekOperation("GETMODE q " + parameters[1]);
|
||||
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]))));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using ChatSharp.Events;
|
||||
|
||||
namespace ChatSharp.Handlers
|
||||
{
|
||||
|
@ -17,21 +18,21 @@ namespace ChatSharp.Handlers
|
|||
throw new IrcProtocolException("372 MOTD message is incorrectly formatted.");
|
||||
var part = message.Parameters[1][2..];
|
||||
MOTD += part + Environment.NewLine;
|
||||
client.OnMOTDPartReceived(new(part));
|
||||
client.OnMOTDPartReceived(new ServerMOTDEventArgs(part));
|
||||
}
|
||||
|
||||
public static void HandleEndOfMOTD(IrcClient client, IrcMessage message)
|
||||
{
|
||||
client.OnMOTDReceived(new(MOTD));
|
||||
client.OnConnectionComplete(new());
|
||||
client.OnMOTDReceived(new ServerMOTDEventArgs(MOTD));
|
||||
client.OnConnectionComplete(EventArgs.Empty);
|
||||
// Verify our identity
|
||||
VerifyOurIdentity(client);
|
||||
}
|
||||
|
||||
public static void HandleMOTDNotFound(IrcClient client, IrcMessage message)
|
||||
{
|
||||
client.OnMOTDReceived(new(MOTD));
|
||||
client.OnConnectionComplete(new());
|
||||
client.OnMOTDReceived(new ServerMOTDEventArgs(MOTD));
|
||||
client.OnConnectionComplete(EventArgs.Empty);
|
||||
|
||||
VerifyOurIdentity(client);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using ChatSharp.Events;
|
||||
|
||||
|
@ -95,7 +96,7 @@ namespace ChatSharp.Handlers
|
|||
var oldNick = user.Nick;
|
||||
user.Nick = message.Parameters[0];
|
||||
|
||||
client.OnNickChanged(new()
|
||||
client.OnNickChanged(new NickChangedEventArgs
|
||||
{
|
||||
User = user,
|
||||
OldNick = oldNick,
|
||||
|
@ -109,7 +110,7 @@ namespace ChatSharp.Handlers
|
|||
if (client.User.Nick != user.Nick)
|
||||
{
|
||||
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)
|
||||
{
|
||||
client.OnNoticeReceived(new(message));
|
||||
client.OnNoticeReceived(new IrcNoticeEventArgs(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
|
||||
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++]));
|
||||
}
|
||||
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++]));
|
||||
}
|
||||
else if (client.ServerInfo.SupportedChannelModes.ChannelUserModes.Contains(c))
|
||||
{
|
||||
if (!channel.UsersByMode.ContainsKey(c))
|
||||
channel.UsersByMode.Add(c,
|
||||
new(channel.Users.Where(u =>
|
||||
new UserPoolView(channel.Users.Where(u =>
|
||||
{
|
||||
if (!u.ChannelModes.ContainsKey(channel))
|
||||
u.ChannelModes.Add(channel, new());
|
||||
u.ChannelModes.Add(channel, new List<char?>());
|
||||
return u.ChannelModes[channel].Contains(c);
|
||||
})));
|
||||
var user = new IrcUser(message.Parameters[i]);
|
||||
|
@ -217,7 +218,7 @@ namespace ChatSharp.Handlers
|
|||
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++]));
|
||||
}
|
||||
|
||||
|
@ -233,7 +234,7 @@ namespace ChatSharp.Handlers
|
|||
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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
using ChatSharp.Events;
|
||||
|
||||
namespace ChatSharp.Handlers
|
||||
{
|
||||
internal static class ServerHandlers
|
||||
|
@ -5,7 +7,7 @@ namespace ChatSharp.Handlers
|
|||
public static void HandleISupport(IrcClient client, IrcMessage message)
|
||||
{
|
||||
if (client.ServerInfo == null)
|
||||
client.ServerInfo = new();
|
||||
client.ServerInfo = new ServerInfo();
|
||||
foreach (var item in message.Parameters)
|
||||
{
|
||||
string key, value;
|
||||
|
@ -57,7 +59,7 @@ namespace ChatSharp.Handlers
|
|||
var limitedModes = limits[i].Remove(limits[i].IndexOf(':'));
|
||||
var limit = int.Parse(limits[i][(limits[i].IndexOf(':') + 1)..]);
|
||||
foreach (var mode in limitedModes)
|
||||
client.ServerInfo.ModeListLimits[i] = new(mode, limit);
|
||||
client.ServerInfo.ModeListLimits[i] = new ServerInfo.ModeListLimit(mode, limit);
|
||||
}
|
||||
|
||||
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)
|
||||
|
@ -100,7 +102,7 @@ namespace ChatSharp.Handlers
|
|||
// 004 sendak.freenode.net ircd-seven-1.1.3 DOQRSZaghilopswz CFILMPQbcefgijklmnopqrstvz bkloveqjfI
|
||||
// TODO: Figure out how to properly handle this message
|
||||
if (client.ServerInfo == null)
|
||||
client.ServerInfo = new();
|
||||
client.ServerInfo = new ServerInfo();
|
||||
if (message.Parameters.Length >= 5)
|
||||
foreach (var c in message.Parameters[4])
|
||||
if (!client.ServerInfo.SupportedChannelModes.ChannelUserModes.Contains(c))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using ChatSharp.Events;
|
||||
|
||||
namespace ChatSharp.Handlers
|
||||
{
|
||||
|
@ -68,7 +69,7 @@ namespace ChatSharp.Handlers
|
|||
if (!client.Users.Contains(whois.User.Nick))
|
||||
client.Users.Add(whois.User);
|
||||
request.Callback?.Invoke(request);
|
||||
client.OnWhoIsReceived(new(whois));
|
||||
client.OnWhoIsReceived(new WhoIsReceivedEventArgs(whois));
|
||||
}
|
||||
|
||||
public static void HandleWho(IrcClient client, IrcMessage message)
|
||||
|
@ -81,7 +82,7 @@ namespace ChatSharp.Handlers
|
|||
var who = new ExtendedWho
|
||||
{
|
||||
Channel = message.Parameters[1],
|
||||
User = new()
|
||||
User = new IrcUser
|
||||
{
|
||||
User = message.Parameters[2],
|
||||
Nick = message.Parameters[5]
|
||||
|
@ -236,7 +237,7 @@ namespace ChatSharp.Handlers
|
|||
client.Users.Add(whox.User);
|
||||
|
||||
request.Callback?.Invoke(request);
|
||||
client.OnWhoxReceived(new(whoxList.ToArray()));
|
||||
client.OnWhoxReceived(new WhoxReceivedEventArgs(whoxList.ToArray()));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -250,7 +251,7 @@ namespace ChatSharp.Handlers
|
|||
client.Users.Add(who.User);
|
||||
|
||||
request.Callback?.Invoke(request);
|
||||
client.OnWhoxReceived(new(whoList.ToArray()));
|
||||
client.OnWhoxReceived(new WhoxReceivedEventArgs(whoList.ToArray()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ namespace ChatSharp
|
|||
{
|
||||
Client = client;
|
||||
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; }
|
||||
|
|
|
@ -163,7 +163,7 @@ namespace ChatSharp
|
|||
public void WhoIs(string nick, Action<WhoIs> callback)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -190,7 +190,7 @@ namespace ChatSharp
|
|||
var queryKey = string.Format("WHO {0} {1} {2:D}", target, queryType, _fields);
|
||||
|
||||
RequestManager.QueueOperation(queryKey,
|
||||
new(whox, ro => { callback?.Invoke((List<ExtendedWho>)ro.State); }));
|
||||
new RequestOperation(whox, ro => { callback?.Invoke((List<ExtendedWho>)ro.State); }));
|
||||
SendRawMessage(whoQuery);
|
||||
}
|
||||
else
|
||||
|
@ -200,7 +200,7 @@ namespace ChatSharp
|
|||
var whoQuery = string.Format("WHO {0}", target);
|
||||
|
||||
RequestManager.QueueOperation(whoQuery,
|
||||
new(whox, ro => { callback?.Invoke((List<ExtendedWho>)ro.State); }));
|
||||
new RequestOperation(whox, ro => { callback?.Invoke((List<ExtendedWho>)ro.State); }));
|
||||
SendRawMessage(whoQuery);
|
||||
}
|
||||
}
|
||||
|
@ -218,7 +218,7 @@ namespace ChatSharp
|
|||
/// </summary>
|
||||
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];
|
||||
callback?.Invoke(c);
|
||||
|
@ -240,7 +240,7 @@ namespace ChatSharp
|
|||
/// </summary>
|
||||
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;
|
||||
callback?.Invoke(c);
|
||||
|
|
|
@ -35,18 +35,18 @@ namespace ChatSharp
|
|||
User = user ?? throw new ArgumentNullException(nameof(user));
|
||||
ServerAddress = serverAddress ?? throw new ArgumentNullException(nameof(serverAddress));
|
||||
Encoding = Encoding.UTF8;
|
||||
Settings = new();
|
||||
Handlers = new();
|
||||
Settings = new ClientSettings();
|
||||
Handlers = new Dictionary<string, MessageHandler>();
|
||||
MessageHandlers.RegisterDefaultHandlers(this);
|
||||
RequestManager = new();
|
||||
RequestManager = new RequestManager();
|
||||
UseSSL = useSSL;
|
||||
WriteQueue = new();
|
||||
ServerInfo = new();
|
||||
WriteQueue = new ConcurrentQueue<string>();
|
||||
ServerInfo = new ServerInfo();
|
||||
PrivmsgPrefix = "";
|
||||
Channels = User.Channels = new(this);
|
||||
Channels = User.Channels = new ChannelCollection(this);
|
||||
// Add self to user pool
|
||||
Users = new() { User };
|
||||
Capabilities = new();
|
||||
Users = new UserPool { User };
|
||||
Capabilities = new CapabilityPool();
|
||||
|
||||
// List of supported capabilities
|
||||
Capabilities.AddRange(new[]
|
||||
|
@ -58,7 +58,7 @@ namespace ChatSharp
|
|||
IsNegotiatingCapabilities = false;
|
||||
IsAuthenticatingSasl = false;
|
||||
|
||||
RandomNumber = new();
|
||||
RandomNumber = new Random();
|
||||
}
|
||||
|
||||
private Dictionary<string, MessageHandler> Handlers { get; }
|
||||
|
@ -199,17 +199,17 @@ namespace ChatSharp
|
|||
{
|
||||
if (Socket != null && Socket.Connected)
|
||||
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];
|
||||
ReadBufferIndex = 0;
|
||||
PingTimer = new(30000);
|
||||
PingTimer.Elapsed += (_, _) =>
|
||||
PingTimer = new Timer(30000);
|
||||
PingTimer.Elapsed += (x, y) =>
|
||||
{
|
||||
if (!string.IsNullOrEmpty(ServerNameFromPing))
|
||||
SendRawMessage("PING :{0}", ServerNameFromPing);
|
||||
};
|
||||
var checkQueue = new Timer(1000);
|
||||
checkQueue.Elapsed += (_, _) =>
|
||||
checkQueue.Elapsed += (x, y) =>
|
||||
{
|
||||
if (!WriteQueue.IsEmpty)
|
||||
{
|
||||
|
@ -260,7 +260,7 @@ namespace ChatSharp
|
|||
if (UseSSL)
|
||||
{
|
||||
if (IgnoreInvalidSSL)
|
||||
NetworkStream = new SslStream(NetworkStream, false, (_, _, _, _) => true);
|
||||
NetworkStream = new SslStream(NetworkStream, false, (a, b, c, d) => true);
|
||||
else
|
||||
NetworkStream = new SslStream(NetworkStream);
|
||||
((SslStream)NetworkStream).AuthenticateAsClient(ServerHostname);
|
||||
|
@ -279,11 +279,11 @@ namespace ChatSharp
|
|||
}
|
||||
catch (SocketException e)
|
||||
{
|
||||
OnNetworkError(new(e.SocketErrorCode));
|
||||
OnNetworkError(new SocketErrorEventArgs(e.SocketErrorCode));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
OnError(new(e));
|
||||
OnError(new ErrorEventArgs(e));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -291,7 +291,7 @@ namespace ChatSharp
|
|||
{
|
||||
if (NetworkStream == null)
|
||||
{
|
||||
OnNetworkError(new(SocketError.NotConnected));
|
||||
OnNetworkError(new SocketErrorEventArgs(SocketError.NotConnected));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -303,7 +303,7 @@ namespace ChatSharp
|
|||
catch (IOException e)
|
||||
{
|
||||
if (e.InnerException is SocketException socketException)
|
||||
OnNetworkError(new(socketException.SocketErrorCode));
|
||||
OnNetworkError(new SocketErrorEventArgs(socketException.SocketErrorCode));
|
||||
else
|
||||
throw;
|
||||
return;
|
||||
|
@ -332,7 +332,7 @@ namespace ChatSharp
|
|||
|
||||
private void HandleMessage(string rawMessage)
|
||||
{
|
||||
OnRawMessageReceived(new(rawMessage, false));
|
||||
OnRawMessageReceived(new RawMessageEventArgs(rawMessage, false));
|
||||
var message = new IrcMessage(rawMessage);
|
||||
if (Handlers.ContainsKey(message.Command.ToUpper()))
|
||||
{
|
||||
|
@ -347,7 +347,7 @@ namespace ChatSharp
|
|||
{
|
||||
if (NetworkStream == null)
|
||||
{
|
||||
OnNetworkError(new(SocketError.NotConnected));
|
||||
OnNetworkError(new SocketErrorEventArgs(SocketError.NotConnected));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -377,7 +377,7 @@ namespace ChatSharp
|
|||
{
|
||||
if (NetworkStream == null)
|
||||
{
|
||||
OnNetworkError(new(SocketError.NotConnected));
|
||||
OnNetworkError(new SocketErrorEventArgs(SocketError.NotConnected));
|
||||
IsWriting = false;
|
||||
return;
|
||||
}
|
||||
|
@ -389,7 +389,7 @@ namespace ChatSharp
|
|||
catch (IOException e)
|
||||
{
|
||||
if (e.InnerException is SocketException socketException)
|
||||
OnNetworkError(new(socketException.SocketErrorCode));
|
||||
OnNetworkError(new SocketErrorEventArgs(socketException.SocketErrorCode));
|
||||
else
|
||||
throw;
|
||||
return;
|
||||
|
@ -399,7 +399,7 @@ namespace ChatSharp
|
|||
IsWriting = false;
|
||||
}
|
||||
|
||||
OnRawMessageSent(new((string)result.AsyncState, true));
|
||||
OnRawMessageSent(new RawMessageEventArgs((string)result.AsyncState, true));
|
||||
|
||||
string nextMessage;
|
||||
if (!WriteQueue.IsEmpty)
|
||||
|
|
|
@ -29,13 +29,13 @@ namespace ChatSharp
|
|||
{
|
||||
var replacedTag = rawTag.Replace(@"\:", ";");
|
||||
// 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("="))
|
||||
{
|
||||
var key = replacedTag.Substring(0, replacedTag.IndexOf("=", StringComparison.Ordinal));
|
||||
var value = replacedTag[(replacedTag.IndexOf("=", StringComparison.Ordinal) + 1)..];
|
||||
tag = new(key, value);
|
||||
tag = new KeyValuePair<string, string>(key, value);
|
||||
}
|
||||
|
||||
tags.Add(tag);
|
||||
|
@ -91,13 +91,13 @@ namespace ChatSharp
|
|||
if (Tags.Any(tag => tag.Key == "t"))
|
||||
{
|
||||
var tag = Tags.SingleOrDefault(x => x.Key == "t");
|
||||
Timestamp = new(tag.Value, true);
|
||||
Timestamp = new Timestamp(tag.Value, true);
|
||||
}
|
||||
// server-time tag
|
||||
else if (Tags.Any(tag => tag.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()
|
||||
{
|
||||
Channels = new();
|
||||
ChannelModes = new();
|
||||
Channels = new ChannelCollection();
|
||||
ChannelModes = new Dictionary<IrcChannel, List<char?>>();
|
||||
Account = "*";
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace ChatSharp
|
|||
{
|
||||
internal MaskCollection()
|
||||
{
|
||||
Masks = new();
|
||||
Masks = new List<Mask>();
|
||||
}
|
||||
|
||||
private List<Mask> Masks { get; }
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace ChatSharp
|
|||
{
|
||||
public RequestManager()
|
||||
{
|
||||
PendingOperations = new();
|
||||
PendingOperations = new Dictionary<string, RequestOperation>();
|
||||
}
|
||||
|
||||
internal Dictionary<string, RequestOperation> PendingOperations { get; }
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace ChatSharp
|
|||
{
|
||||
// Guess for some defaults
|
||||
Prefixes = new[] { "ovhaq", "@+%&~" };
|
||||
SupportedChannelModes = new();
|
||||
SupportedChannelModes = new ChannelModes();
|
||||
IsGuess = true;
|
||||
ExtendedWho = false;
|
||||
}
|
||||
|
@ -115,8 +115,8 @@ namespace ChatSharp
|
|||
public List<char?> GetModesForNick(string nick)
|
||||
{
|
||||
var supportedPrefixes = Prefixes[1];
|
||||
List<char?> modeList = new();
|
||||
List<char> nickPrefixes = new();
|
||||
List<char?> modeList = new List<char?>();
|
||||
List<char> nickPrefixes = new List<char>();
|
||||
|
||||
foreach (var prefix in supportedPrefixes)
|
||||
if (nick.Contains(prefix))
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace ChatSharp
|
|||
{
|
||||
internal UserPool()
|
||||
{
|
||||
Users = new();
|
||||
Users = new List<IrcUser>();
|
||||
}
|
||||
|
||||
private List<IrcUser> Users { get; }
|
||||
|
|
|
@ -10,7 +10,7 @@ namespace ChatSharp
|
|||
{
|
||||
internal WhoIs()
|
||||
{
|
||||
User = new();
|
||||
User = new IrcUser();
|
||||
SecondsIdle = -1;
|
||||
Channels = Array.Empty<string>();
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace ChatSharp
|
|||
{
|
||||
QueryType = -1;
|
||||
Channel = "*";
|
||||
User = new();
|
||||
User = new IrcUser();
|
||||
IP = string.Empty;
|
||||
Server = string.Empty;
|
||||
Flags = string.Empty;
|
||||
|
|
|
@ -1,17 +1,8 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="MSTest.Sdk/3.3.1">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ChatSharp\ChatSharp.csproj"/>
|
||||
</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>
|
|
@ -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