Skip to content

Instantly share code, notes, and snippets.

@NeatMonster
Last active December 20, 2015 11:49
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 NeatMonster/6126581 to your computer and use it in GitHub Desktop.
Save NeatMonster/6126581 to your computer and use it in GitHub Desktop.
package fr.neatmonster.pickyospawner;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
public class PickYoSpawner extends JavaPlugin implements Listener {
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onBlockBreak(final BlockBreakEvent event) {
if (event.getBlock().getType() == Material.MOB_SPAWNER) {
final boolean cancelled = !event.getPlayer().getName().equals(
getConfig().getString(toString(event.getBlock().getLocation()), null))
&& !event.getPlayer().hasPermission("pickyospawner.all");
if (!cancelled) {
getConfig().set(toString(event.getBlock().getLocation()), null);
event.getBlock().getWorld().dropItemNaturally(event.getBlock().getLocation(),
new ItemStack(Material.MOB_SPAWNER));
}
saveConfig();
event.setCancelled(cancelled);
}
}
@EventHandler
public void onBlockPlace(final BlockPlaceEvent event) {
if (event.getBlock().getType() == Material.MOB_SPAWNER) {
getConfig().set(toString(event.getBlock().getLocation()),
event.getPlayer().getName());
saveConfig();
}
}
private String toString(final Location location) {
return location.getWorld().getName() + "_" + location.getBlockX() + "_"
+ location.getBlockY() + "_" + location.getBlockZ();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment