ForgeAPI > ArrowNockEvent

追加矢を通常の弓でも発射できるようにするイベント. 旧IArrowNockHandler.

クラス

@Cancelable
public class ArrowNockEvent extends PlayerEvent
{
    public ItemStack result;
 
    public ArrowNockEvent(EntityPlayer player, ItemStack result)
    {
        super(player);
        this.result = result;
    }
}
 

使用例

public class ArrowNockEventHook
{
    @ForgeSubscribe
    public void onArrowNock(ArrowNockEvent event)
    {
        EntityPlayer player = event.entityPlayer;
        ItemStack itemstack = event.result;
 
        if (player.capabilities.isCreativeMode || player.inventory.hasItem(@Mod.instance.itemNewArrow.shiftedIndex))
        {
            player.setItemInUse(itemstack, Item.bow.getMaxItemUseDuration(itemstack));
            event.setCanceled(true);
        }
    }
}
 
基本的にはItemBowのonItemRightClickのまま. 追加した矢を判定するようにするだけ. event.setCanseled()は, Eventが成功したら(この場合追加した矢がインベントリにあるなら), これ以降このインスタンスのイベントは実行されないようにするということ.
最終更新:2012年08月25日 22:20