Bump version to 1.1.3
Added player status events Added debugger displays for messages
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
using Discord.WebSocket;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace MinecraftDiscordBot.Models;
|
||||
|
||||
@ -39,14 +40,17 @@ public abstract class Message {
|
||||
}
|
||||
|
||||
[MessageType(TYPE)]
|
||||
[DebuggerDisplay($"{{{nameof(ToString)}(),nq}}")]
|
||||
public class CapabilityMessage : Message {
|
||||
private const string TYPE = "roles";
|
||||
public override string Type => TYPE;
|
||||
[JsonProperty("role", Required = Required.Always)]
|
||||
public string[] Role { get; set; } = default!;
|
||||
public override string ToString() => $"Capabilities: {string.Join(", ", Role)}";
|
||||
}
|
||||
|
||||
[MessageType(TYPE)]
|
||||
[DebuggerDisplay($"{{{nameof(ToString)}(),nq}}")]
|
||||
public class ReplyMessage : Message {
|
||||
private const string TYPE = "reply";
|
||||
public override string Type => TYPE;
|
||||
@ -60,19 +64,35 @@ public class ReplyMessage : Message {
|
||||
public int Total { get; set; } = 1;
|
||||
[JsonProperty("success", Required = Required.DisallowNull)]
|
||||
public ResultState State { get; set; } = ResultState.Successful;
|
||||
public override string ToString() => $"Reply [{AnswerId}] {State} ({Chunk}/{Total}) Length {Result.Length}";
|
||||
}
|
||||
|
||||
public abstract class EventMessage : Message { }
|
||||
|
||||
[MessageType(TYPE)]
|
||||
[DebuggerDisplay($"{{{nameof(ToString)}(),nq}}")]
|
||||
public class PeripheralDetachEvent : EventMessage {
|
||||
private const string TYPE = "peripheral_detach";
|
||||
public override string Type => TYPE;
|
||||
[JsonProperty("side", Required = Required.Always)]
|
||||
public string Side { get; set; } = default!;
|
||||
public override string ToString() => $"Detached '{Side}'!";
|
||||
}
|
||||
|
||||
[MessageType(TYPE)]
|
||||
[DebuggerDisplay($"{{{nameof(ToString)}(),nq}}")]
|
||||
public class PlayerStatusEvent : EventMessage {
|
||||
private const string TYPE = "playerstatus";
|
||||
public override string Type => TYPE;
|
||||
[JsonProperty("player", Required = Required.Always)]
|
||||
public string Player { get; set; } = default!;
|
||||
[JsonProperty("status", Required = Required.Always)]
|
||||
public bool Online { get; set; }
|
||||
public override string ToString() => $"{Player} is now {(Online ? "on" : "off")}line!";
|
||||
}
|
||||
|
||||
[MessageType(TYPE)]
|
||||
[DebuggerDisplay($"{{{nameof(ToString)}(),nq}}")]
|
||||
public class PeripheralAttachEvent : EventMessage {
|
||||
private const string TYPE = "peripheral";
|
||||
public override string Type => TYPE;
|
||||
@ -80,6 +100,7 @@ public class PeripheralAttachEvent : EventMessage {
|
||||
public string Side => Peripheral.Side;
|
||||
[JsonProperty("peripheral", Required = Required.Always)]
|
||||
public Peripheral Peripheral { get; set; } = default!;
|
||||
public override string ToString() => $"Attached {Peripheral}!";
|
||||
}
|
||||
|
||||
public class Peripheral {
|
||||
@ -89,9 +110,11 @@ public class Peripheral {
|
||||
public string Type { get; set; } = default!;
|
||||
[JsonProperty("methods", Required = Required.Always)]
|
||||
public string[] Methods { get; set; } = default!;
|
||||
public override string ToString() => $"{Type} at '{Side}'";
|
||||
}
|
||||
|
||||
[MessageType(TYPE)]
|
||||
[DebuggerDisplay($"{{{nameof(ToString)}(),nq}}")]
|
||||
public class ChatEvent : EventMessage {
|
||||
private const string TYPE = "chat";
|
||||
public override string Type => TYPE;
|
||||
@ -103,9 +126,11 @@ public class ChatEvent : EventMessage {
|
||||
public string UUID { get; set; } = default!;
|
||||
[JsonProperty("hidden", Required = Required.Always)]
|
||||
public bool IsHidden { get; set; }
|
||||
public override string ToString() => $"{(IsHidden ? "HIDDEN: " : string.Empty)}[{Username}] {Message} ({UUID})";
|
||||
}
|
||||
|
||||
[MessageType(TYPE)]
|
||||
[DebuggerDisplay($"{{{nameof(ToString)}(),nq}}")]
|
||||
public class RequestMessage : Message {
|
||||
private const string TYPE = "request";
|
||||
public override string Type => TYPE;
|
||||
@ -121,4 +146,5 @@ public class RequestMessage : Message {
|
||||
public string Method { get; set; }
|
||||
[JsonProperty("params")]
|
||||
public Dictionary<string, object> Parameters { get; }
|
||||
public override string ToString() => $"Request [{AnswerId}] {Method}({JsonConvert.SerializeObject(Parameters)})";
|
||||
}
|
||||
|
Reference in New Issue
Block a user