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
};
}
}