39 lines
1.1 KiB
Java
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;
|
|
}
|
|
}
|