Allow hoppers to collect unlocked drops (#583)

Closes #576
This commit is contained in:
coralpapa 2019-08-11 11:49:15 -07:00 committed by RoboMWM
parent 7c7e98e5e6
commit 6274cb7536

View File

@ -21,11 +21,13 @@ package me.ryanhamshire.GriefPrevention;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.UUID;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
import org.bukkit.Tag;
import org.bukkit.World;
import org.bukkit.World.Environment;
@ -882,8 +884,8 @@ public class BlockEventHandler implements Listener
}
@EventHandler(ignoreCancelled = true)
public void onInventoryPickupItem (InventoryPickupItemEvent event)
{
public void onInventoryPickupItem (InventoryPickupItemEvent event)
{
//prevent hoppers from picking-up items dropped by players on death
InventoryHolder holder = event.getInventory().getHolder();
@ -891,12 +893,23 @@ public class BlockEventHandler implements Listener
{
Item item = event.getItem();
List<MetadataValue> data = item.getMetadata("GP_ITEMOWNER");
//if this is marked as belonging to a player
if(data != null && data.size() > 0)
{
//don't allow the pickup
event.setCancelled(true);
UUID ownerID = (UUID)data.get(0).value();
//has that player unlocked his drops?
OfflinePlayer owner = GriefPrevention.instance.getServer().getOfflinePlayer(ownerID);
if(owner.isOnline())
{
PlayerData playerData = this.dataStore.getPlayerData(ownerID);
//if locked, don't allow pickup
if(!playerData.dropsAreUnlocked)
{
event.setCancelled(true);
}
}
}
}
}