using System; namespace MinecraftClient.Scripting; /// /// Represents the outcome of a shared MCC game operation. /// public class MccGameResult { public bool Success { get; init; } public string? ErrorCode { get; init; } public string? Message { get; init; } public static MccGameResult Ok(string? message = null) { return new MccGameResult { Success = true, Message = message }; } public static MccGameResult Fail(string errorCode, string? message = null) { ArgumentException.ThrowIfNullOrEmpty(errorCode); return new MccGameResult { Success = false, ErrorCode = errorCode, Message = message }; } } /// /// Represents the outcome of a shared MCC game operation with typed payload data. /// public sealed class MccGameResult : MccGameResult { public T? Data { get; init; } public static MccGameResult Ok(T? data, string? message = null) { return new MccGameResult { Success = true, Data = data, Message = message }; } public static MccGameResult Fail(string errorCode, string? message = null, T? data = default) { ArgumentException.ThrowIfNullOrEmpty(errorCode); return new MccGameResult { Success = false, ErrorCode = errorCode, Message = message, Data = data }; } }