#1533: Add method to get rewarded players from vaults

This commit is contained in:
Nothixal 2025-01-28 20:50:32 +11:00 committed by md_5
parent 21d34ea471
commit d20d4c1c3b
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11
2 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1,11 @@
--- a/net/minecraft/world/level/block/entity/vault/VaultServerData.java
+++ b/net/minecraft/world/level/block/entity/vault/VaultServerData.java
@@ -54,7 +54,7 @@
return this.lastInsertFailTimestamp;
}
- Set<UUID> getRewardedPlayers() {
+ public Set<UUID> getRewardedPlayers() { // PAIL package private -> public
return this.rewardedPlayers;
}

View File

@ -1,12 +1,17 @@
package org.bukkit.craftbukkit.block;
import com.google.common.base.Preconditions;
import java.util.Collections;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.trialspawner.PlayerDetector;
import net.minecraft.world.level.block.entity.vault.VaultBlockEntity;
import net.minecraft.world.level.block.entity.vault.VaultConfig;
import net.minecraft.world.level.block.entity.vault.VaultServerData;
import net.minecraft.world.level.storage.loot.LootTable;
import org.bukkit.Location;
import org.bukkit.World;
@ -96,6 +101,16 @@ public class CraftVault extends CraftBlockEntityState<VaultBlockEntity> implemen
tileEntity.setConfig(this.config.toMinecraft());
}
@Override
public Set<UUID> getRewardedPlayers() {
requirePlaced();
VaultServerData serverData = getTileEntity().getServerData();
Objects.requireNonNull(serverData, "serverData should not be null for placed Vault");
return Collections.unmodifiableSet(serverData.getRewardedPlayers());
}
static class CraftVaultConfiguration {
private ResourceKey<LootTable> lootTable;
private double activationRange;