下面列出了org.bukkit.Material#DETECTOR_RAIL 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@EventHandler(ignoreCancelled = true)
void onBlockPlace(BlockPlaceEvent event) {
Block block = event.getBlock();
Material type = block.getType();
Player player = event.getPlayer();
if (Utils.isChest(type)) {
if (plugin.getProtectedChests().isChestProtected(block, player)) {
Log.debug("Cancelled placing of chest block by '" + player.getName() + "' at '"
+ Utils.getLocationString(block) + "': Protected chest nearby");
event.setCancelled(true);
}
} else if (type == Material.HOPPER) {
if (plugin.getProtectedChests().isProtectedChestAroundHopper(block, player)) {
Log.debug("Cancelled placing of hopper block by '" + player.getName() + "' at '"
+ Utils.getLocationString(block) + "': Protected chest nearby");
event.setCancelled(true);
}
} else if (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL || type == Material.ACTIVATOR_RAIL) {
Block upperBlock = block.getRelative(BlockFace.UP);
if (Utils.isChest(upperBlock.getType()) && plugin.getProtectedChests().isChestProtected(upperBlock, player)) {
Log.debug("Cancelled placing of rail block by '" + player.getName() + "' at '"
+ Utils.getLocationString(block) + "': Protected chest nearby");
event.setCancelled(true);
return;
}
}
}
public DetectorRail() {
super(Material.DETECTOR_RAIL);
}
public ItemStack createIntegerIcon(int value, boolean readonly) {
return Math.abs(value) <= MAX_INT_VALUE
? (readonly ? new ItemStack(Material.DETECTOR_RAIL, value) : new ItemStack(Material.RAIL, value))
: (readonly ? new ItemStack(Material.IRON_BARS, 1, (short)1) : new ItemStack(Material.ACTIVATOR_RAIL, 1));
}