Mineuniverse
Log in Register
Plugins

ExplosionPhysics

Explosions fling blocks away from the source.
by _ForgeUser6953472
Download Claim this project
3,898 downloads
0 likes
Updated Jun 30, 2026
0 hypes
Fun Mechanics

When a TNT block or other explosive goes off, it will turn all blocks into falling blocks, and then shoot them off with a vector away from the source explosion. All drops are cancelled. Have fun! All it does, is convert the blocks that n explosion would normally destroy into FallingBlock entities. It then shoots those entities off in different directions. Also it will not run the method if the event is cancelled (in the case of worldguard cancelling explosive block damage) First, find something to blow up. Next, cover it in TnT. Cover it. get ready to blow it up! KABOOM! WATCH THOSE BLOCKS FLY! Aftermath

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package explosionphysics;

import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.entity.FallingBlock;
import org.bukkit.event.Event;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.util.Vector;

/**
 *
 * @author Taylor
 */
public class ExplosionPhysics extends JavaPlugin implements Listener{
	public ArrayList<Material> disallowedBlocks = new ArrayList<Material>();
	@Override
	public void onEnable(){
		getServer().getPluginManager().registerEvents(new ExplosionPhysics(), this);
		disallowedBlocks.clear();
		disallowedBlocks.add(Material.TNT);
		disallowedBlocks.add(Material.PISTON_BASE);
		disallowedBlocks.add(Material.PISTON_EXTENSION);
		disallowedBlocks.add(Material.PISTON_MOVING_PIECE);
		disallowedBlocks.add(Material.PISTON_STICKY_BASE);
	}

	@EventHandler(priority = EventPriority.NORMAL)
	public void onBlockExplode(org.bukkit.event.entity.EntityExplodeEvent e){
		if (e.isCancelled()){return;}
		if (e.blockList().isEmpty()){return;}
		e.setYield(0F);
		double x = 0;
		double y = 0;
		double z = 0;
		Location eLoc = e.getLocation();
		World w = eLoc.getWorld();
		for (int i = 0; i < e.blockList().size();i++){
			Block b = e.blockList().get(i);
			Location bLoc =b.getLocation();
			if (disallowedBlocks.contains(b.getType())){continue;}
			x = bLoc.getX() - eLoc.getX();
			y = bLoc.getY() - eLoc.getY() + .5;
			z = bLoc.getZ() - eLoc.getZ();
			FallingBlock fb = w.spawnFallingBlock(bLoc, b.getType(), (byte)b.getData());
			fb.setDropItem(false);
			fb.setVelocity(new Vector(x,y,z));
		}
		
	}
}
1.0.1
MC CB 1.7.2-R0.2
Release 2012-10-14 Get
ExplosionPhysics 1.0
MC CB 1.3.2-R0.2, CB 1.3.2-R1.0
Release 2012-10-09 Get

More from _ForgeUser6953472

GravityControl
7,302
SuperMobs
27,250
LumenTech
1,644
ItemTagger
13,529
FarPlacer
1,008

You Might Also Like

MobHealth
Simple plugin to let you know the damage you just caused to a mob, and how much health it has left.
989,881
Player Heads
Lop off Player and all Mob Heads with configurable drop rates + pvp-farming nerf, includes detailed commands and permissions
979,351
Advanced Item Effects
Adds custom effects to any item including potion effects.
97,290
VoxelMore
"Sharing is caring."
9,999
SunSteel
A Golden Item Enhancement Plugin
9,880
Sneaker
Hide name tags above players' heads.
9,865