summaryrefslogtreecommitdiffstats
path: root/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java
blob: 4528c040d573060c31a24372d53158f8857aa6c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.earth2me.essentials.signs;

import com.earth2me.essentials.IEssentials;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.EntityListener;


public class SignEntityListener extends EntityListener
{
	private final transient IEssentials ess;

	public SignEntityListener(IEssentials ess)
	{
		this.ess = ess;
	}

	
	@Override
	public void onEntityExplode(EntityExplodeEvent event)
	{
		for (Block block : event.blockList())
		{
			if ((block.getType() == Material.WALL_SIGN
				 || block.getType() == Material.SIGN_POST
				 || EssentialsSign.checkIfBlockBreaksSigns(block)))
			{
				event.setCancelled(true);
				return;
			}
			for (Signs signs : Signs.values())
			{
				final EssentialsSign sign = signs.getSign();
				if (sign.getBlocks().contains(block.getType()))
				{
					event.setCancelled(!sign.onBlockExplode(block, ess));
					return;
				}
			}
		}
	}
}