@Override public void onInteract(Entity entity, Block block, Action type, BlockFace clickedface) { super.onInteract(entity, block, type, clickedface); if (type == Action.RIGHT_CLICK) { BlockMaterial clickedmat = block.getMaterial(); Cause<Entity> cause; if (entity instanceof Player) { cause = new PlayerCause((Player) entity); } else { cause = new EntityCause(entity); } if (clickedmat.equals(VanillaMaterials.TNT)) { // Detonate TntBlock VanillaMaterials.TNT.onIgnite(block, cause); } else { // Default fire creation Block target = block.translate(clickedface); // Default fire placement if (VanillaMaterials.FIRE.canCreate(target, (short) 0, cause)) { VanillaMaterials.FIRE.onCreate(target, (short) 0, cause); Slot held = PlayerUtil.getHeldSlot(entity); if (held != null && !PlayerUtil.isCostSuppressed(entity)) { held.addData(1); } } // Handle the creation of portals Point pos = target.translate(BlockFace.BOTTOM).getPosition(); VanillaObjects.NETHER_PORTAL.setActive( pos.getWorld(), pos.getBlockX(), pos.getBlockY(), pos.getBlockZ(), true); } } }
@Override public void onInteract(Entity entity, Block block, Action type, BlockFace clickedface) { super.onInteract(entity, block, type, clickedface); if (type == Action.RIGHT_CLICK) { BlockMaterial clickedmat = block.getMaterial(); if (clickedmat.equals(VanillaMaterials.TNT)) { // Detonate TntBlock VanillaMaterials.TNT.onIgnite(block); return; } else { // Default fire creation Block target = block.translate(clickedface); // Default fire placement clickedface = clickedface.getOpposite(); if (VanillaMaterials.FIRE.canPlace(target, (short) 0)) { if (VanillaMaterials.FIRE.onPlacement(target, (short) 0)) { PlayerQuickbar inv = entity.get(Human.class).getInventory().getQuickbar(); inv.addData(inv.getCurrentSlot(), 1); } } // Handle the creation of portals if (VanillaMaterials.PORTAL.createPortal(target.translate(BlockFace.BOTTOM))) { return; } } } }