Simplified Pack method return type.

This commit is contained in:
flash 2024-05-10 15:24:43 +00:00
parent fc7d428f76
commit b1fae4bdeb
24 changed files with 55 additions and 80 deletions

View file

@ -1,6 +1,5 @@
using Fleck; using Fleck;
using System; using System;
using System.Collections.Generic;
using System.Net; using System.Net;
namespace SharpChat { namespace SharpChat {
@ -49,12 +48,9 @@ namespace SharpChat {
if(!Socket.IsAvailable) if(!Socket.IsAvailable)
return; return;
IEnumerable<string> data = packet.Pack(); string data = packet.Pack();
if(!string.IsNullOrWhiteSpace(data))
if(data != null) Socket.Send(data);
foreach(string line in data)
if(!string.IsNullOrWhiteSpace(line))
Socket.Send(line);
} }
public void BumpPing() { public void BumpPing() {

View file

@ -1,9 +1,7 @@
using System.Collections.Generic; namespace SharpChat {
namespace SharpChat {
public interface IServerPacket { public interface IServerPacket {
long SequenceId { get; } long SequenceId { get; }
IEnumerable<string> Pack(); string Pack();
} }
public abstract class ServerPacket : IServerPacket { public abstract class ServerPacket : IServerPacket {
@ -14,6 +12,6 @@ namespace SharpChat {
SequenceId = sequenceId > 0 ? sequenceId : SharpId.Next(); SequenceId = sequenceId > 0 ? sequenceId : SharpId.Next();
} }
public abstract IEnumerable<string> Pack(); public abstract string Pack();
} }
} }

View file

@ -1,6 +1,5 @@
using SharpChat.Misuzu; using SharpChat.Misuzu;
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -21,7 +20,7 @@ namespace SharpChat.Packet {
BanInfo = fbi ?? throw new ArgumentNullException(nameof(fbi)); BanInfo = fbi ?? throw new ArgumentNullException(nameof(fbi));
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('1'); sb.Append('1');
@ -49,7 +48,7 @@ namespace SharpChat.Packet {
sb.Append(BanInfo.ExpiresAt.ToUnixTimeSeconds()); sb.Append(BanInfo.ExpiresAt.ToUnixTimeSeconds());
} }
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -21,7 +20,7 @@ namespace SharpChat.Packet {
MaxMessageLength = maxMsgLength; MaxMessageLength = maxMsgLength;
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('1'); sb.Append('1');
@ -32,7 +31,7 @@ namespace SharpChat.Packet {
sb.Append('\t'); sb.Append('\t');
sb.Append(MaxMessageLength); sb.Append(MaxMessageLength);
return new[] { sb.ToString() }; return sb.ToString();
} }
} }
} }

View file

@ -12,7 +12,7 @@ namespace SharpChat.Packet {
Bans = bans ?? throw new ArgumentNullException(nameof(bans)); Bans = bans ?? throw new ArgumentNullException(nameof(bans));
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('2'); sb.Append('2');
@ -32,7 +32,7 @@ namespace SharpChat.Packet {
sb.Append(SequenceId); sb.Append(SequenceId);
sb.Append("\t10010"); sb.Append("\t10010");
return new[] { sb.ToString() }; return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Text;
using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
public class ChannelCreatePacket : ServerPacket { public class ChannelCreatePacket : ServerPacket {
@ -9,7 +8,7 @@ namespace SharpChat.Packet {
Channel = channel; Channel = channel;
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('4'); sb.Append('4');
@ -18,7 +17,7 @@ namespace SharpChat.Packet {
sb.Append('\t'); sb.Append('\t');
sb.Append(Channel.Pack()); sb.Append(Channel.Pack());
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -10,7 +9,7 @@ namespace SharpChat.Packet {
Channel = channel ?? throw new ArgumentNullException(nameof(channel)); Channel = channel ?? throw new ArgumentNullException(nameof(channel));
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('4'); sb.Append('4');
@ -19,7 +18,7 @@ namespace SharpChat.Packet {
sb.Append('\t'); sb.Append('\t');
sb.Append(Channel.Name); sb.Append(Channel.Name);
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Text;
using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
public class ChannelUpdatePacket : ServerPacket { public class ChannelUpdatePacket : ServerPacket {
@ -11,7 +10,7 @@ namespace SharpChat.Packet {
Channel = channel; Channel = channel;
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('4'); sb.Append('4');
@ -22,7 +21,7 @@ namespace SharpChat.Packet {
sb.Append('\t'); sb.Append('\t');
sb.Append(Channel.Pack()); sb.Append(Channel.Pack());
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,6 +1,5 @@
using SharpChat.EventStorage; using SharpChat.EventStorage;
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -42,7 +41,7 @@ namespace SharpChat.Packet {
); );
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('2'); sb.Append('2');
@ -76,7 +75,7 @@ namespace SharpChat.Packet {
IsPrivate ? '1' : '0' IsPrivate ? '1' : '0'
); );
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Text;
using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
public class ChatMessageDeletePacket : ServerPacket { public class ChatMessageDeletePacket : ServerPacket {
@ -9,14 +8,14 @@ namespace SharpChat.Packet {
EventId = eventId; EventId = eventId;
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('6'); sb.Append('6');
sb.Append('\t'); sb.Append('\t');
sb.Append(EventId); sb.Append(EventId);
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -11,7 +11,7 @@ namespace SharpChat.Packet {
Channels = channels?.Where(c => c != null) ?? throw new ArgumentNullException(nameof(channels)); Channels = channels?.Where(c => c != null) ?? throw new ArgumentNullException(nameof(channels));
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('7'); sb.Append('7');
@ -25,7 +25,7 @@ namespace SharpChat.Packet {
sb.Append(channel.Pack()); sb.Append(channel.Pack());
} }
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Text;
using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
public enum ContextClearMode { public enum ContextClearMode {
@ -22,14 +21,14 @@ namespace SharpChat.Packet {
Mode = mode; Mode = mode;
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('8'); sb.Append('8');
sb.Append('\t'); sb.Append('\t');
sb.Append((int)Mode); sb.Append((int)Mode);
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,10 +1,8 @@
using SharpChat.EventStorage; using SharpChat.EventStorage;
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet namespace SharpChat.Packet {
{
public class ContextMessagePacket : ServerPacket { public class ContextMessagePacket : ServerPacket {
public StoredEventInfo Event { get; private set; } public StoredEventInfo Event { get; private set; }
public bool Notify { get; private set; } public bool Notify { get; private set; }
@ -16,7 +14,7 @@ namespace SharpChat.Packet
private const string V1_CHATBOT = "-1\tChatBot\tinherit\t\t"; private const string V1_CHATBOT = "-1\tChatBot\tinherit\t\t";
public override IEnumerable<string> Pack() { public override string Pack() {
bool isAction = Event.Flags.HasFlag(StoredEventFlags.Action); bool isAction = Event.Flags.HasFlag(StoredEventFlags.Action);
bool isBroadcast = Event.Flags.HasFlag(StoredEventFlags.Broadcast); bool isBroadcast = Event.Flags.HasFlag(StoredEventFlags.Broadcast);
bool isPrivate = Event.Flags.HasFlag(StoredEventFlags.Private); bool isPrivate = Event.Flags.HasFlag(StoredEventFlags.Private);
@ -114,7 +112,7 @@ namespace SharpChat.Packet
isPrivate ? '1' : '0' isPrivate ? '1' : '0'
); );
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -11,7 +11,7 @@ namespace SharpChat.Packet {
Users = users?.Where(u => u != null) ?? throw new ArgumentNullException(nameof(users)); Users = users?.Where(u => u != null) ?? throw new ArgumentNullException(nameof(users));
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('7'); sb.Append('7');
@ -27,7 +27,7 @@ namespace SharpChat.Packet {
sb.Append('1'); // visibility flag sb.Append('1'); // visibility flag
} }
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -22,7 +21,7 @@ namespace SharpChat.Packet {
} }
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('9'); sb.Append('9');
@ -37,7 +36,7 @@ namespace SharpChat.Packet {
sb.Append(Expires.ToUnixTimeSeconds()); sb.Append(Expires.ToUnixTimeSeconds());
} }
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -19,7 +19,7 @@ namespace SharpChat.Packet {
Arguments = args; Arguments = args;
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
if(StringId == LCR.WELCOME) { if(StringId == LCR.WELCOME) {
@ -62,7 +62,7 @@ namespace SharpChat.Packet {
Flags.HasFlag(ChatMessageFlags.Private) ? '1' : '0' Flags.HasFlag(ChatMessageFlags.Private) ? '1' : '0'
);*/ );*/
yield return sb.ToString(); return sb.ToString();
} }
} }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -10,14 +9,14 @@ namespace SharpChat.Packet {
PongTime = dto; PongTime = dto;
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('0'); sb.Append('0');
sb.Append('\t'); sb.Append('\t');
sb.Append(PongTime.ToUnixTimeSeconds()); sb.Append(PongTime.ToUnixTimeSeconds());
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -10,7 +9,7 @@ namespace SharpChat.Packet {
Channel = channel ?? throw new ArgumentNullException(nameof(channel)); Channel = channel ?? throw new ArgumentNullException(nameof(channel));
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('5'); sb.Append('5');
@ -19,7 +18,7 @@ namespace SharpChat.Packet {
sb.Append('\t'); sb.Append('\t');
sb.Append(Channel.Name); sb.Append(Channel.Name);
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -10,7 +9,7 @@ namespace SharpChat.Packet {
User = user ?? throw new ArgumentNullException(nameof(user)); User = user ?? throw new ArgumentNullException(nameof(user));
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('5'); sb.Append('5');
@ -21,7 +20,7 @@ namespace SharpChat.Packet {
sb.Append('\t'); sb.Append('\t');
sb.Append(SequenceId); sb.Append(SequenceId);
return new[] { sb.ToString() }; return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -10,7 +9,7 @@ namespace SharpChat.Packet {
User = user ?? throw new ArgumentNullException(nameof(user)); User = user ?? throw new ArgumentNullException(nameof(user));
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('5'); sb.Append('5');
@ -21,7 +20,7 @@ namespace SharpChat.Packet {
sb.Append('\t'); sb.Append('\t');
sb.Append(SequenceId); sb.Append(SequenceId);
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -12,7 +11,7 @@ namespace SharpChat.Packet {
User = user ?? throw new ArgumentNullException(nameof(user)); User = user ?? throw new ArgumentNullException(nameof(user));
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('1'); sb.Append('1');
@ -23,7 +22,7 @@ namespace SharpChat.Packet {
sb.Append('\t'); sb.Append('\t');
sb.Append(SequenceId); sb.Append(SequenceId);
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -21,7 +20,7 @@ namespace SharpChat.Packet {
Reason = reason; Reason = reason;
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('3'); sb.Append('3');
@ -52,7 +51,7 @@ namespace SharpChat.Packet {
sb.Append('\t'); sb.Append('\t');
sb.Append(SequenceId); sb.Append(SequenceId);
return new[] { sb.ToString() }; return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -14,7 +13,7 @@ namespace SharpChat.Packet {
Timestamp = DateTimeOffset.Now; Timestamp = DateTimeOffset.Now;
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append('2'); sb.Append('2');
@ -28,7 +27,7 @@ namespace SharpChat.Packet {
sb.Append(SequenceId); sb.Append(SequenceId);
sb.Append("\t10010"); sb.Append("\t10010");
yield return sb.ToString(); return sb.ToString();
} }
} }
} }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
namespace SharpChat.Packet { namespace SharpChat.Packet {
@ -10,14 +9,14 @@ namespace SharpChat.Packet {
User = user ?? throw new ArgumentNullException(nameof(user)); User = user ?? throw new ArgumentNullException(nameof(user));
} }
public override IEnumerable<string> Pack() { public override string Pack() {
StringBuilder sb = new(); StringBuilder sb = new();
sb.Append("10"); sb.Append("10");
sb.Append('\t'); sb.Append('\t');
sb.Append(User.Pack()); sb.Append(User.Pack());
yield return sb.ToString(); return sb.ToString();
} }
} }
} }