Java 类net.minecraftforge.fml.common.gameevent.PlayerEvent.ItemCraftedEvent 实例源码

项目:minecraft-territorialdealings    文件:EventListener.java   
@SubscribeEvent
public void onItemCrafted(ItemCraftedEvent event)
{
    if (event.player.worldObj.isRemote) { return; } // Server side only

    if (event.crafting.getItem() instanceof LeaderRequiredItem) // Only leaders can craft this item
    {
        if (TerritoryHandler.getFactionPlayerIsLeaderOf(event.player) == null)
        {
            Main.console("Item is leader-only, but the player is not a leader. Removing the item.");
            event.crafting.stackSize = 0;   // Not having it

            //event.setCanceled(true);  // That event cannot be cancelled. How do I reliably stop the creation of this item? Setting the stack size itself seems to be delayed until the metadata changes,
                                        // or some time passes and a sync is started
            //TODO: Refund the items used?
        }
        // else, is leader of at least one faction. Checks out.
    }
}
项目:DynamicSurroundings    文件:PlayerActionHandler.java   
@SubscribeEvent
public void onCrafting(@Nonnull final ItemCraftedEvent event) {
    if (!ModOptions.enableCraftingSound)
        return;

    if (this.craftSoundThrottle >= (EnvironState.getTickCounter() - 30))
        return;

    if (event.player == null || event.player.world == null)
        return;

    if (event.player.world.isRemote && EnvironState.isPlayer(event.player)) {
        this.craftSoundThrottle = EnvironState.getTickCounter();
        final BasicSound<?> sound = makeSound(Sounds.CRAFTING);
        SoundEffectHandler.INSTANCE.playSound(sound);
    }

}
项目:HempFarmer    文件:HempFarmer.java   
@SubscribeEvent(priority = EventPriority.NORMAL, receiveCanceled = true)
public void onItemCraft(ItemCraftedEvent event) {
    Item item = event.crafting.getItem();
    if (item == HFItems.seeds_hemp_crushed || item == HFItems.seeds_indica_crushed
            || item == HFItems.seeds_sativa_crushed) {
        for (int i = 0; i < event.craftMatrix.getSizeInventory(); i++) {
            if (event.craftMatrix.getStackInSlot(i) != null) {
                ItemStack stack = event.craftMatrix.getStackInSlot(i);
                if (stack.getItem() instanceof ItemShears) {
                    if (stack.getItemDamage() < stack.getMaxDamage()) {
                        stack.shrink(1);
                        stack.setItemDamage(stack.getItemDamage() + 1);
                        event.craftMatrix.setInventorySlotContents(i, stack);
                    }
                }
            }
        }
    }


}
项目:Toms-Mod    文件:EventHandler.java   
@SubscribeEvent
public void onItemCraftedEvent(ItemCraftedEvent event) {
    if (event.crafting != null) {
        if (event.crafting.getItem() instanceof ICustomCraftingHandler)
            ((ICustomCraftingHandler) event.crafting.getItem()).onCrafing(event.player, event.crafting, event.craftMatrix);
        else if (event.crafting.getItem() instanceof ItemBlock && ((ItemBlock) event.crafting.getItem()).block instanceof ICustomCraftingHandler)
            ((ICustomCraftingHandler) ((ItemBlock) event.crafting.getItem()).block).onCrafing(event.player, event.crafting, event.craftMatrix);
    }
    for (int i = 0;i < event.craftMatrix.getSizeInventory();i++) {
        ItemStack s = event.craftMatrix.getStackInSlot(i);
        if (s != null) {
            if (s.getItem() instanceof ICustomCraftingHandler)
                ((ICustomCraftingHandler) s.getItem()).onUsing(event.player, event.crafting, event.craftMatrix, s);
            else if (s.getItem() instanceof ItemBlock && ((ItemBlock) s.getItem()).block instanceof ICustomCraftingHandler)
                ((ICustomCraftingHandler) ((ItemBlock) s.getItem()).block).onCrafing(event.player, event.crafting, event.craftMatrix);
        }
    }
    if (event.crafting != null) {
        Item item = event.crafting.getItem();
        if (item == Item.getItemFromBlock(CoreInit.researchTable)) {
            AchievementHandler.giveAchievement(event.player, "researchTable");
        } else if (item == CoreInit.treeTap) {
            AchievementHandler.giveAchievement(event.player, "treetap");
        }
    }
}
项目:Alloycraft    文件:EventHandler.java   
@SubscribeEvent
public void onCrafted(ItemCraftedEvent event) {
    if (event.crafting.getItem() == Item.getItemFromBlock(AlloycraftBlocks.forgeoff)) {
        event.player.addStat(AlloycraftMain.alloyforge);
    }
    if (event.crafting.getItem() == AlloycraftItems.alloy) {
        event.player.addStat(AlloycraftMain.alloy);
    }
    if (event.crafting.getItem() == AlloycraftItems.alloyaxe) {
        event.player.addStat(AlloycraftMain.alloyaxe);
    }
    if (event.crafting.getItem() == AlloycraftItems.alloysword) {
        event.player.addStat(AlloycraftMain.alloysword);
    }
    if (event.crafting.getItem() == AlloycraftItems.alloypickaxe) {
        event.player.addStat(AlloycraftMain.alloypick);
    }
    if (event.crafting.getItem() == AlloycraftItems.alloyshovel) {
        event.player.addStat(AlloycraftMain.alloyshovel);
    }
    if (event.crafting.getItem() == AlloycraftItems.alloyhoe) {
        event.player.addStat(AlloycraftMain.alloyhoe);
    }
}
项目:Culinary-Cultivation    文件:ItemCraftingEvent.java   
@SubscribeEvent
public void craftingHandler(ItemCraftedEvent craftedEvent) {
    for (int i = 0; i < craftedEvent.craftMatrix.getSizeInventory(); i++) {
        ItemStack stack = craftedEvent.craftMatrix.getStackInSlot(i);
        if (!stack.isEmpty() && stack.getItem() instanceof ICraftingTool && !(craftedEvent.crafting.getItem() instanceof ICraftingTool)) {
            ItemStack craftingTool = new ItemStack(stack.getItem(), 2, stack.getItemDamage() + 1);

            if (NBTHelper.hasTag(stack) && stack.getTagCompound() != null) {
                craftingTool.setTagCompound(stack.getTagCompound());
            }

            if (craftingTool.getItemDamage() >= craftingTool.getMaxDamage()) {
                craftingTool.shrink(1);
            }
            craftedEvent.craftMatrix.setInventorySlotContents(i, craftingTool);
        }
    }
}
项目:Skills    文件:Carpentry.java   
@Override
public void onEvent(Object event) 
{

    if(event instanceof ItemCraftedEvent)
    {
        ItemCraftedEvent newEvent = (ItemCraftedEvent) event;
        RecipeWrapper recipe = RecipeHelper.getWrappedRecipefromItemStack((newEvent.crafting));

        if(recipe!= null && recipe.getSkill() == this.id)
        {
            this.calculateGain(this.tracker.trackedEntity, new SkillDifficulty("woodworking").setDifficulty(recipe.getDifficulty()));
        }
    }else if(event instanceof ItemSmeltedEvent)
    {

    }   
}
项目:Skills    文件:BowCrafting.java   
@Override
public void onEvent(Object event) 
{
    if(event instanceof ItemCraftedEvent)
    {
        ItemCraftedEvent newEvent = (ItemCraftedEvent) event;

        RecipeWrapper recipe = RecipeHelper.getWrappedRecipefromItemStack((newEvent.crafting));

        if(recipe!= null && recipe.getSkill() == this.id)
        {
            this.calculateGain(this.tracker.trackedEntity, new SkillDifficulty(this.id).setDifficulty(recipe.getDifficulty()));
        }

    }
}
项目:taam    文件:TaamCraftingHandler.java   
@SubscribeEvent
public void onCrafting(ItemCraftedEvent craftedEvent) {
    //ItemStack item = craftedEvent.crafting;
    IInventory craftMatrix = craftedEvent.craftMatrix;
    for(int i=0; i < craftMatrix.getSizeInventory(); i++)
    {
        if(craftMatrix.getStackInSlot(i) != null)
        {
            ItemStack j = craftMatrix.getStackInSlot(i);
            if(j.getItem() != null && isDamageCrafting(j))
            {
                if(j.getItemDamage() + 1 < j.getItem().getMaxDamage()) {
                    ItemStack k = new ItemStack(j.getItem(), 2, j.getItemDamage() + 1);
                    craftMatrix.setInventorySlotContents(i, k);
                }
            }
        }
    }
}
项目:Ores-and-Tools    文件:Events.java   
@SubscribeEvent
public void onPlayerItemCrafted(ItemCraftedEvent event)
{
    for(int slot = 0; slot < event.craftMatrix.getSizeInventory(); slot++)
    {
        ItemStack item = event.craftMatrix.getStackInSlot(slot);
        if(item != null)
        {
            if(item.getItem() == setItems.mortar_and_pestle)
            {
                ItemStack newitem = new ItemStack(setItems.mortar_and_pestle, 2, item.getItemDamage() + 1);
                if(newitem.getItemDamage() >= newitem.getMaxDamage())
                {
                    newitem.shrink(1);
                }
                event.craftMatrix.setInventorySlotContents(slot, newitem);
            }
        }
    }
}
项目:JustJunk    文件:FMLEventHandlerCommon.java   
@SubscribeEvent(priority = EventPriority.NORMAL)
public void onItemCraftedEvent(ItemCraftedEvent event){
    //System.out.println(event.crafting.getUnlocalizedName());
    if (event.crafting.getUnlocalizedName().equals("item.stick")){
        int random_number = (int) (Math.random() * 4);
        if (!event.player.world.isRemote) {
            event.player.inventory.addItemStackToInventory(new ItemStack(ModItems.brokenstick, random_number));
            event.crafting.shrink(random_number);
            if (event.player instanceof EntityPlayerMP){
                ((EntityPlayerMP) event.player).sendContainerToPlayer(event.player.inventoryContainer);
            }
        }
    }
}
项目:DankNull    文件:ModEvents.java   
@SubscribeEvent
public void onCrafted(ItemCraftedEvent e) {
    if (e.crafting.getItem() instanceof ItemDankNull) {
        for (int i = 0; i < e.craftMatrix.getSizeInventory(); ++i) {
            if (!e.craftMatrix.getStackInSlot(i).isEmpty() && e.craftMatrix.getStackInSlot(i).getItem() instanceof ItemDankNull) {
                NBTTagCompound oldCompound = e.craftMatrix.getStackInSlot(i).getTagCompound();
                e.crafting.setTagCompound(oldCompound);
                break;
            }
            ItemUtils.setItem(e.crafting, e.crafting.getItem());
        }
    }
}
项目:Aether-Legacy    文件:AetherEventHandler.java   
@SubscribeEvent
public void onCrafting(ItemCraftedEvent event)
{
    EntityPlayer player = event.player;
    ItemStack stack = event.crafting;

    if (stack.getItem() == ItemsAether.holystone_pickaxe)
    {
        player.addStat(AchievementList.BUILD_BETTER_PICKAXE);
    }

    if (stack.getItem() == ItemsAether.skyroot_pickaxe)
    {
        player.addStat(AchievementList.BUILD_PICKAXE);
    }

    if (stack.getItem() == ItemsAether.skyroot_sword)
    {
        player.addStat(AchievementList.BUILD_SWORD);
    }

    if (stack.getItem() == Item.getItemFromBlock(BlocksAether.enchanter))
    {
        player.addStat(AchievementsAether.enchanter);
    }

    if (isGravititeTool(stack.getItem()))
    {
        player.addStat(AchievementsAether.grav_tools);
    }
}
项目:CivCraft    文件:BeakerEarningListener.java   
@SubscribeEvent
public void playerCrafted(ItemCraftedEvent event) {
    if (event.player.worldObj.isRemote)
        return;
    if (isPlayerFake(event.player))
        return;
    if (event.crafting == null || event.crafting.getItem() == null)
        return;
    String itemName = "craft." + event.crafting.getItem().getUnlocalizedName(event.crafting);
    PlayerResearchHelper.progressResearch(event.player, itemName, 1, true);
}
项目:Culinary-Cultivation    文件:ItemCraftingEvent.java   
@SubscribeEvent
public void drumstickCraftedEvent(ItemCraftedEvent event) {
    ItemStack stack = event.crafting;
    if (stack.getItem() == ModItems.MEAT && stack.getItemDamage() == MeatType.CHICKEN_NUGGET.getMetadata()) {
        Random rand = event.player.getRNG();
        InventoryHandlerHelper.giveItem(event.player, EnumHand.MAIN_HAND, new ItemStack(ModItems.MEAT, rand.nextInt(5) == 1 ? 2 : 1, MeatType.DRUMSTICK.getMetadata()));
    }
}
项目:mod_quiver    文件:FFQEventHandler.java   
@SubscribeEvent
public void onItemCraftedEvent(ItemCraftedEvent event) {
    if (event.crafting != null && event.crafting.getItem() instanceof ItemBowAndQuiver) {
        for (int i = 0; i < event.craftMatrix.getSizeInventory(); i++) {
            if (event.craftMatrix.getStackInSlot(i) != null
                    && event.craftMatrix.getStackInSlot(i).getItem() instanceof ItemBowAndQuiver
                    && event.craftMatrix.getStackInSlot(i).isItemEnchanted() ) {
                EnchantmentHelper.setEnchantments(EnchantmentHelper.getEnchantments(event.craftMatrix.getStackInSlot(i)), 
                        event.crafting);
            }
        }
    }
}
项目:Progression    文件:TriggerCrafting.java   
@SubscribeEvent
public void onEvent(ItemCraftedEvent event) {
    ItemStack result = event.crafting.copy();
    if (result.stackSize != 0) {
        ProgressionAPI.registry.fireTrigger(event.player, getProvider().getUnlocalisedName(), event.crafting.copy());
    }
}
项目:Wolf-s-addons    文件:CraftingHandler.java   
@SubscribeEvent
public void onCrafting(ItemCraftedEvent event)
{
    if(event.crafting.getItem().equals(Item.getItemFromBlock(WolfBlockList.compressor)))
    {
        event.player.addStat(WolfAchievements.craftCompressor, 1);
    }

    if(event.crafting.getItem().equals(WolfItemList.silverIngot))
    {
        event.player.addStat(WolfAchievements.silverIngot, 1);
    }

    if(event.crafting.getItem().equals(WolfItemList.redstoneIngot))
    {
        event.player.addStat(WolfAchievements.redstoneIngot, 1);
    }

    if(event.crafting.getItem().equals(WolfItemList.lapisIngot))
    {
        event.player.addStat(WolfAchievements.lapisIngot, 1);
    }

    if(event.crafting.getItem().equals(WolfItemList.emeraldIngot))
    {
        event.player.addStat(WolfAchievements.emeraldIngot, 1);
    }
}
项目:MineCamera    文件:EventLoader.java   
@SubscribeEvent
public void onPlayerItemCrafted(ItemCraftedEvent event) {
    if(Block.getBlockFromItem(event.crafting.getItem()) instanceof BlockPhotoProcessor &&!event.player.getEntityWorld().isRemote&&!event.player.hasAchievement(AchievementLoader.craftprocessor)){
        event.player.addStat(AchievementLoader.craftprocessor);
    }
    if(Block.getBlockFromItem(event.crafting.getItem()) instanceof BlockPictureFrame &&!event.player.getEntityWorld().isRemote&&!event.player.hasAchievement(AchievementLoader.craftpictureframe)){
        event.player.addStat(AchievementLoader.craftpictureframe);
    }
    if(Block.getBlockFromItem(event.crafting.getItem()) instanceof BlockPictureFrameMultiple &&!event.player.getEntityWorld().isRemote&&!event.player.hasAchievement(AchievementLoader.craftpictureframe_multiple)){
        event.player.addStat(AchievementLoader.craftpictureframe_multiple);
    }
    if(event.crafting.getItem() instanceof ItemPhotoPaper&!event.player.getEntityWorld().isRemote&&!event.player.hasAchievement(AchievementLoader.craftphoto_paper)){
        event.player.addStat(AchievementLoader.craftphoto_paper);
    }
    if(event.crafting.getItem() instanceof ItemGlassesHelmet&!event.player.getEntityWorld().isRemote&&!event.player.hasAchievement(AchievementLoader.craftglasses)){
        event.player.addStat(AchievementLoader.craftglasses);
    }
    if(event.crafting.getItem() instanceof ItemFilm&&!event.player.getEntityWorld().isRemote&&!event.player.hasAchievement(AchievementLoader.craftfilm)){
        event.player.addStat(AchievementLoader.craftfilm);
    }
    if(event.crafting.getItem() instanceof ItemTripod&&!event.player.getEntityWorld().isRemote&&!event.player.hasAchievement(AchievementLoader.crafttripod)){
        event.player.addStat(AchievementLoader.crafttripod);
    }
    if(event.crafting.getItem() instanceof ItemPictureBook&&!event.player.getEntityWorld().isRemote&&!event.player.hasAchievement(AchievementLoader.craftpicture_book)){
        event.player.addStat(AchievementLoader.craftpicture_book);
    }
    if (event.crafting.getItem() instanceof ItemCamera) {
        if(!event.player.getEntityWorld().isRemote&&!event.player.hasAchievement(AchievementLoader.craftcamera)){
            System.out.println("has no stat");
            event.player.addStat(AchievementLoader.craftcamera);
        }
        for (int i = 0; i < 9; i++) {
            if (event.craftMatrix.getStackInSlot(i) != null
                    && event.craftMatrix.getStackInSlot(i).getItem() instanceof ItemTripod) {
                if (!event.player.inventory.addItemStackToInventory(new ItemStack(ItemLoader.itemCamera))) {
                    if (!event.player.getEntityWorld().isRemote) {
                        Block.spawnAsEntity(event.player.getEntityWorld(), event.player.getPosition(),
                                new ItemStack(ItemLoader.itemCamera));
                    }
                }
                if (!event.player.inventory.addItemStackToInventory(new ItemStack(Blocks.IRON_BLOCK, 3))) {
                    if (!event.player.getEntityWorld().isRemote) {
                        Block.spawnAsEntity(event.player.getEntityWorld(), event.player.getPosition(),
                                new ItemStack(Blocks.IRON_BLOCK, 3));
                    }
                }
                if (!event.player.inventory.addItemStackToInventory(new ItemStack(Items.ENDER_EYE))) {
                    if (!event.player.getEntityWorld().isRemote) {
                        Block.spawnAsEntity(event.player.getEntityWorld(), event.player.getPosition(),
                                new ItemStack(Items.ENDER_EYE));
                    }
                }
                break;
            }
        }
    }
}
项目:LightningCraft    文件:AchievementEvents.java   
/** Crafting achievements */
@SubscribeEvent
public void onCraftThing(ItemCraftedEvent e) {
    ItemStack output = e.crafting;
    Item item = output.getItem();
    Block block = Block.getBlockFromItem(item);
    int meta = output.getItemDamage();

    // items

    if(StackHelper.oreDictNameEquals(output, "rodLC")) {
        e.player.addStat(LCAchievements.craftRod, 1);
    }

    if(item instanceof ItemLightningGuide) {
        e.player.addStat(LCAchievements.craftGuide, 1);
    }

    if(item instanceof ItemBattery) {
        e.player.addStat(LCAchievements.craftBattery, 1);
    }

    if(item instanceof IInventoryLEUser) {
        e.player.addStat(LCAchievements.craftKinetic, 1);
    }

    // blocks

    if(block == LCBlocks.lightningCell) {
        e.player.addStat(LCAchievements.craftCell, 1);
    }

    if(block == LCBlocks.airTerminal) {
        e.player.addStat(LCAchievements.craftTerminal, 1);
    }

    if(block == LCBlocks.lightningFurnace) {
        e.player.addStat(LCAchievements.craftFurnace, 1);
    }

    if(block == LCBlocks.lightningCrusher) {
        e.player.addStat(LCAchievements.craftCrusher, 1);
    }

    if(block == LCBlocks.lightningInfuser) {
        e.player.addStat(LCAchievements.craftInfuser, 1);
    }

    if(block == LCBlocks.lightningMiner) {
        e.player.addStat(LCAchievements.craftMiner, 1);
    }

    if(block == LCBlocks.staticGenerator) {
        e.player.addStat(LCAchievements.craftGenerator, 1);
    }

    if(block == LCBlocks.wirelessBlock) {
        e.player.addStat(LCAchievements.craftWireless, 1);
    }

    if(block == LCBlocks.enchReallocator) {
        e.player.addStat(LCAchievements.craftReallocator, 1);
    }

}
项目:Skills    文件:EventHandler.java   
@SubscribeEvent
public void onCrafted(ItemCraftedEvent event)
{
    onEvent(event.player, event);
}