废话不多说,直接上代码。

//使用配方例子
Deploying(
    <minecraft:stick>, // 使用的物品 = inputItem
    "minecraft:grass", // 被转换的方块 = inputBlock 类型字符串
    0, // 被转换的方块的meta值 = inputBlock_meta(没有填0)
    <minecraft:planks>, // 转换成的方块的物品元数据 = outputBlock
    2, // 转换成的方块的meta值 = inputBlock_meta(没有填0)
    true // 是否消耗使用的物品 = itemExpend 设置为true即消耗
    //使用木棍(消耗)将草方块转换成白桦木板


//仿 高版本机械动力“使用”配方 函数
function Deploying(inputItem as IItemStack, inputBlock as string, inputBlock_meta as int, outputBlock as IItemStack, outputBlock_meta as int, itemExpend as bool){
    events.onPlayerInteractBlock(function(event as PlayerInteractBlockEvent){
        var Deploying_block = event.block;
        var Deploying_item = event.item;
        var Deploying_position = event.position;
        var world0 = event.world;
        var player = event.player;
        if(inputItem.matches(Deploying_item)){
            if(!isNull(Deploying_block) && Deploying_block.definition.id == inputBlock && Deploying_block.meta == inputBlock_meta){
                world0.destroyBlock(Deploying_position, false);
                world0.setBlockState(outputBlock.asBlock().definition.getStateFromMeta(outputBlock_meta), Deploying_position);
                event.player.sendStatusMessage(format.red("§4转换成功!"));
                if(itemExpend != false){
                    Deploying_item.mutable().withAmount(Deploying_item.amount - 1);
                }  
            }
        }
    });
}

*需要ZenUtils的支持
想要的话免费拿去copy,用爱发电(毕竟是很简单的一个事件的完成)

(我也是事件苦手,不提供原理教程了就!)