Files
spigot-quest-board/src/main/java/games/dmg/spigotquestboard/QuestClaim.java
T
dmg af6d6d0827
Release / release (push) Successful in 2m22s
CI / build (push) Successful in 1m6s
feat(quests): add expiration and held item claims
2026-09-05 08:15:16 -04:00

39 lines
1.1 KiB
Java

package games.dmg.spigotquestboard;
import java.time.Instant;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
record QuestClaim(
UUID id,
UUID questId,
UUID ownerId,
List<EscrowItem> items,
Instant createdAt,
QuestClaimSource source
) {
QuestClaim {
Objects.requireNonNull(id, "id");
Objects.requireNonNull(questId, "questId");
Objects.requireNonNull(ownerId, "ownerId");
items = List.copyOf(Objects.requireNonNull(items, "items"));
if (items.isEmpty()) {
throw new IllegalArgumentException("Claim items must not be empty");
}
Objects.requireNonNull(createdAt, "createdAt");
Objects.requireNonNull(source, "source");
}
QuestClaim(
UUID id, UUID questId, UUID ownerId, List<EscrowItem> items, Instant createdAt
) {
this(id, questId, ownerId, items, createdAt, QuestClaimSource.COMPLETION);
}
QuestClaimType type() {
return source == QuestClaimSource.COMPLETION
? QuestClaimType.DELIVERED_BLOCKS : QuestClaimType.RETURNED_REWARD;
}
}