From d20d4c1c3b22e344927eff3df3116461235df37b Mon Sep 17 00:00:00 2001 From: Nothixal Date: Tue, 28 Jan 2025 20:50:32 +1100 Subject: [PATCH] #1533: Add method to get rewarded players from vaults --- .../block/entity/vault/VaultServerData.patch | 11 +++++++++++ .../org/bukkit/craftbukkit/block/CraftVault.java | 15 +++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 nms-patches/net/minecraft/world/level/block/entity/vault/VaultServerData.patch diff --git a/nms-patches/net/minecraft/world/level/block/entity/vault/VaultServerData.patch b/nms-patches/net/minecraft/world/level/block/entity/vault/VaultServerData.patch new file mode 100644 index 000000000..e66793cb3 --- /dev/null +++ b/nms-patches/net/minecraft/world/level/block/entity/vault/VaultServerData.patch @@ -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 getRewardedPlayers() { ++ public Set getRewardedPlayers() { // PAIL package private -> public + return this.rewardedPlayers; + } + diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftVault.java b/src/main/java/org/bukkit/craftbukkit/block/CraftVault.java index ad882e1aa..1ee0b0643 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftVault.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftVault.java @@ -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 implemen tileEntity.setConfig(this.config.toMinecraft()); } + @Override + public Set 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; private double activationRange;