Prevent dying shopsigns, Fixes #8
Merge pull request #10 from Altitude-Devs/dev/signs
This commit is contained in:
commit
0d79b75e33
|
|
@ -4,7 +4,9 @@ import com.alttd.playershops.PlayerShops;
|
|||
import com.alttd.playershops.config.MessageConfig;
|
||||
import com.alttd.playershops.handler.ShopHandler;
|
||||
import com.alttd.playershops.shop.PlayerShop;
|
||||
import com.destroystokyo.paper.MaterialSetTag;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Tag;
|
||||
import org.bukkit.TreeType;
|
||||
import org.bukkit.block.Block;
|
||||
|
|
@ -18,13 +20,17 @@ import org.bukkit.block.data.type.WallSign;
|
|||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.BlockPhysicsEvent;
|
||||
import org.bukkit.event.block.SignChangeEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.player.PlayerBucketEmptyEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.world.StructureGrowEvent;
|
||||
import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
|
|
@ -207,4 +213,26 @@ public class ShopListener extends EventListener {
|
|||
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||
public void onSignDye(PlayerInteractEvent event) {
|
||||
if(!this.isRegistered)
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
if (!(event.getAction() == Action.RIGHT_CLICK_BLOCK))
|
||||
return;
|
||||
|
||||
Block block = event.getClickedBlock();
|
||||
if (block == null || !Tag.WALL_SIGNS.isTagged(block.getType()))
|
||||
return;
|
||||
|
||||
PlayerShop shop = shopHandler.getShopBySignLocation(block.getLocation());
|
||||
if(shop == null) return;
|
||||
|
||||
ItemStack itemStack = event.getHand() == EquipmentSlot.HAND ? event.getPlayer().getInventory().getItemInMainHand() : event.getPlayer().getInventory().getItemInOffHand();
|
||||
Material material = itemStack.getType();
|
||||
if (material == Material.INK_SAC || material == Material.GLOW_INK_SAC || material.name().endsWith("_DYE")) // TODO create a cache for these?
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user