A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy
blob: 12dfdf858c6ea1b04acc48f03ac9818803317157 (1657 bytes)[doc][blame][raw]
1
package poppy.modules;3
import java.util.HashSet;5
import org.bukkit.Location;6
import org.bukkit.Material;7
import org.bukkit.block.Block;8
import org.bukkit.block.data.Directional;9
import org.bukkit.block.data.type.Observer;10
import org.bukkit.entity.ItemFrame;11
import org.bukkit.event.EventHandler;12
import org.bukkit.event.Listener;13
import org.bukkit.event.block.BlockRedstoneEvent;14
import org.bukkit.inventory.ItemStack;17
public class BlockDetectorModule implements Listener18
{19
@EventHandler20
public void onBlockRedstone(BlockRedstoneEvent event)21
{22
final Block block = event.getBlock();24
if(block.getType() != Material.OBSERVER) return;26
final ItemFrame[] itemframes = HopperSorterModule.getBlockItemFrames(block);27
final ItemStack[] itemstacks = getItemsFromItemframes(itemframes);29
if(itemstacks.length <= 0) return;31
final Observer observer = (Observer) block.getBlockData();33
if(block.getBlockData() instanceof Directional)34
{35
final Location location = observer.getFacing().getDirection().toLocation(block.getWorld());36
final Block faceblock = block.getLocation().add(location.toVector()).getBlock();38
boolean check = false;40
for(ItemStack item : itemstacks)41
{42
if(item.getType() == faceblock.getType())43
{44
observer.setPowered(true);45
check = true;46
}47
}49
if(!check) event.setNewCurrent(0);50
}51
}53
public static ItemStack[] getItemsFromItemframes(ItemFrame[] itemframes)54
{55
final HashSet<ItemStack> itemstacks = new HashSet <ItemStack>();57
for(ItemFrame itemframe : itemframes)58
{59
itemstacks.add(itemframe.getItem());60
}61
return itemstacks.toArray(new ItemStack[itemstacks.size()]);62
}63
}