Source 1.0

package com.googlemail.dev.chaosforcer.crushit;

import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPhysicsEvent;

import org.bukkit.plugin.java.JavaPlugin;

public class CrushIt extends JavaPlugin implements Listener{

@Override
public void onEnable(){
getServer().getPluginManager().registerEvents(this, this);
}

@EventHandler
public void crushCobbleStone(BlockPhysicsEvent event){
Block block = event.getBlock();
byte data = block.getData();
if(block.getTypeId() == 33 && (block.isBlockPowered() || block.isBlockIndirectlyPowered()) && data >= 0 && data <= 5){
Location loc = block.getLocation();
World world = block.getWorld();
switch(data){
case 0:
if(world.getBlockTypeIdAt(loc.getBlockX(), loc.getBlockY()-1, loc.getBlockZ()) == 4 && world.getBlockTypeIdAt(loc.getBlockX(), loc.getBlockY()-2, loc.getBlockZ()) == 49){
crush(new Location(world, loc.getBlockX(), loc.getBlockY()-1, loc.getBlockZ()));
}
break;
case 1:
if(world.getBlockTypeIdAt(loc.getBlockX(), loc.getBlockY()+1, loc.getBlockZ()) == 4 && world.getBlockTypeIdAt(loc.getBlockX(), loc.getBlockY()+2, loc.getBlockZ()) == 49){
crush(new Location(world, loc.getBlockX(), loc.getBlockY()+1, loc.getBlockZ()));
}
break;
case 2:
if(world.getBlockTypeIdAt(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()-1) == 4 && world.getBlockTypeIdAt(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()-2) == 49){
crush(new Location(world, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()-1));
}
break;
case 3:
if(world.getBlockTypeIdAt(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()+1) == 4 && world.getBlockTypeIdAt(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()+2) == 49){
crush(new Location(world, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()+1));
}
break;
case 4:
if(world.getBlockTypeIdAt(loc.getBlockX()-1, loc.getBlockY(), loc.getBlockZ()) == 4 && world.getBlockTypeIdAt(loc.getBlockX()-2, loc.getBlockY(), loc.getBlockZ()) == 49){
crush(new Location(world, loc.getBlockX()-1, loc.getBlockY(), loc.getBlockZ()));
}
break;
case 5:
if(world.getBlockTypeIdAt(loc.getBlockX()+1, loc.getBlockY(), loc.getBlockZ()) == 4 && world.getBlockTypeIdAt(loc.getBlockX()+2, loc.getBlockY(), loc.getBlockZ()) == 49){
crush(new Location(world, loc.getBlockX()+1, loc.getBlockY(), loc.getBlockZ()));
}
break;
}
}

}

private void crush(Location loc){
loc.getBlock().breakNaturally();
}

}


Comments

Posts Quoted:
Reply
Clear All Quotes