Skip to content

Instantly share code, notes, and snippets.

@vemacs
Created May 10, 2015 18:39
Show Gist options
  • Select an option

  • Save vemacs/f01f21c8ffca8c6a8e51 to your computer and use it in GitHub Desktop.

Select an option

Save vemacs/f01f21c8ffca8c6a8e51 to your computer and use it in GitHub Desktop.
package me.vemacs.chestnuker;
import org.bukkit.Chunk;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.Chest;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.world.ChunkLoadEvent;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.List;
public class ChestNuker extends JavaPlugin implements Listener {
public static final String MATCH_STRING = "plot";
public static final String PARSED_KEY = "parsed";
@Override
public void onEnable() {
saveDefaultConfig();
getServer().getPluginManager().registerEvents(this, this);
}
@Override
public void onDisable() {
HandlerList.unregisterAll((Listener) this);
saveConfig();
}
@EventHandler(priority = EventPriority.MONITOR)
public void onChunkLoad(ChunkLoadEvent event) {
if (!event.getWorld().getName().contains(MATCH_STRING)) return;
List<String> parsed = getConfig().getStringList(PARSED_KEY);
Chunk chunk = event.getChunk();
String chunkCode = chunk.getX() + "," + chunk.getZ();
if (parsed.contains(chunkCode)) return;
for (BlockState bs : chunk.getTileEntities()) {
if (bs instanceof Chest) {
Chest chest = (Chest) bs;
chest.getInventory().clear();
getLogger().info("Nuking chest at " + bs.getBlock().getLocation().toString());
}
}
parsed.add(chunkCode);
getConfig().set(PARSED_KEY, parsed);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment