9fd50ee01e
Fixed cli help texts Added administrator options for critical methods Added result state for client and server specific errors Redirect root to help text Fixed fingerprint error, fingerprint must be case sensitive Re-Added online messages Added typing trigger for discord bot messages client: fixed chunkString for empty results preemtive wrap error objects for server messages both: added raw lua RS Bridge command entry
68 lines
2.2 KiB
C#
68 lines
2.2 KiB
C#
using Discord.WebSocket;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace MinecraftDiscordBot.Models;
|
|
|
|
public abstract class Message {
|
|
[JsonProperty("type")]
|
|
public abstract string Type { get; }
|
|
}
|
|
|
|
public class CapabilityMessage : Message {
|
|
public override string Type => "roles";
|
|
[JsonProperty("role", Required = Required.Always)]
|
|
public string[] Role { get; set; } = default!;
|
|
}
|
|
|
|
public class TextMessage : Message {
|
|
public TextMessage(SocketMessage arg) : this(arg.Author.Username, arg.Content) { }
|
|
public TextMessage(string author, string content) {
|
|
Author = author;
|
|
Content = content;
|
|
}
|
|
public override string Type => "text";
|
|
[JsonProperty("author", Required = Required.Always)]
|
|
public string Author { get; set; }
|
|
[JsonProperty("message", Required = Required.Always)]
|
|
public string Content { get; set; }
|
|
}
|
|
|
|
public class ReplyMessage : Message {
|
|
public ReplyMessage(int answerId, string result) {
|
|
AnswerId = answerId;
|
|
Result = result;
|
|
}
|
|
[JsonProperty("id", Required = Required.Always)]
|
|
public int AnswerId { get; set; }
|
|
[JsonProperty("result", Required = Required.Always)]
|
|
public string Result { get; set; }
|
|
[JsonProperty("chunk", Required = Required.DisallowNull)]
|
|
public int Chunk { get; set; } = 1;
|
|
[JsonProperty("total", Required = Required.DisallowNull)]
|
|
public int Total { get; set; } = 1;
|
|
[JsonProperty("success", Required = Required.DisallowNull)]
|
|
public ResultState State { get; set; } = ResultState.Successful;
|
|
public override string Type => "reply";
|
|
}
|
|
|
|
public class RequestMessage : Message {
|
|
public RequestMessage(int answerId, string method, Dictionary<string, object>? parameters = null) {
|
|
AnswerId = answerId;
|
|
Method = method;
|
|
Parameters = (parameters ?? Enumerable.Empty<KeyValuePair<string, object>>())
|
|
.ToDictionary(i => i.Key, i => i.Value);
|
|
}
|
|
[JsonProperty("id")]
|
|
public int AnswerId { get; set; }
|
|
[JsonProperty("method")]
|
|
public string Method { get; set; }
|
|
[JsonProperty("params")]
|
|
public Dictionary<string, object> Parameters { get; }
|
|
public override string Type => "request";
|
|
}
|
|
|
|
public enum ResultState {
|
|
Successful,
|
|
Unsuccessful,
|
|
Fatal
|
|
} |