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

XFEServerManager

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

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

import java.time.Instant;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.UUID;

/** Bounded opt-in event capture session and one redacted sample. */
public record TriggerEventCapture(
        UUID captureId, String createdBy, Set<String> eventTypes, Instant expiresAt,
        int maximumSamples, int sampleCount, Instant createdAt) {
    public TriggerEventCapture {
        Objects.requireNonNull(captureId, "captureId");
        createdBy = Objects.requireNonNull(createdBy, "createdBy");
        eventTypes = Set.copyOf(eventTypes == null ? Set.of() : eventTypes);
        Objects.requireNonNull(expiresAt, "expiresAt");
        Objects.requireNonNull(createdAt, "createdAt");
        if (maximumSamples < 1 || maximumSamples > 500 || sampleCount < 0) {
            throw new IllegalArgumentException("invalid capture sample limit/count");
        }
    }

    public record Sample(UUID sampleId, UUID captureId, String eventType,
                         Map<String, Object> context, Instant capturedAt) {
        public Sample {
            Objects.requireNonNull(sampleId, "sampleId");
            Objects.requireNonNull(captureId, "captureId");
            eventType = Objects.requireNonNull(eventType, "eventType");
            context = Map.copyOf(context == null ? Map.of() : context);
            Objects.requireNonNull(capturedAt, "capturedAt");
        }
    }
}