ExtraChat/client/ExtraChat/Protocol/MemberChangeKind.cs

32 lines
871 B
C#

using ExtraChat.Formatters;
using ExtraChat.Protocol.Channels;
using MessagePack;
namespace ExtraChat.Protocol;
[Serializable]
[MessagePackObject]
[MessagePackFormatter(typeof(MemberChangeKindFormatter))]
public abstract record MemberChangeKind {
[MessagePackObject]
public record Invite(string Inviter, ushort InviterWorld) : MemberChangeKind;
[MessagePackObject]
public record InviteDecline : MemberChangeKind;
[MessagePackObject]
public record InviteCancel(string Canceler, ushort CancelerWorld) : MemberChangeKind;
[MessagePackObject]
public record Join : MemberChangeKind;
[MessagePackObject]
public record Leave : MemberChangeKind;
[MessagePackObject]
public record Promote(Rank Rank) : MemberChangeKind;
[MessagePackObject]
public record Kick(string Kicker, ushort KickerWorld) : MemberChangeKind;
}