Skip to content

Instantly share code, notes, and snippets.

@tmathmeyer
Created June 17, 2013 18:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tmathmeyer/5798850 to your computer and use it in GitHub Desktop.
Save tmathmeyer/5798850 to your computer and use it in GitHub Desktop.
M
package edu.wpi.tmathmeyer.hungry.pumpkins;
import java.util.Collection;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockRedstoneEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.material.Pumpkin;
import org.bukkit.plugin.java.JavaPlugin;
public class HungryPumpkin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
getLogger().info("Hungry pumpkins enabled!");
getServer().getPluginManager().registerEvents(this, this);
}
@Override
public void onDisable() {
getLogger().info("Hungry pumpkins disabled");
}
@EventHandler
public void onRedstoneTick(BlockRedstoneEvent bre)
{
Block b = bre.getBlock();
if (b.getType().equals(Material.PUMPKIN) && b.getBlockPower() > 0)
{
BlockFace bf = (Pumpkin) b.getState().getData().getFacing();
Block target = b.getLocation().getWorld().getBlockAt(
bf==BlockFace.NORTH ? b.getX() + 1 :
bf==BlockFace.SOUTH ? b.getX() - 1 :
b.getX(),
b.getY(),
bf==BlockFace.EAST ? b.getZ() + 1 :
bf==BlockFace.WEST ? b.getZ() - 1 :
b.getZ());
)
if (target.breakNaturally())
{
Collection<ItemStack> drops = b.getDrops(new ItemStack(Material.DIAMOND_PICKAXE));
Block back = b.getLocation().getWorld().getBlockAt(
bf==BlockFace.NORTH ? b.getX() - 1 :
bf==BlockFace.SOUTH ? b.getX() + 1 :
b.getX(),
b.getY(),
bf==BlockFace.EAST ? b.getZ() - 1 :
bf==BlockFace.WEST ? b.getZ() + 1 :
b.getZ());
if (back.getType().isSolid())
{
back = b.getLocation().getWorld().getBlockAt(b.getX(), b.getY()+1, b.getZ());
}
Location drop = back.getLocation();
for (ItemStack i : drops)
{
drop.getWorld().dropItem(drop, i);
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment