XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEServerManager

【Java】我的世界XFE服务器管理器

公开
关注 0 Fork 0 Star 0
UTF-8
package com.xfestudio.xfeservermanager.api.world;

import com.xfestudio.xfeservermanager.api.util.ApiChecks;
import java.time.Instant;
import java.util.Objects;
import java.util.UUID;

/** One immutable entry in the world event journal. */
public record WorldChangeRecord(
        UUID eventId,
        Instant timestamp,
        long tick,
        String dimensionId,
        int x,
        int y,
        int z,
        WorldChangeKind kind,
        String resourceId,
        String actorId,
        String cause,
        WorldStatePayload beforeState,
        WorldStatePayload afterState,
        String transactionId,
        String modFingerprint,
        boolean restorable
) {
    public WorldChangeRecord {
        Objects.requireNonNull(eventId, "eventId");
        Objects.requireNonNull(timestamp, "timestamp");
        if (tick < 0) {
            throw new IllegalArgumentException("tick must be non-negative");
        }
        dimensionId = ApiChecks.lowerIdentifier(dimensionId, "dimensionId");
        Objects.requireNonNull(kind, "kind");
        resourceId = resourceId == null ? "" : resourceId.toLowerCase(java.util.Locale.ROOT);
        actorId = actorId == null ? "" : actorId;
        cause = ApiChecks.notBlank(cause, "cause");
        transactionId = ApiChecks.notBlank(transactionId, "transactionId");
        modFingerprint = modFingerprint == null ? "" : modFingerprint;
        if (restorable && beforeState == null && afterState == null) {
            throw new IllegalArgumentException("restorable records require at least one captured state");
        }
    }
}