@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. } }
@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); } }
@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); } } } } } }
@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"); } } }
@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); } }
@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); } } }
@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) { } }
@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())); } } }
@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); } } } } }
@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); } } } }
@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); } } } }
@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()); } } }
@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); } }
@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); }
@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())); } }
@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); } } } }
@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()); } }
@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); } }
@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; } } } }
/** 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); } }
@SubscribeEvent public void onCrafted(ItemCraftedEvent event) { onEvent(event.player, event); }