diff --git a/SharpChat/Misuzu/MisuzuAuthInfo.cs b/SharpChat.Misuzu/MisuzuAuthInfo.cs
similarity index 100%
rename from SharpChat/Misuzu/MisuzuAuthInfo.cs
rename to SharpChat.Misuzu/MisuzuAuthInfo.cs
diff --git a/SharpChat/Misuzu/MisuzuBanInfo.cs b/SharpChat.Misuzu/MisuzuBanInfo.cs
similarity index 100%
rename from SharpChat/Misuzu/MisuzuBanInfo.cs
rename to SharpChat.Misuzu/MisuzuBanInfo.cs
diff --git a/SharpChat/Misuzu/MisuzuClient.cs b/SharpChat.Misuzu/MisuzuClient.cs
similarity index 100%
rename from SharpChat/Misuzu/MisuzuClient.cs
rename to SharpChat.Misuzu/MisuzuClient.cs
diff --git a/SharpChat.Misuzu/SharpChat.Misuzu.csproj b/SharpChat.Misuzu/SharpChat.Misuzu.csproj
new file mode 100644
index 0000000..d9d410b
--- /dev/null
+++ b/SharpChat.Misuzu/SharpChat.Misuzu.csproj
@@ -0,0 +1,12 @@
+
+
+
+ net6.0
+ enable
+
+
+
+
+
+
+
diff --git a/SharpChat/Commands/BanListCommand.cs b/SharpChat.SockChat/Commands/BanListCommand.cs
similarity index 94%
rename from SharpChat/Commands/BanListCommand.cs
rename to SharpChat.SockChat/Commands/BanListCommand.cs
index 2bc4328..4a9eedc 100644
--- a/SharpChat/Commands/BanListCommand.cs
+++ b/SharpChat.SockChat/Commands/BanListCommand.cs
@@ -1,10 +1,10 @@
using SharpChat.Misuzu;
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System;
using System.Linq;
using System.Threading.Tasks;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class BanListCommand : ISockChatClientCommand {
private readonly MisuzuClient Misuzu;
diff --git a/SharpChat/Commands/ChannelCreateCommand.cs b/SharpChat.SockChat/Commands/ChannelCreateCommand.cs
similarity index 96%
rename from SharpChat/Commands/ChannelCreateCommand.cs
rename to SharpChat.SockChat/Commands/ChannelCreateCommand.cs
index 9726bea..93102c6 100644
--- a/SharpChat/Commands/ChannelCreateCommand.cs
+++ b/SharpChat.SockChat/Commands/ChannelCreateCommand.cs
@@ -1,7 +1,7 @@
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class ChannelCreateCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("create");
diff --git a/SharpChat/Commands/ChannelDeleteCommand.cs b/SharpChat.SockChat/Commands/ChannelDeleteCommand.cs
similarity index 94%
rename from SharpChat/Commands/ChannelDeleteCommand.cs
rename to SharpChat.SockChat/Commands/ChannelDeleteCommand.cs
index ab3b1f6..443fef0 100644
--- a/SharpChat/Commands/ChannelDeleteCommand.cs
+++ b/SharpChat.SockChat/Commands/ChannelDeleteCommand.cs
@@ -1,7 +1,7 @@
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class ChannelDeleteCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("delchan") || (
diff --git a/SharpChat/Commands/ChannelJoinCommand.cs b/SharpChat.SockChat/Commands/ChannelJoinCommand.cs
similarity index 90%
rename from SharpChat/Commands/ChannelJoinCommand.cs
rename to SharpChat.SockChat/Commands/ChannelJoinCommand.cs
index 8a0f28e..9d0b33d 100644
--- a/SharpChat/Commands/ChannelJoinCommand.cs
+++ b/SharpChat.SockChat/Commands/ChannelJoinCommand.cs
@@ -1,7 +1,7 @@
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class ChannelJoinCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("join");
diff --git a/SharpChat/Commands/ChannelPasswordCommand.cs b/SharpChat.SockChat/Commands/ChannelPasswordCommand.cs
similarity index 91%
rename from SharpChat/Commands/ChannelPasswordCommand.cs
rename to SharpChat.SockChat/Commands/ChannelPasswordCommand.cs
index b059420..b8c66ff 100644
--- a/SharpChat/Commands/ChannelPasswordCommand.cs
+++ b/SharpChat.SockChat/Commands/ChannelPasswordCommand.cs
@@ -1,6 +1,6 @@
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class ChannelPasswordCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("pwd")
diff --git a/SharpChat/Commands/ChannelRankCommand.cs b/SharpChat.SockChat/Commands/ChannelRankCommand.cs
similarity index 92%
rename from SharpChat/Commands/ChannelRankCommand.cs
rename to SharpChat.SockChat/Commands/ChannelRankCommand.cs
index 0822dc6..95eed6d 100644
--- a/SharpChat/Commands/ChannelRankCommand.cs
+++ b/SharpChat.SockChat/Commands/ChannelRankCommand.cs
@@ -1,7 +1,7 @@
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class ChannelRankCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("rank")
diff --git a/SharpChat/Commands/ISockChatClientCommand.cs b/SharpChat.SockChat/Commands/ISockChatClientCommand.cs
similarity index 79%
rename from SharpChat/Commands/ISockChatClientCommand.cs
rename to SharpChat.SockChat/Commands/ISockChatClientCommand.cs
index fc03beb..250db7d 100644
--- a/SharpChat/Commands/ISockChatClientCommand.cs
+++ b/SharpChat.SockChat/Commands/ISockChatClientCommand.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public interface ISockChatClientCommand {
bool IsMatch(SockChatClientCommandContext ctx);
void Dispatch(SockChatClientCommandContext ctx);
diff --git a/SharpChat/Commands/KickBanCommand.cs b/SharpChat.SockChat/Commands/KickBanCommand.cs
similarity index 97%
rename from SharpChat/Commands/KickBanCommand.cs
rename to SharpChat.SockChat/Commands/KickBanCommand.cs
index 8705cd6..800ff6a 100644
--- a/SharpChat/Commands/KickBanCommand.cs
+++ b/SharpChat.SockChat/Commands/KickBanCommand.cs
@@ -1,10 +1,10 @@
using SharpChat.Misuzu;
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System;
using System.Linq;
using System.Threading.Tasks;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class KickBanCommand : ISockChatClientCommand {
private readonly MisuzuClient Misuzu;
diff --git a/SharpChat/Commands/MessageActionCommand.cs b/SharpChat.SockChat/Commands/MessageActionCommand.cs
similarity index 95%
rename from SharpChat/Commands/MessageActionCommand.cs
rename to SharpChat.SockChat/Commands/MessageActionCommand.cs
index 4fc11fe..5f665c7 100644
--- a/SharpChat/Commands/MessageActionCommand.cs
+++ b/SharpChat.SockChat/Commands/MessageActionCommand.cs
@@ -2,7 +2,7 @@
using System;
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class MessageActionCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("action")
diff --git a/SharpChat/Commands/MessageBroadcastCommand.cs b/SharpChat.SockChat/Commands/MessageBroadcastCommand.cs
similarity index 91%
rename from SharpChat/Commands/MessageBroadcastCommand.cs
rename to SharpChat.SockChat/Commands/MessageBroadcastCommand.cs
index d53d9d4..5870c2d 100644
--- a/SharpChat/Commands/MessageBroadcastCommand.cs
+++ b/SharpChat.SockChat/Commands/MessageBroadcastCommand.cs
@@ -1,8 +1,8 @@
using SharpChat.Events;
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class MessageBroadcastCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("say")
diff --git a/SharpChat/Commands/MessageDeleteCommand.cs b/SharpChat.SockChat/Commands/MessageDeleteCommand.cs
similarity index 95%
rename from SharpChat/Commands/MessageDeleteCommand.cs
rename to SharpChat.SockChat/Commands/MessageDeleteCommand.cs
index f7497b5..553d497 100644
--- a/SharpChat/Commands/MessageDeleteCommand.cs
+++ b/SharpChat.SockChat/Commands/MessageDeleteCommand.cs
@@ -1,8 +1,8 @@
using SharpChat.EventStorage;
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class MessageDeleteCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("delmsg") || (
diff --git a/SharpChat/Commands/MessageWhisperCommand.cs b/SharpChat.SockChat/Commands/MessageWhisperCommand.cs
similarity index 94%
rename from SharpChat/Commands/MessageWhisperCommand.cs
rename to SharpChat.SockChat/Commands/MessageWhisperCommand.cs
index 782e8ba..7180968 100644
--- a/SharpChat/Commands/MessageWhisperCommand.cs
+++ b/SharpChat.SockChat/Commands/MessageWhisperCommand.cs
@@ -1,9 +1,9 @@
using SharpChat.Events;
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System;
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class MessageWhisperCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("whisper")
diff --git a/SharpChat/Commands/PardonAddressCommand.cs b/SharpChat.SockChat/Commands/PardonAddressCommand.cs
similarity index 96%
rename from SharpChat/Commands/PardonAddressCommand.cs
rename to SharpChat.SockChat/Commands/PardonAddressCommand.cs
index bb270a4..36adfe3 100644
--- a/SharpChat/Commands/PardonAddressCommand.cs
+++ b/SharpChat.SockChat/Commands/PardonAddressCommand.cs
@@ -1,10 +1,10 @@
using SharpChat.Misuzu;
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class PardonAddressCommand : ISockChatClientCommand {
private readonly MisuzuClient Misuzu;
diff --git a/SharpChat/Commands/PardonUserCommand.cs b/SharpChat.SockChat/Commands/PardonUserCommand.cs
similarity index 96%
rename from SharpChat/Commands/PardonUserCommand.cs
rename to SharpChat.SockChat/Commands/PardonUserCommand.cs
index d251f21..4642445 100644
--- a/SharpChat/Commands/PardonUserCommand.cs
+++ b/SharpChat.SockChat/Commands/PardonUserCommand.cs
@@ -1,9 +1,9 @@
using SharpChat.Misuzu;
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System.Linq;
using System.Threading.Tasks;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class PardonUserCommand : ISockChatClientCommand {
private readonly MisuzuClient Misuzu;
diff --git a/SharpChat/Commands/ShutdownRestartCommand.cs b/SharpChat.SockChat/Commands/ShutdownRestartCommand.cs
similarity index 93%
rename from SharpChat/Commands/ShutdownRestartCommand.cs
rename to SharpChat.SockChat/Commands/ShutdownRestartCommand.cs
index 72f975a..bf03711 100644
--- a/SharpChat/Commands/ShutdownRestartCommand.cs
+++ b/SharpChat.SockChat/Commands/ShutdownRestartCommand.cs
@@ -1,8 +1,8 @@
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System;
using System.Threading;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class ShutdownRestartCommand : ISockChatClientCommand {
private readonly ManualResetEvent WaitHandle;
private readonly Func ShuttingDown;
diff --git a/SharpChat/Commands/SockChatClientCommandContext.cs b/SharpChat.SockChat/Commands/SockChatClientCommandContext.cs
similarity index 78%
rename from SharpChat/Commands/SockChatClientCommandContext.cs
rename to SharpChat.SockChat/Commands/SockChatClientCommandContext.cs
index 9c0a1d7..cc28a8f 100644
--- a/SharpChat/Commands/SockChatClientCommandContext.cs
+++ b/SharpChat.SockChat/Commands/SockChatClientCommandContext.cs
@@ -1,20 +1,20 @@
using System;
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class SockChatClientCommandContext {
public string Name { get; }
public string[] Args { get; }
- public ChatContext Chat { get; }
+ public SockChatContext Chat { get; }
public UserInfo User { get; }
- public ConnectionInfo Connection { get; }
+ public SockChatConnectionInfo Connection { get; }
public ChannelInfo Channel { get; }
public SockChatClientCommandContext(
string text,
- ChatContext chat,
+ SockChatContext chat,
UserInfo user,
- ConnectionInfo connection,
+ SockChatConnectionInfo connection,
ChannelInfo channel
) {
Chat = chat;
diff --git a/SharpChat/Commands/UserAFKCommand.cs b/SharpChat.SockChat/Commands/UserAFKCommand.cs
similarity index 95%
rename from SharpChat/Commands/UserAFKCommand.cs
rename to SharpChat.SockChat/Commands/UserAFKCommand.cs
index 12e2925..b90ef31 100644
--- a/SharpChat/Commands/UserAFKCommand.cs
+++ b/SharpChat.SockChat/Commands/UserAFKCommand.cs
@@ -1,6 +1,6 @@
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class UserAFKCommand : ISockChatClientCommand {
private const string DEFAULT = "AFK";
private const int MAX_LENGTH = 5;
diff --git a/SharpChat/Commands/UserNickCommand.cs b/SharpChat.SockChat/Commands/UserNickCommand.cs
similarity index 96%
rename from SharpChat/Commands/UserNickCommand.cs
rename to SharpChat.SockChat/Commands/UserNickCommand.cs
index 46f9424..cdde2b1 100644
--- a/SharpChat/Commands/UserNickCommand.cs
+++ b/SharpChat.SockChat/Commands/UserNickCommand.cs
@@ -1,7 +1,7 @@
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class UserNickCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("nick");
diff --git a/SharpChat/Commands/WhoCommand.cs b/SharpChat.SockChat/Commands/WhoCommand.cs
similarity index 95%
rename from SharpChat/Commands/WhoCommand.cs
rename to SharpChat.SockChat/Commands/WhoCommand.cs
index 2c2139a..474234b 100644
--- a/SharpChat/Commands/WhoCommand.cs
+++ b/SharpChat.SockChat/Commands/WhoCommand.cs
@@ -1,7 +1,7 @@
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class WhoCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("who");
diff --git a/SharpChat/Commands/WhoisCommand.cs b/SharpChat.SockChat/Commands/WhoisCommand.cs
similarity index 93%
rename from SharpChat/Commands/WhoisCommand.cs
rename to SharpChat.SockChat/Commands/WhoisCommand.cs
index 5045db2..1b66044 100644
--- a/SharpChat/Commands/WhoisCommand.cs
+++ b/SharpChat.SockChat/Commands/WhoisCommand.cs
@@ -1,7 +1,7 @@
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System.Linq;
-namespace SharpChat.Commands {
+namespace SharpChat.SockChat.Commands {
public class WhoisCommand : ISockChatClientCommand {
public bool IsMatch(SockChatClientCommandContext ctx) {
return ctx.NameEquals("ip")
diff --git a/SharpChat/PacketsC2S/AuthC2SPacketHandler.cs b/SharpChat.SockChat/PacketsC2S/AuthC2SPacketHandler.cs
similarity index 98%
rename from SharpChat/PacketsC2S/AuthC2SPacketHandler.cs
rename to SharpChat.SockChat/PacketsC2S/AuthC2SPacketHandler.cs
index 50bce6a..5ec01e9 100644
--- a/SharpChat/PacketsC2S/AuthC2SPacketHandler.cs
+++ b/SharpChat.SockChat/PacketsC2S/AuthC2SPacketHandler.cs
@@ -1,13 +1,13 @@
using SharpChat.Config;
using SharpChat.Misuzu;
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
-namespace SharpChat.PacketsC2S {
+namespace SharpChat.SockChat.PacketsC2S {
public class AuthC2SPacketHandler : IC2SPacketHandler {
public const string MOTD_FILE = @"welcome.txt";
diff --git a/SharpChat/PacketsC2S/C2SPacketHandlerContext.cs b/SharpChat.SockChat/PacketsC2S/C2SPacketHandlerContext.cs
similarity index 62%
rename from SharpChat/PacketsC2S/C2SPacketHandlerContext.cs
rename to SharpChat.SockChat/PacketsC2S/C2SPacketHandlerContext.cs
index f567e5c..a71506c 100644
--- a/SharpChat/PacketsC2S/C2SPacketHandlerContext.cs
+++ b/SharpChat.SockChat/PacketsC2S/C2SPacketHandlerContext.cs
@@ -1,10 +1,10 @@
-namespace SharpChat.PacketsC2S {
+namespace SharpChat.SockChat.PacketsC2S {
public class C2SPacketHandlerContext {
public string Text { get; }
- public ChatContext Chat { get; }
- public ConnectionInfo Connection { get; }
+ public SockChatContext Chat { get; }
+ public SockChatConnectionInfo Connection { get; }
- public C2SPacketHandlerContext(string text, ChatContext chat, ConnectionInfo connection) {
+ public C2SPacketHandlerContext(string text, SockChatContext chat, SockChatConnectionInfo connection) {
Text = text;
Chat = chat;
Connection = connection;
diff --git a/SharpChat/PacketsC2S/IC2SPacketHandler.cs b/SharpChat.SockChat/PacketsC2S/IC2SPacketHandler.cs
similarity index 76%
rename from SharpChat/PacketsC2S/IC2SPacketHandler.cs
rename to SharpChat.SockChat/PacketsC2S/IC2SPacketHandler.cs
index 844e8b9..8cba17c 100644
--- a/SharpChat/PacketsC2S/IC2SPacketHandler.cs
+++ b/SharpChat.SockChat/PacketsC2S/IC2SPacketHandler.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsC2S {
+namespace SharpChat.SockChat.PacketsC2S {
public interface IC2SPacketHandler {
bool IsMatch(C2SPacketHandlerContext ctx);
void Handle(C2SPacketHandlerContext ctx);
diff --git a/SharpChat/PacketsC2S/PingC2SPacketHandler.cs b/SharpChat.SockChat/PacketsC2S/PingC2SPacketHandler.cs
similarity index 96%
rename from SharpChat/PacketsC2S/PingC2SPacketHandler.cs
rename to SharpChat.SockChat/PacketsC2S/PingC2SPacketHandler.cs
index f2509b8..5ce6f08 100644
--- a/SharpChat/PacketsC2S/PingC2SPacketHandler.cs
+++ b/SharpChat.SockChat/PacketsC2S/PingC2SPacketHandler.cs
@@ -1,11 +1,11 @@
using SharpChat.Misuzu;
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
-namespace SharpChat.PacketsC2S {
+namespace SharpChat.SockChat.PacketsC2S {
public class PingC2SPacketHandler : IC2SPacketHandler {
private readonly MisuzuClient Misuzu;
diff --git a/SharpChat/PacketsC2S/SendMessageC2SPacketHandler.cs b/SharpChat.SockChat/PacketsC2S/SendMessageC2SPacketHandler.cs
similarity index 96%
rename from SharpChat/PacketsC2S/SendMessageC2SPacketHandler.cs
rename to SharpChat.SockChat/PacketsC2S/SendMessageC2SPacketHandler.cs
index 676639a..9a02e3c 100644
--- a/SharpChat/PacketsC2S/SendMessageC2SPacketHandler.cs
+++ b/SharpChat.SockChat/PacketsC2S/SendMessageC2SPacketHandler.cs
@@ -1,11 +1,11 @@
-using SharpChat.Commands;
-using SharpChat.Config;
+using SharpChat.Config;
using SharpChat.Events;
+using SharpChat.SockChat.Commands;
using System;
using System.Collections.Generic;
using System.Linq;
-namespace SharpChat.PacketsC2S {
+namespace SharpChat.SockChat.PacketsC2S {
public class SendMessageC2SPacketHandler : IC2SPacketHandler {
private readonly CachedValue MaxMessageLength;
diff --git a/SharpChat/PacketsS2C/AuthFailS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/AuthFailS2CPacket.cs
similarity index 96%
rename from SharpChat/PacketsS2C/AuthFailS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/AuthFailS2CPacket.cs
index 38140c6..4b511cb 100644
--- a/SharpChat/PacketsS2C/AuthFailS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/AuthFailS2CPacket.cs
@@ -1,6 +1,6 @@
using System;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class AuthFailS2CPacket : SockChatS2CPacket {
public enum FailReason {
AuthInvalid,
diff --git a/SharpChat/PacketsS2C/AuthSuccessS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/AuthSuccessS2CPacket.cs
similarity index 97%
rename from SharpChat/PacketsS2C/AuthSuccessS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/AuthSuccessS2CPacket.cs
index 6844139..ba653b3 100644
--- a/SharpChat/PacketsS2C/AuthSuccessS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/AuthSuccessS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class AuthSuccessS2CPacket : SockChatS2CPacket {
private readonly long UserId;
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/BanListResponseS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/BanListResponseS2CPacket.cs
similarity index 94%
rename from SharpChat/PacketsS2C/BanListResponseS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/BanListResponseS2CPacket.cs
index 5ea307f..7e49752 100644
--- a/SharpChat/PacketsS2C/BanListResponseS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/BanListResponseS2CPacket.cs
@@ -1,6 +1,6 @@
using System.Text;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class BanListResponseS2CPacket : SockChatTimedS2CPacket {
private readonly string[] Bans;
diff --git a/SharpChat/PacketsS2C/ChannelCreateResponseS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelCreateResponseS2CPacket.cs
similarity index 92%
rename from SharpChat/PacketsS2C/ChannelCreateResponseS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelCreateResponseS2CPacket.cs
index 5a8c32b..b681530 100644
--- a/SharpChat/PacketsS2C/ChannelCreateResponseS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelCreateResponseS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelCreateResponseS2CPacket : SockChatTimedS2CPacket {
private readonly string ChannelName;
diff --git a/SharpChat/PacketsS2C/ChannelCreateS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelCreateS2CPacket.cs
similarity index 94%
rename from SharpChat/PacketsS2C/ChannelCreateS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelCreateS2CPacket.cs
index b9d6021..e3a2aa0 100644
--- a/SharpChat/PacketsS2C/ChannelCreateS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelCreateS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelCreateS2CPacket : SockChatS2CPacket {
private readonly string ChannelName;
private readonly bool ChannelHasPassword;
diff --git a/SharpChat/PacketsS2C/ChannelDeleteNotAllowedErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelDeleteNotAllowedErrorS2CPacket.cs
similarity index 92%
rename from SharpChat/PacketsS2C/ChannelDeleteNotAllowedErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelDeleteNotAllowedErrorS2CPacket.cs
index b22f40c..468d5ea 100644
--- a/SharpChat/PacketsS2C/ChannelDeleteNotAllowedErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelDeleteNotAllowedErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelDeleteNotAllowedErrorS2CPacket : SockChatTimedS2CPacket {
private readonly string ChannelName;
diff --git a/SharpChat/PacketsS2C/ChannelDeleteResponseS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelDeleteResponseS2CPacket.cs
similarity index 92%
rename from SharpChat/PacketsS2C/ChannelDeleteResponseS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelDeleteResponseS2CPacket.cs
index 19ca5e4..45c5d79 100644
--- a/SharpChat/PacketsS2C/ChannelDeleteResponseS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelDeleteResponseS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelDeleteResponseS2CPacket : SockChatTimedS2CPacket {
private readonly string ChannelName;
diff --git a/SharpChat/PacketsS2C/ChannelDeleteS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelDeleteS2CPacket.cs
similarity index 90%
rename from SharpChat/PacketsS2C/ChannelDeleteS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelDeleteS2CPacket.cs
index aadac7e..d2fcfd7 100644
--- a/SharpChat/PacketsS2C/ChannelDeleteS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelDeleteS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelDeleteS2CPacket : SockChatS2CPacket {
private readonly string ChannelName;
diff --git a/SharpChat/PacketsS2C/ChannelNameFormatErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelNameFormatErrorS2CPacket.cs
similarity index 87%
rename from SharpChat/PacketsS2C/ChannelNameFormatErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelNameFormatErrorS2CPacket.cs
index 74f2f41..542cecb 100644
--- a/SharpChat/PacketsS2C/ChannelNameFormatErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelNameFormatErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelNameFormatErrorS2CPacket : SockChatTimedS2CPacket {
public override string Pack() {
return string.Format(
diff --git a/SharpChat/PacketsS2C/ChannelNameInUseErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelNameInUseErrorS2CPacket.cs
similarity index 92%
rename from SharpChat/PacketsS2C/ChannelNameInUseErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelNameInUseErrorS2CPacket.cs
index 4c6a9ae..c0ae77d 100644
--- a/SharpChat/PacketsS2C/ChannelNameInUseErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelNameInUseErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelNameInUseErrorS2CPacket : SockChatTimedS2CPacket {
private readonly string ChannelName;
diff --git a/SharpChat/PacketsS2C/ChannelNotFoundErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelNotFoundErrorS2CPacket.cs
similarity index 92%
rename from SharpChat/PacketsS2C/ChannelNotFoundErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelNotFoundErrorS2CPacket.cs
index 3a18830..786cc9a 100644
--- a/SharpChat/PacketsS2C/ChannelNotFoundErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelNotFoundErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelNotFoundErrorS2CPacket : SockChatTimedS2CPacket {
private readonly string ChannelName;
diff --git a/SharpChat/PacketsS2C/ChannelPasswordChangedResponseS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelPasswordChangedResponseS2CPacket.cs
similarity index 87%
rename from SharpChat/PacketsS2C/ChannelPasswordChangedResponseS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelPasswordChangedResponseS2CPacket.cs
index 282729b..8a09a37 100644
--- a/SharpChat/PacketsS2C/ChannelPasswordChangedResponseS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelPasswordChangedResponseS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelPasswordChangedResponseS2CPacket : SockChatTimedS2CPacket {
public override string Pack() {
return string.Format(
diff --git a/SharpChat/PacketsS2C/ChannelPasswordWrongErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelPasswordWrongErrorS2CPacket.cs
similarity index 92%
rename from SharpChat/PacketsS2C/ChannelPasswordWrongErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelPasswordWrongErrorS2CPacket.cs
index 18d513c..3bb7236 100644
--- a/SharpChat/PacketsS2C/ChannelPasswordWrongErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelPasswordWrongErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelPasswordWrongErrorS2CPacket : SockChatTimedS2CPacket {
private readonly string ChannelName;
diff --git a/SharpChat/PacketsS2C/ChannelRankChangedResponseS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelRankChangedResponseS2CPacket.cs
similarity index 87%
rename from SharpChat/PacketsS2C/ChannelRankChangedResponseS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelRankChangedResponseS2CPacket.cs
index c5635b0..ab9845f 100644
--- a/SharpChat/PacketsS2C/ChannelRankChangedResponseS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelRankChangedResponseS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelRankChangedResponseS2CPacket : SockChatTimedS2CPacket {
public override string Pack() {
return string.Format(
diff --git a/SharpChat/PacketsS2C/ChannelRankTooHighErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelRankTooHighErrorS2CPacket.cs
similarity index 87%
rename from SharpChat/PacketsS2C/ChannelRankTooHighErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelRankTooHighErrorS2CPacket.cs
index c8c9d53..3ff244f 100644
--- a/SharpChat/PacketsS2C/ChannelRankTooHighErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelRankTooHighErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelRankTooHighErrorS2CPacket : SockChatTimedS2CPacket {
public override string Pack() {
return string.Format(
diff --git a/SharpChat/PacketsS2C/ChannelRankTooLowErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelRankTooLowErrorS2CPacket.cs
similarity index 92%
rename from SharpChat/PacketsS2C/ChannelRankTooLowErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelRankTooLowErrorS2CPacket.cs
index e13e17a..718213c 100644
--- a/SharpChat/PacketsS2C/ChannelRankTooLowErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelRankTooLowErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelRankTooLowErrorS2CPacket : SockChatTimedS2CPacket {
private readonly string ChannelName;
diff --git a/SharpChat/PacketsS2C/ChannelUpdateS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelUpdateS2CPacket.cs
similarity index 95%
rename from SharpChat/PacketsS2C/ChannelUpdateS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelUpdateS2CPacket.cs
index 2fb687b..35eb5e4 100644
--- a/SharpChat/PacketsS2C/ChannelUpdateS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelUpdateS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelUpdateS2CPacket : SockChatS2CPacket {
private readonly string ChannelNamePrevious;
private readonly string ChannelNameNew;
diff --git a/SharpChat/PacketsS2C/ChannelsPopulateS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ChannelsPopulateS2CPacket.cs
similarity index 95%
rename from SharpChat/PacketsS2C/ChannelsPopulateS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ChannelsPopulateS2CPacket.cs
index b5d7dc5..0527134 100644
--- a/SharpChat/PacketsS2C/ChannelsPopulateS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ChannelsPopulateS2CPacket.cs
@@ -1,6 +1,6 @@
using System.Text;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ChannelsPopulateS2CPacket : SockChatS2CPacket {
public record ListEntry(string Name, bool HasPassword, bool IsTemporary);
diff --git a/SharpChat/PacketsS2C/CommandFormatErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/CommandFormatErrorS2CPacket.cs
similarity index 87%
rename from SharpChat/PacketsS2C/CommandFormatErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/CommandFormatErrorS2CPacket.cs
index 91814e1..c78feb5 100644
--- a/SharpChat/PacketsS2C/CommandFormatErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/CommandFormatErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class CommandFormatErrorS2CPacket : SockChatTimedS2CPacket {
public override string Pack() {
return string.Format(
diff --git a/SharpChat/PacketsS2C/CommandNotAllowedErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/CommandNotAllowedErrorS2CPacket.cs
similarity index 91%
rename from SharpChat/PacketsS2C/CommandNotAllowedErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/CommandNotAllowedErrorS2CPacket.cs
index 33a4743..6b1914b 100644
--- a/SharpChat/PacketsS2C/CommandNotAllowedErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/CommandNotAllowedErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class CommandNotAllowedErrorS2CPacket : SockChatTimedS2CPacket {
private readonly string CommandName;
diff --git a/SharpChat/PacketsS2C/ContextClearS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ContextClearS2CPacket.cs
similarity index 91%
rename from SharpChat/PacketsS2C/ContextClearS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ContextClearS2CPacket.cs
index a9b5803..f76b7a7 100644
--- a/SharpChat/PacketsS2C/ContextClearS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ContextClearS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ContextClearS2CPacket : SockChatS2CPacket {
public enum ClearMode {
Messages = 0,
diff --git a/SharpChat/PacketsS2C/FloodWarningS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/FloodWarningS2CPacket.cs
similarity index 86%
rename from SharpChat/PacketsS2C/FloodWarningS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/FloodWarningS2CPacket.cs
index f29f84e..9cfd9f7 100644
--- a/SharpChat/PacketsS2C/FloodWarningS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/FloodWarningS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class FloodWarningS2CPacket : SockChatTimedS2CPacket {
public override string Pack() {
return string.Format(
diff --git a/SharpChat/PacketsS2C/ForceDisconnectS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/ForceDisconnectS2CPacket.cs
similarity index 92%
rename from SharpChat/PacketsS2C/ForceDisconnectS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/ForceDisconnectS2CPacket.cs
index 1880c10..052213a 100644
--- a/SharpChat/PacketsS2C/ForceDisconnectS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/ForceDisconnectS2CPacket.cs
@@ -1,6 +1,6 @@
using System;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class ForceDisconnectS2CPacket : SockChatS2CPacket {
private readonly long Expires;
diff --git a/SharpChat/PacketsS2C/KickBanNoRecordErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/KickBanNoRecordErrorS2CPacket.cs
similarity index 91%
rename from SharpChat/PacketsS2C/KickBanNoRecordErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/KickBanNoRecordErrorS2CPacket.cs
index 3d740a1..e3914e3 100644
--- a/SharpChat/PacketsS2C/KickBanNoRecordErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/KickBanNoRecordErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class KickBanNoRecordErrorS2CPacket : SockChatTimedS2CPacket {
private readonly string TargetName;
diff --git a/SharpChat/PacketsS2C/KickBanNotAllowedErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/KickBanNotAllowedErrorS2CPacket.cs
similarity index 91%
rename from SharpChat/PacketsS2C/KickBanNotAllowedErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/KickBanNotAllowedErrorS2CPacket.cs
index 41dca46..a471d6e 100644
--- a/SharpChat/PacketsS2C/KickBanNotAllowedErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/KickBanNotAllowedErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class KickBanNotAllowedErrorS2CPacket : SockChatTimedS2CPacket {
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/MOTDS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/MOTDS2CPacket.cs
similarity index 92%
rename from SharpChat/PacketsS2C/MOTDS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/MOTDS2CPacket.cs
index d4afb0e..25aba1b 100644
--- a/SharpChat/PacketsS2C/MOTDS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/MOTDS2CPacket.cs
@@ -1,6 +1,6 @@
using System;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class MOTDS2CPacket : SockChatTimedS2CPacket {
private readonly string Body;
diff --git a/SharpChat/PacketsS2C/MessageAddLogS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/MessageAddLogS2CPacket.cs
similarity index 98%
rename from SharpChat/PacketsS2C/MessageAddLogS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/MessageAddLogS2CPacket.cs
index 625a72d..9ca3837 100644
--- a/SharpChat/PacketsS2C/MessageAddLogS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/MessageAddLogS2CPacket.cs
@@ -1,6 +1,6 @@
using System;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class MessageAddLogS2CPacket : SockChatTimedS2CPacket {
private readonly long UserId;
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/MessageAddS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/MessageAddS2CPacket.cs
similarity index 96%
rename from SharpChat/PacketsS2C/MessageAddS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/MessageAddS2CPacket.cs
index 4fb3295..65e3761 100644
--- a/SharpChat/PacketsS2C/MessageAddS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/MessageAddS2CPacket.cs
@@ -1,6 +1,6 @@
using System;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class MessageAddS2CPacket : SockChatTimedS2CPacket {
private readonly long UserId;
private readonly string Body;
diff --git a/SharpChat/PacketsS2C/MessageBroadcastS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/MessageBroadcastS2CPacket.cs
similarity index 91%
rename from SharpChat/PacketsS2C/MessageBroadcastS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/MessageBroadcastS2CPacket.cs
index 6feec92..3effe63 100644
--- a/SharpChat/PacketsS2C/MessageBroadcastS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/MessageBroadcastS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class MessageBroadcastS2CPacket : SockChatTimedS2CPacket {
private readonly string Body;
diff --git a/SharpChat/PacketsS2C/MessageDeleteNotAllowedErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/MessageDeleteNotAllowedErrorS2CPacket.cs
similarity index 87%
rename from SharpChat/PacketsS2C/MessageDeleteNotAllowedErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/MessageDeleteNotAllowedErrorS2CPacket.cs
index e68c29b..6fce7ac 100644
--- a/SharpChat/PacketsS2C/MessageDeleteNotAllowedErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/MessageDeleteNotAllowedErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class MessageDeleteNotAllowedErrorS2CPacket : SockChatTimedS2CPacket {
public override string Pack() {
return string.Format(
diff --git a/SharpChat/PacketsS2C/MessageDeleteS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/MessageDeleteS2CPacket.cs
similarity index 88%
rename from SharpChat/PacketsS2C/MessageDeleteS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/MessageDeleteS2CPacket.cs
index 6309e21..846962e 100644
--- a/SharpChat/PacketsS2C/MessageDeleteS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/MessageDeleteS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class MessageDeleteS2CPacket : SockChatS2CPacket {
private readonly long DeletedMessageId;
diff --git a/SharpChat/PacketsS2C/PardonResponseS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/PardonResponseS2CPacket.cs
similarity index 91%
rename from SharpChat/PacketsS2C/PardonResponseS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/PardonResponseS2CPacket.cs
index e3a3ce0..aa1d8af 100644
--- a/SharpChat/PacketsS2C/PardonResponseS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/PardonResponseS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class PardonResponseS2CPacket : SockChatTimedS2CPacket {
private readonly string Subject;
diff --git a/SharpChat/PacketsS2C/PongS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/PongS2CPacket.cs
similarity index 75%
rename from SharpChat/PacketsS2C/PongS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/PongS2CPacket.cs
index ebcdc7e..ce332c1 100644
--- a/SharpChat/PacketsS2C/PongS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/PongS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class PongS2CPacket : SockChatS2CPacket {
public override string Pack() {
return "0\tpong";
diff --git a/SharpChat/PacketsS2C/SockChatS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/SockChatS2CPacket.cs
similarity index 87%
rename from SharpChat/PacketsS2C/SockChatS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/SockChatS2CPacket.cs
index 9a01b89..a38e5d5 100644
--- a/SharpChat/PacketsS2C/SockChatS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/SockChatS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public abstract class SockChatS2CPacket {
protected readonly long MessageId;
diff --git a/SharpChat/PacketsS2C/SockChatTimedS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/SockChatTimedS2CPacket.cs
similarity index 92%
rename from SharpChat/PacketsS2C/SockChatTimedS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/SockChatTimedS2CPacket.cs
index 79d55b8..1ac2b4d 100644
--- a/SharpChat/PacketsS2C/SockChatTimedS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/SockChatTimedS2CPacket.cs
@@ -1,6 +1,6 @@
using System;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public abstract class SockChatTimedS2CPacket : SockChatS2CPacket {
protected readonly DateTimeOffset TimeStamp;
diff --git a/SharpChat/PacketsS2C/UserChannelForceJoinS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserChannelForceJoinS2CPacket.cs
similarity index 90%
rename from SharpChat/PacketsS2C/UserChannelForceJoinS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserChannelForceJoinS2CPacket.cs
index abe538b..17c1699 100644
--- a/SharpChat/PacketsS2C/UserChannelForceJoinS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserChannelForceJoinS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserChannelForceJoinS2CPacket : SockChatS2CPacket {
private readonly string ChannelName;
diff --git a/SharpChat/PacketsS2C/UserChannelJoinLogS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserChannelJoinLogS2CPacket.cs
similarity index 93%
rename from SharpChat/PacketsS2C/UserChannelJoinLogS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserChannelJoinLogS2CPacket.cs
index 37cfb8f..8ce40d8 100644
--- a/SharpChat/PacketsS2C/UserChannelJoinLogS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserChannelJoinLogS2CPacket.cs
@@ -1,6 +1,6 @@
using System;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserChannelJoinLogS2CPacket : SockChatTimedS2CPacket {
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/UserChannelJoinS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserChannelJoinS2CPacket.cs
similarity index 96%
rename from SharpChat/PacketsS2C/UserChannelJoinS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserChannelJoinS2CPacket.cs
index d003992..9c9a1e3 100644
--- a/SharpChat/PacketsS2C/UserChannelJoinS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserChannelJoinS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserChannelJoinS2CPacket : SockChatS2CPacket {
private readonly long UserId;
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/UserChannelLeaveLogS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserChannelLeaveLogS2CPacket.cs
similarity index 93%
rename from SharpChat/PacketsS2C/UserChannelLeaveLogS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserChannelLeaveLogS2CPacket.cs
index 48a2ba8..3ee9c3a 100644
--- a/SharpChat/PacketsS2C/UserChannelLeaveLogS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserChannelLeaveLogS2CPacket.cs
@@ -1,6 +1,6 @@
using System;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserChannelLeaveLogS2CPacket : SockChatTimedS2CPacket {
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/UserChannelLeaveS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserChannelLeaveS2CPacket.cs
similarity index 89%
rename from SharpChat/PacketsS2C/UserChannelLeaveS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserChannelLeaveS2CPacket.cs
index eb83820..52ba001 100644
--- a/SharpChat/PacketsS2C/UserChannelLeaveS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserChannelLeaveS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserChannelLeaveS2CPacket : SockChatS2CPacket {
private readonly long UserId;
diff --git a/SharpChat/PacketsS2C/UserConnectLogS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserConnectLogS2CPacket.cs
similarity index 93%
rename from SharpChat/PacketsS2C/UserConnectLogS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserConnectLogS2CPacket.cs
index 9f2219d..2710233 100644
--- a/SharpChat/PacketsS2C/UserConnectLogS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserConnectLogS2CPacket.cs
@@ -1,6 +1,6 @@
using System;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserConnectLogS2CPacket : SockChatTimedS2CPacket {
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/UserConnectS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserConnectS2CPacket.cs
similarity index 96%
rename from SharpChat/PacketsS2C/UserConnectS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserConnectS2CPacket.cs
index c6e090c..9ca32c5 100644
--- a/SharpChat/PacketsS2C/UserConnectS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserConnectS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserConnectS2CPacket : SockChatTimedS2CPacket {
private readonly long UserId;
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/UserDisconnectLogS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserDisconnectLogS2CPacket.cs
similarity index 96%
rename from SharpChat/PacketsS2C/UserDisconnectLogS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserDisconnectLogS2CPacket.cs
index 8343a6e..21e259a 100644
--- a/SharpChat/PacketsS2C/UserDisconnectLogS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserDisconnectLogS2CPacket.cs
@@ -1,6 +1,6 @@
using System;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserDisconnectLogS2CPacket : SockChatTimedS2CPacket {
private readonly string UserName;
private readonly UserDisconnectReason Reason;
diff --git a/SharpChat/PacketsS2C/UserDisconnectS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserDisconnectS2CPacket.cs
similarity index 95%
rename from SharpChat/PacketsS2C/UserDisconnectS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserDisconnectS2CPacket.cs
index 2d365c7..41e9f12 100644
--- a/SharpChat/PacketsS2C/UserDisconnectS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserDisconnectS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserDisconnectS2CPacket : SockChatTimedS2CPacket {
private readonly long UserId;
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/UserNameInUseErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserNameInUseErrorS2CPacket.cs
similarity index 91%
rename from SharpChat/PacketsS2C/UserNameInUseErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserNameInUseErrorS2CPacket.cs
index a166623..61e6671 100644
--- a/SharpChat/PacketsS2C/UserNameInUseErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserNameInUseErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserNameInUseErrorS2CPacket : SockChatTimedS2CPacket {
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/UserNotFoundErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserNotFoundErrorS2CPacket.cs
similarity index 91%
rename from SharpChat/PacketsS2C/UserNotFoundErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserNotFoundErrorS2CPacket.cs
index 7967f8a..4aaf821 100644
--- a/SharpChat/PacketsS2C/UserNotFoundErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserNotFoundErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserNotFoundErrorS2CPacket : SockChatTimedS2CPacket {
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/UserUpdateNotificationS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserUpdateNotificationS2CPacket.cs
similarity index 93%
rename from SharpChat/PacketsS2C/UserUpdateNotificationS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserUpdateNotificationS2CPacket.cs
index 17c084c..909dd0d 100644
--- a/SharpChat/PacketsS2C/UserUpdateNotificationS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserUpdateNotificationS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserUpdateNotificationS2CPacket : SockChatTimedS2CPacket {
private readonly string PreviousName;
private readonly string NewName;
diff --git a/SharpChat/PacketsS2C/UserUpdateS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UserUpdateS2CPacket.cs
similarity index 96%
rename from SharpChat/PacketsS2C/UserUpdateS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UserUpdateS2CPacket.cs
index 891fb93..4ba5055 100644
--- a/SharpChat/PacketsS2C/UserUpdateS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UserUpdateS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UserUpdateS2CPacket : SockChatS2CPacket {
private readonly long UserId;
private readonly string UserName;
diff --git a/SharpChat/PacketsS2C/UsersPopulateS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/UsersPopulateS2CPacket.cs
similarity index 96%
rename from SharpChat/PacketsS2C/UsersPopulateS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/UsersPopulateS2CPacket.cs
index c0ddbf8..ec2a499 100644
--- a/SharpChat/PacketsS2C/UsersPopulateS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/UsersPopulateS2CPacket.cs
@@ -1,6 +1,6 @@
using System.Text;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class UsersPopulateS2CPacket : SockChatS2CPacket {
public record ListEntry(long Id, string Name, Colour Colour, int Rank, UserPermissions Perms, bool Visible);
diff --git a/SharpChat/PacketsS2C/WhoChannelNotFoundErrorS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/WhoChannelNotFoundErrorS2CPacket.cs
similarity index 92%
rename from SharpChat/PacketsS2C/WhoChannelNotFoundErrorS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/WhoChannelNotFoundErrorS2CPacket.cs
index 5a87faa..c9b3d49 100644
--- a/SharpChat/PacketsS2C/WhoChannelNotFoundErrorS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/WhoChannelNotFoundErrorS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class WhoChannelNotFoundErrorS2CPacket : SockChatTimedS2CPacket {
private readonly string ChannelName;
diff --git a/SharpChat/PacketsS2C/WhoChannelResponseS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/WhoChannelResponseS2CPacket.cs
similarity index 96%
rename from SharpChat/PacketsS2C/WhoChannelResponseS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/WhoChannelResponseS2CPacket.cs
index 824ba26..73299ec 100644
--- a/SharpChat/PacketsS2C/WhoChannelResponseS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/WhoChannelResponseS2CPacket.cs
@@ -1,7 +1,7 @@
using System;
using System.Text;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class WhoChannelResponseS2CPacket : SockChatTimedS2CPacket {
private readonly string ChannelName;
private readonly string[] Users;
diff --git a/SharpChat/PacketsS2C/WhoServerResponseS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/WhoServerResponseS2CPacket.cs
similarity index 96%
rename from SharpChat/PacketsS2C/WhoServerResponseS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/WhoServerResponseS2CPacket.cs
index d369248..6dd7983 100644
--- a/SharpChat/PacketsS2C/WhoServerResponseS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/WhoServerResponseS2CPacket.cs
@@ -1,7 +1,7 @@
using System;
using System.Text;
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class WhoServerResponseS2CPacket : SockChatTimedS2CPacket {
private readonly string[] Users;
private readonly string SelfName;
diff --git a/SharpChat/PacketsS2C/WhoisResponseS2CPacket.cs b/SharpChat.SockChat/PacketsS2C/WhoisResponseS2CPacket.cs
similarity index 93%
rename from SharpChat/PacketsS2C/WhoisResponseS2CPacket.cs
rename to SharpChat.SockChat/PacketsS2C/WhoisResponseS2CPacket.cs
index 7faedd5..69d7d74 100644
--- a/SharpChat/PacketsS2C/WhoisResponseS2CPacket.cs
+++ b/SharpChat.SockChat/PacketsS2C/WhoisResponseS2CPacket.cs
@@ -1,4 +1,4 @@
-namespace SharpChat.PacketsS2C {
+namespace SharpChat.SockChat.PacketsS2C {
public class WhoisResponseS2CPacket : SockChatTimedS2CPacket {
private readonly string UserName;
private readonly string RemoteAddress;
diff --git a/SharpChat.SockChat/SharpChat.SockChat.csproj b/SharpChat.SockChat/SharpChat.SockChat.csproj
new file mode 100644
index 0000000..e595e12
--- /dev/null
+++ b/SharpChat.SockChat/SharpChat.SockChat.csproj
@@ -0,0 +1,17 @@
+
+
+
+ net6.0
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SharpChat/ConnectionInfo.cs b/SharpChat.SockChat/SockChatConnectionInfo.cs
similarity index 91%
rename from SharpChat/ConnectionInfo.cs
rename to SharpChat.SockChat/SockChatConnectionInfo.cs
index 8fedf25..25fafcd 100644
--- a/SharpChat/ConnectionInfo.cs
+++ b/SharpChat.SockChat/SockChatConnectionInfo.cs
@@ -1,10 +1,10 @@
using Fleck;
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat.PacketsS2C;
using System;
using System.Net;
-namespace SharpChat {
- public class ConnectionInfo {
+namespace SharpChat.SockChat {
+ public class SockChatConnectionInfo {
public IWebSocketConnection Socket { get; }
public DateTimeOffset LastPing { get; private set; }
@@ -14,7 +14,7 @@ namespace SharpChat {
public ushort RemotePort { get; }
public string RemoteEndPoint { get; }
- public ConnectionInfo(IWebSocketConnection sock) {
+ public SockChatConnectionInfo(IWebSocketConnection sock) {
Socket = sock;
BumpPing();
diff --git a/SharpChat/ConnectionsContext.cs b/SharpChat.SockChat/SockChatConnectionsContext.cs
similarity index 69%
rename from SharpChat/ConnectionsContext.cs
rename to SharpChat.SockChat/SockChatConnectionsContext.cs
index f1b53ea..82f6b12 100644
--- a/SharpChat/ConnectionsContext.cs
+++ b/SharpChat.SockChat/SockChatConnectionsContext.cs
@@ -2,31 +2,31 @@
using System.Collections.Generic;
using System.Linq;
-namespace SharpChat {
- public class ConnectionsContext {
+namespace SharpChat.SockChat {
+ public class SockChatConnectionsContext {
public static readonly TimeSpan TimeOut = TimeSpan.FromMinutes(5);
- private readonly HashSet Connections = new();
- private readonly HashSet AuthedConnections = new();
- private readonly Dictionary> UserConnections = new();
+ private readonly HashSet Connections = new();
+ private readonly HashSet AuthedConnections = new();
+ private readonly Dictionary> UserConnections = new();
- public ConnectionInfo[] All => Connections.ToArray();
- public ConnectionInfo[] Authed => AuthedConnections.ToArray();
+ public SockChatConnectionInfo[] All => Connections.ToArray();
+ public SockChatConnectionInfo[] Authed => AuthedConnections.ToArray();
- public void WithAll(Action body) {
- foreach(ConnectionInfo conn in Connections)
+ public void WithAll(Action body) {
+ foreach(SockChatConnectionInfo conn in Connections)
body(conn);
}
- public void WithAuthed(Action body) {
- foreach(ConnectionInfo conn in AuthedConnections)
+ public void WithAuthed(Action body) {
+ foreach(SockChatConnectionInfo conn in AuthedConnections)
body(conn);
}
- public ConnectionInfo[] GetTimedOut() {
- List conns = new();
+ public SockChatConnectionInfo[] GetTimedOut() {
+ List conns = new();
- foreach(ConnectionInfo conn in Connections)
+ foreach(SockChatConnectionInfo conn in Connections)
if(DateTimeOffset.UtcNow - conn.LastPing > TimeOut)
conns.Add(conn);
@@ -49,33 +49,33 @@ namespace SharpChat {
return HasUser(userInfo.UserId);
}
- public ConnectionInfo[] GetUser(long userId) {
+ public SockChatConnectionInfo[] GetUser(long userId) {
if(!UserConnections.ContainsKey(userId))
- return Array.Empty();
+ return Array.Empty();
return UserConnections[userId].ToArray();
}
- public ConnectionInfo[] GetUser(UserInfo userInfo) {
+ public SockChatConnectionInfo[] GetUser(UserInfo userInfo) {
return GetUser(userInfo.UserId);
}
- public void WithUser(long userId, Action body) {
+ public void WithUser(long userId, Action body) {
if(!UserConnections.ContainsKey(userId))
return;
- foreach(ConnectionInfo conn in UserConnections[userId])
+ foreach(SockChatConnectionInfo conn in UserConnections[userId])
body(conn);
}
- public void WithUser(UserInfo userInfo, Action body) {
+ public void WithUser(UserInfo userInfo, Action body) {
WithUser(userInfo.UserId, body);
}
public string[] GetAllRemoteAddresses() {
HashSet addrs = new();
- foreach(ConnectionInfo conn in Connections)
+ foreach(SockChatConnectionInfo conn in Connections)
addrs.Add(conn.RemoteAddress);
return addrs.ToArray();
@@ -84,7 +84,7 @@ namespace SharpChat {
public string[] GetAuthedRemoteAddresses() {
HashSet addrs = new();
- foreach(ConnectionInfo conn in AuthedConnections)
+ foreach(SockChatConnectionInfo conn in AuthedConnections)
addrs.Add(conn.RemoteAddress);
return addrs.ToArray();
@@ -96,7 +96,7 @@ namespace SharpChat {
HashSet addrs = new();
- foreach(ConnectionInfo conn in UserConnections[userId])
+ foreach(SockChatConnectionInfo conn in UserConnections[userId])
addrs.Add(conn.RemoteAddress);
return addrs.ToArray();
@@ -106,7 +106,7 @@ namespace SharpChat {
return GetUserRemoteAddresses(userInfo.UserId);
}
- public void Add(ConnectionInfo conn) {
+ public void Add(SockChatConnectionInfo conn) {
if(Connections.Contains(conn))
return;
@@ -122,7 +122,7 @@ namespace SharpChat {
}
}
- public void Remove(ConnectionInfo conn) {
+ public void Remove(SockChatConnectionInfo conn) {
if(Connections.Contains(conn))
Connections.Remove(conn);
@@ -137,7 +137,7 @@ namespace SharpChat {
}
}
- public void SetUser(ConnectionInfo conn, long userId) {
+ public void SetUser(SockChatConnectionInfo conn, long userId) {
if(!Connections.Contains(conn))
return;
@@ -169,7 +169,7 @@ namespace SharpChat {
}
}
- public void SetUser(ConnectionInfo conn, UserInfo userInfo) {
+ public void SetUser(SockChatConnectionInfo conn, UserInfo userInfo) {
SetUser(conn, userInfo.UserId);
}
}
diff --git a/SharpChat/ChatContext.cs b/SharpChat.SockChat/SockChatContext.cs
similarity index 97%
rename from SharpChat/ChatContext.cs
rename to SharpChat.SockChat/SockChatContext.cs
index 3b54454..01b6a7b 100644
--- a/SharpChat/ChatContext.cs
+++ b/SharpChat.SockChat/SockChatContext.cs
@@ -1,23 +1,24 @@
using SharpChat.Events;
using SharpChat.EventStorage;
-using SharpChat.PacketsS2C;
+using SharpChat.SockChat;
+using SharpChat.SockChat.PacketsS2C;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
namespace SharpChat {
- public class ChatContext {
+ public class SockChatContext {
public readonly SemaphoreSlim ContextAccess = new(1, 1);
public ChannelsContext Channels { get; } = new();
- public ConnectionsContext Connections { get; } = new();
+ public SockChatConnectionsContext Connections { get; } = new();
public UsersContext Users { get; } = new();
public IEventStorage Events { get; }
public ChannelsUsersContext ChannelsUsers { get; } = new();
public Dictionary UserRateLimiters { get; } = new();
- public ChatContext(IEventStorage evtStore) {
+ public SockChatContext(IEventStorage evtStore) {
Events = evtStore;
}
@@ -78,8 +79,8 @@ namespace SharpChat {
}
public void Update() {
- ConnectionInfo[] timedOut = Connections.GetTimedOut();
- foreach(ConnectionInfo conn in timedOut) {
+ SockChatConnectionInfo[] timedOut = Connections.GetTimedOut();
+ foreach(SockChatConnectionInfo conn in timedOut) {
Connections.Remove(conn);
conn.Close(1002);
@@ -189,8 +190,8 @@ namespace SharpChat {
} else
SendTo(user, new ForceDisconnectS2CPacket());
- ConnectionInfo[] conns = Connections.GetUser(user);
- foreach(ConnectionInfo conn in conns) {
+ SockChatConnectionInfo[] conns = Connections.GetUser(user);
+ foreach(SockChatConnectionInfo conn in conns) {
Connections.Remove(conn);
conn.Close(1000);
@@ -242,7 +243,7 @@ namespace SharpChat {
});
}
- public void HandleJoin(UserInfo user, ChannelInfo chan, ConnectionInfo conn, int maxMsgLength) {
+ public void HandleJoin(UserInfo user, ChannelInfo chan, SockChatConnectionInfo conn, int maxMsgLength) {
if(!ChannelsUsers.Has(chan, user)) {
SendTo(chan, new UserConnectS2CPacket(
user.UserId,
diff --git a/SharpChat/SockChatServer.cs b/SharpChat.SockChat/SockChatServer.cs
similarity index 93%
rename from SharpChat/SockChatServer.cs
rename to SharpChat.SockChat/SockChatServer.cs
index 725a8de..0aa2f79 100644
--- a/SharpChat/SockChatServer.cs
+++ b/SharpChat.SockChat/SockChatServer.cs
@@ -1,17 +1,17 @@
using Fleck;
-using SharpChat.Commands;
using SharpChat.Config;
using SharpChat.EventStorage;
using SharpChat.Misuzu;
-using SharpChat.PacketsS2C;
-using SharpChat.PacketsC2S;
+using SharpChat.SockChat.Commands;
+using SharpChat.SockChat.PacketsC2S;
+using SharpChat.SockChat.PacketsS2C;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading;
-namespace SharpChat {
+namespace SharpChat.SockChat {
public class SockChatServer : IDisposable {
public const ushort DEFAULT_PORT = 6770;
public const int DEFAULT_MSG_LENGTH_MAX = 5000;
@@ -19,7 +19,7 @@ namespace SharpChat {
public const int DEFAULT_FLOOD_KICK_LENGTH = 30;
public IWebSocketServer Server { get; }
- public ChatContext Context { get; }
+ public SockChatContext Context { get; }
private readonly HttpClient HttpClient;
private readonly MisuzuClient Misuzu;
@@ -46,7 +46,7 @@ namespace SharpChat {
MaxConnections = config.ReadCached("connMaxCount", DEFAULT_MAX_CONNECTIONS);
FloodKickLength = config.ReadCached("floodKickLength", DEFAULT_FLOOD_KICK_LENGTH);
- Context = new ChatContext(evtStore);
+ Context = new SockChatContext(evtStore);
string[]? channelNames = config.ReadValue("channels", new[] { "lounge" });
@@ -104,7 +104,7 @@ namespace SharpChat {
});
ushort port = config.SafeReadValue("port", DEFAULT_PORT);
- Server = new SharpChatWebSocketServer($"ws://0.0.0.0:{port}");
+ Server = new SockChatWebSocketServer($"ws://0.0.0.0:{port}");
}
public void Listen(ManualResetEvent waitHandle) {
@@ -124,7 +124,7 @@ namespace SharpChat {
return;
}
- ConnectionInfo conn = new(sock);
+ SockChatConnectionInfo conn = new(sock);
Context.Connections.Add(conn);
sock.OnOpen = () => OnOpen(conn);
@@ -136,17 +136,17 @@ namespace SharpChat {
Logger.Write("Listening...");
}
- private void OnOpen(ConnectionInfo conn) {
+ private void OnOpen(SockChatConnectionInfo conn) {
Logger.Write($"Connection opened from {conn.RemoteEndPoint}");
Context.SafeUpdate();
}
- private void OnError(ConnectionInfo conn, Exception ex) {
+ private void OnError(SockChatConnectionInfo conn, Exception ex) {
Logger.Write($"<{conn.RemoteEndPoint}> {ex}");
Context.SafeUpdate();
}
- private void OnClose(ConnectionInfo conn) {
+ private void OnClose(SockChatConnectionInfo conn) {
Logger.Write($"Connection closed from {conn.RemoteEndPoint}");
Context.ContextAccess.Wait();
@@ -165,7 +165,7 @@ namespace SharpChat {
}
}
- private void OnMessage(ConnectionInfo conn, string msg) {
+ private void OnMessage(SockChatConnectionInfo conn, string msg) {
Context.SafeUpdate();
// this doesn't affect non-authed connections?????
diff --git a/SharpChat/SockChatUtility.cs b/SharpChat.SockChat/SockChatUtility.cs
similarity index 98%
rename from SharpChat/SockChatUtility.cs
rename to SharpChat.SockChat/SockChatUtility.cs
index 1d6aa2b..d6fe317 100644
--- a/SharpChat/SockChatUtility.cs
+++ b/SharpChat.SockChat/SockChatUtility.cs
@@ -1,7 +1,7 @@
using System;
using System.Text.RegularExpressions;
-namespace SharpChat {
+namespace SharpChat.SockChat {
public static class SockChatUtility {
private static readonly Regex ChannelName = new(@"[^A-Za-z0-9\-_]", RegexOptions.CultureInvariant | RegexOptions.Compiled);
diff --git a/SharpChat/SharpChatWebSocketServer.cs b/SharpChat.SockChat/SockChatWebSocketServer.cs
similarity index 97%
rename from SharpChat/SharpChatWebSocketServer.cs
rename to SharpChat.SockChat/SockChatWebSocketServer.cs
index e2ec842..fc8d81c 100644
--- a/SharpChat/SharpChatWebSocketServer.cs
+++ b/SharpChat.SockChat/SockChatWebSocketServer.cs
@@ -16,13 +16,13 @@ using System.Text;
// https://github.com/statianzo/Fleck/blob/1.1.0/src/Fleck/WebSocketServer.cs
namespace SharpChat {
- public class SharpChatWebSocketServer : IWebSocketServer {
+ public class SockChatWebSocketServer : IWebSocketServer {
private readonly string _scheme;
private readonly IPAddress _locationIP;
private Action _config;
- public SharpChatWebSocketServer(string location, bool supportDualStack = true) {
+ public SockChatWebSocketServer(string location, bool supportDualStack = true) {
Uri uri = new(location);
Port = uri.Port;
diff --git a/SharpChat.sln b/SharpChat.sln
index b79e108..7a43f9a 100644
--- a/SharpChat.sln
+++ b/SharpChat.sln
@@ -16,6 +16,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
start.sh = start.sh
EndProjectSection
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpChatCommon", "SharpChatCommon\SharpChatCommon.csproj", "{B2228E3C-E0DB-4AAF-A603-2A822B531F76}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpChat.SockChat", "SharpChat.SockChat\SharpChat.SockChat.csproj", "{4D48CCFB-5D3B-4AB6-AF94-04377474078C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpChat.Misuzu", "SharpChat.Misuzu\SharpChat.Misuzu.csproj", "{08FD8B99-011A-43F9-A6C9-A3C1979604CF}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -26,6 +32,18 @@ Global
{DDB24C19-B802-4C96-AC15-0449C6FC77F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DDB24C19-B802-4C96-AC15-0449C6FC77F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DDB24C19-B802-4C96-AC15-0449C6FC77F2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B2228E3C-E0DB-4AAF-A603-2A822B531F76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B2228E3C-E0DB-4AAF-A603-2A822B531F76}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B2228E3C-E0DB-4AAF-A603-2A822B531F76}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B2228E3C-E0DB-4AAF-A603-2A822B531F76}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4D48CCFB-5D3B-4AB6-AF94-04377474078C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4D48CCFB-5D3B-4AB6-AF94-04377474078C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4D48CCFB-5D3B-4AB6-AF94-04377474078C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4D48CCFB-5D3B-4AB6-AF94-04377474078C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {08FD8B99-011A-43F9-A6C9-A3C1979604CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {08FD8B99-011A-43F9-A6C9-A3C1979604CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {08FD8B99-011A-43F9-A6C9-A3C1979604CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {08FD8B99-011A-43F9-A6C9-A3C1979604CF}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/SharpChat/Program.cs b/SharpChat/Program.cs
index cd2fbb6..b8acec1 100644
--- a/SharpChat/Program.cs
+++ b/SharpChat/Program.cs
@@ -1,6 +1,7 @@
using SharpChat.Config;
using SharpChat.EventStorage;
using SharpChat.Misuzu;
+using SharpChat.SockChat;
using System;
using System.IO;
using System.Net.Http;
diff --git a/SharpChat/SharpChat.csproj b/SharpChat/SharpChat.csproj
index 4b3e98d..d73896f 100644
--- a/SharpChat/SharpChat.csproj
+++ b/SharpChat/SharpChat.csproj
@@ -6,11 +6,6 @@
enable
-
-
-
-
-
@@ -23,4 +18,10 @@
+
+
+
+
+
+
diff --git a/SharpChat/BuildInfo.cs b/SharpChatCommon/BuildInfo.cs
similarity index 89%
rename from SharpChat/BuildInfo.cs
rename to SharpChatCommon/BuildInfo.cs
index ccdfa58..6429065 100644
--- a/SharpChat/BuildInfo.cs
+++ b/SharpChatCommon/BuildInfo.cs
@@ -18,7 +18,7 @@ namespace SharpChat {
#endif
try {
- using Stream? s = Assembly.GetExecutingAssembly().GetManifestResourceStream(@"SharpChat.version.txt");
+ using Stream? s = Assembly.GetEntryAssembly()?.GetManifestResourceStream(@"SharpChat.version.txt");
if(s != null) {
using StreamReader sr = new(s);
VersionString = sr.ReadLine()?.Trim() ?? string.Empty;
diff --git a/SharpChat/ChannelInfo.cs b/SharpChatCommon/ChannelInfo.cs
similarity index 100%
rename from SharpChat/ChannelInfo.cs
rename to SharpChatCommon/ChannelInfo.cs
diff --git a/SharpChat/ChannelsContext.cs b/SharpChatCommon/ChannelsContext.cs
similarity index 100%
rename from SharpChat/ChannelsContext.cs
rename to SharpChatCommon/ChannelsContext.cs
diff --git a/SharpChat/ChannelsUsersContext.cs b/SharpChatCommon/ChannelsUsersContext.cs
similarity index 100%
rename from SharpChat/ChannelsUsersContext.cs
rename to SharpChatCommon/ChannelsUsersContext.cs
diff --git a/SharpChat/Colour.cs b/SharpChatCommon/Colour.cs
similarity index 100%
rename from SharpChat/Colour.cs
rename to SharpChatCommon/Colour.cs
diff --git a/SharpChat/Config/CachedValue.cs b/SharpChatCommon/Config/CachedValue.cs
similarity index 100%
rename from SharpChat/Config/CachedValue.cs
rename to SharpChatCommon/Config/CachedValue.cs
diff --git a/SharpChat/Config/ConfigExceptions.cs b/SharpChatCommon/Config/ConfigExceptions.cs
similarity index 100%
rename from SharpChat/Config/ConfigExceptions.cs
rename to SharpChatCommon/Config/ConfigExceptions.cs
diff --git a/SharpChat/Config/IConfig.cs b/SharpChatCommon/Config/IConfig.cs
similarity index 100%
rename from SharpChat/Config/IConfig.cs
rename to SharpChatCommon/Config/IConfig.cs
diff --git a/SharpChat/Config/ScopedConfig.cs b/SharpChatCommon/Config/ScopedConfig.cs
similarity index 100%
rename from SharpChat/Config/ScopedConfig.cs
rename to SharpChatCommon/Config/ScopedConfig.cs
diff --git a/SharpChat/Config/StreamConfig.cs b/SharpChatCommon/Config/StreamConfig.cs
similarity index 100%
rename from SharpChat/Config/StreamConfig.cs
rename to SharpChatCommon/Config/StreamConfig.cs
diff --git a/SharpChat/EventStorage/IEventStorage.cs b/SharpChatCommon/EventStorage/IEventStorage.cs
similarity index 100%
rename from SharpChat/EventStorage/IEventStorage.cs
rename to SharpChatCommon/EventStorage/IEventStorage.cs
diff --git a/SharpChat/EventStorage/MariaDBEventStorage.cs b/SharpChatCommon/EventStorage/MariaDBEventStorage.cs
similarity index 100%
rename from SharpChat/EventStorage/MariaDBEventStorage.cs
rename to SharpChatCommon/EventStorage/MariaDBEventStorage.cs
diff --git a/SharpChat/EventStorage/MariaDBEventStorage_Database.cs b/SharpChatCommon/EventStorage/MariaDBEventStorage_Database.cs
similarity index 100%
rename from SharpChat/EventStorage/MariaDBEventStorage_Database.cs
rename to SharpChatCommon/EventStorage/MariaDBEventStorage_Database.cs
diff --git a/SharpChat/EventStorage/MariaDBEventStorage_Migrations.cs b/SharpChatCommon/EventStorage/MariaDBEventStorage_Migrations.cs
similarity index 100%
rename from SharpChat/EventStorage/MariaDBEventStorage_Migrations.cs
rename to SharpChatCommon/EventStorage/MariaDBEventStorage_Migrations.cs
diff --git a/SharpChat/EventStorage/StoredEventFlags.cs b/SharpChatCommon/EventStorage/StoredEventFlags.cs
similarity index 100%
rename from SharpChat/EventStorage/StoredEventFlags.cs
rename to SharpChatCommon/EventStorage/StoredEventFlags.cs
diff --git a/SharpChat/EventStorage/StoredEventInfo.cs b/SharpChatCommon/EventStorage/StoredEventInfo.cs
similarity index 100%
rename from SharpChat/EventStorage/StoredEventInfo.cs
rename to SharpChatCommon/EventStorage/StoredEventInfo.cs
diff --git a/SharpChat/EventStorage/VirtualEventStorage.cs b/SharpChatCommon/EventStorage/VirtualEventStorage.cs
similarity index 100%
rename from SharpChat/EventStorage/VirtualEventStorage.cs
rename to SharpChatCommon/EventStorage/VirtualEventStorage.cs
diff --git a/SharpChat/Events/IChatEvent.cs b/SharpChatCommon/Events/IChatEvent.cs
similarity index 100%
rename from SharpChat/Events/IChatEvent.cs
rename to SharpChatCommon/Events/IChatEvent.cs
diff --git a/SharpChat/Events/MessageCreateEvent.cs b/SharpChatCommon/Events/MessageCreateEvent.cs
similarity index 100%
rename from SharpChat/Events/MessageCreateEvent.cs
rename to SharpChatCommon/Events/MessageCreateEvent.cs
diff --git a/SharpChat/Logger.cs b/SharpChatCommon/Logger.cs
similarity index 100%
rename from SharpChat/Logger.cs
rename to SharpChatCommon/Logger.cs
diff --git a/SharpChat/RNG.cs b/SharpChatCommon/RNG.cs
similarity index 100%
rename from SharpChat/RNG.cs
rename to SharpChatCommon/RNG.cs
diff --git a/SharpChat/RateLimiter.cs b/SharpChatCommon/RateLimiter.cs
similarity index 100%
rename from SharpChat/RateLimiter.cs
rename to SharpChatCommon/RateLimiter.cs
diff --git a/SharpChatCommon/SharpChatCommon.csproj b/SharpChatCommon/SharpChatCommon.csproj
new file mode 100644
index 0000000..ab43315
--- /dev/null
+++ b/SharpChatCommon/SharpChatCommon.csproj
@@ -0,0 +1,13 @@
+
+
+
+ net6.0
+ enable
+ SharpChat
+
+
+
+
+
+
+
diff --git a/SharpChat/SharpId.cs b/SharpChatCommon/SharpId.cs
similarity index 100%
rename from SharpChat/SharpId.cs
rename to SharpChatCommon/SharpId.cs
diff --git a/SharpChat/UserDisconnectReason.cs b/SharpChatCommon/UserDisconnectReason.cs
similarity index 100%
rename from SharpChat/UserDisconnectReason.cs
rename to SharpChatCommon/UserDisconnectReason.cs
diff --git a/SharpChat/UserInfo.cs b/SharpChatCommon/UserInfo.cs
similarity index 100%
rename from SharpChat/UserInfo.cs
rename to SharpChatCommon/UserInfo.cs
diff --git a/SharpChat/UserPermissions.cs b/SharpChatCommon/UserPermissions.cs
similarity index 100%
rename from SharpChat/UserPermissions.cs
rename to SharpChatCommon/UserPermissions.cs
diff --git a/SharpChat/UserStatus.cs b/SharpChatCommon/UserStatus.cs
similarity index 100%
rename from SharpChat/UserStatus.cs
rename to SharpChatCommon/UserStatus.cs
diff --git a/SharpChat/UsersContext.cs b/SharpChatCommon/UsersContext.cs
similarity index 100%
rename from SharpChat/UsersContext.cs
rename to SharpChatCommon/UsersContext.cs