@Override public void giveItem(BaseItemStack itemStack) { this.player.inventory.addItemStackToInventory( new ItemStack(Item.getByNameOrId(itemStack.getType().getId()), itemStack.getAmount(), 0)); }
public static ItemStack toForgeItemStack(BaseItemStack item) { NBTTagCompound forgeCompound = null; if (item.getNbtData() != null) { forgeCompound = NBTConverter.toNative(item.getNbtData()); } return new ItemStack(Item.getByNameOrId(item.getType().getId()), item.getAmount(), 0, forgeCompound); }
@Override public boolean useItem(BlockVector3 position, BaseItem item, Direction face) { Item nativeItem = Item.getByNameOrId(item.getType().getId()); ItemStack stack = null; if (item.getNbtData() == null) { stack = new ItemStack(nativeItem, 1, 0); } else { stack = new ItemStack(nativeItem, 1, 0, NBTConverter.toNative(item.getNbtData())); } World world = getWorld(); EnumActionResult used = stack.onItemUse(new WorldEditFakePlayer((WorldServer) world), world, ForgeAdapter.toBlockPos(position), EnumHand.MAIN_HAND, ForgeAdapter.adapt(face), 0, 0, 0); return used != EnumActionResult.FAIL; }
@Nonnull private ItemStack getModItem( final String modID, final String name, final int meta ) { final Item item = Item.getByNameOrId( modID + ":" + name ); if( item == null ) { return ItemStack.EMPTY; } final ItemStack myItemStack = new ItemStack( item, 1, meta ); return myItemStack; }
@Nonnull @Override public net.minecraft.item.crafting.Ingredient parse( JsonContext context, JsonObject json ) { final String partName = json.get( "part" ).getAsString(); final Object result = Api.INSTANCE.registries().recipes().resolveItem( AppEng.MOD_ID, partName ); if( result instanceof ResolverResultSet ) { final ResolverResultSet resolverResultSet = (ResolverResultSet) result; return net.minecraft.item.crafting.Ingredient .fromStacks( resolverResultSet.results.toArray( new ItemStack[resolverResultSet.results.size()] ) ); } else if( result instanceof ResolverResult ) { final ResolverResult resolverResult = (ResolverResult) result; final Item item = Item.getByNameOrId( AppEng.MOD_ID + ":" + resolverResult.itemName ); final ItemStack itemStack = new ItemStack( item, 1, resolverResult.damageValue, resolverResult.compound ); return net.minecraft.item.crafting.Ingredient.fromStacks( itemStack ); } AELog.warn( "Looking for ingredient with name '" + partName + "' ended up with a null item!" ); return net.minecraft.item.crafting.Ingredient.EMPTY; } }
@Override public void readKey(String data) { key = Item.getByNameOrId(data); }
private static ItemStack getPart( JsonObject resultObject ) { String ingredient = JsonUtils.getString( resultObject, "part" ); Object result = AEApi.instance().registries().recipes().resolveItem( AppEng.MOD_ID, ingredient ); if( result instanceof ResolverResult ) { ResolverResult resolverResult = (ResolverResult) result; Item item = Item.getByNameOrId( AppEng.MOD_ID + ":" + resolverResult.itemName ); if( item == null ) { AELog.warn( "item was null for " + resolverResult.itemName + " ( " + ingredient + " )!" ); throw new JsonSyntaxException( "Got a null item for " + resolverResult.itemName + " ( " + ingredient + " ). This should never happen!" ); } return new ItemStack( item, JsonUtils.getInt( resultObject, "count", 1 ), resolverResult.damageValue, resolverResult.compound ); } else { throw new JsonSyntaxException( "Couldn't find the resulting item in AE. This means AE was provided a recipe that it shouldn't be handling.\n" + "Was looking for : '" + ingredient + "'." ); } }
/** * A blend between the itemRegistry.getObject and bockRegistry.getObject methods. Used for * grabbing something from an ID, when you have no clue what it might be. * * @param name The ID of the thing you're looking for. Domains are often preferred. * @return Hopefully the thing you're looking for. */ public static Object getThingByName (String name) { Object thing = Item.getByNameOrId(name); if (thing != null) { return thing; } thing = Block.getBlockFromName(name); if (thing != null) { return thing; } return null; }
private static List<Item> list(Object... items) { List<Item> itemList = new ArrayList(); for(Object o : items) if(o != null) { if(o instanceof Item) itemList.add((Item) o); else if(o instanceof Block) itemList.add(Item.getItemFromBlock((Block) o)); else if(o instanceof ItemStack) itemList.add(((ItemStack) o).getItem()); else if(o instanceof String) { Item i = Item.getByNameOrId((String) o); if(i != null) itemList.add(i); } } return itemList; }
private static void writeDefaultFile() { List<Item> defaults = new ArrayList<>(); if (Loader.isModLoaded("tconstruct")) { defaults.add(Item.getByNameOrId("tconstruct:pickaxe")); } if (Loader.isModLoaded("botania")) { defaults.add(Item.getByNameOrId("botania:specialFlower")); } JsonObject obj = (JsonObject) GSON.toJsonTree(new NBTWhiteList(defaults)); obj.add("__comment", new JsonPrimitive("To add items to NBT Whitelist, simply add its registry name as a String to the above array")); try { Files.write(GSON.toJson(obj), CONFIG, Charsets.UTF_8); } catch (IOException e) { e.printStackTrace(); } } }
private ItemStack getCropStack() { String res = this.myDropStrings.get(rand.nextInt(myDropStrings.size())); try { String[] ares = res.split(Pattern.quote("*")); Item item = Item.getByNameOrId(ares[0]); if (item == null) { ModCyclic.logger.error("Magic Bean config: loot item not found " + res); this.myDropStrings.remove(res); return getCropStack(); } String meta = (ares.length > 1) ? ares[1] : "0"; int imeta = Integer.parseInt(meta); ItemStack stack = new ItemStack(item, 1, imeta); return stack; } catch (Exception e) { ModCyclic.logger.error("Magic Bean config: loot item not found " + res); ModCyclic.logger.error(e.getMessage()); return new ItemStack(Blocks.DIRT); } }
public static ItemStack getItemStack(JsonObject jsonObject, String key, ItemStack def) { if (jsonObject.has(key)) { JsonElement element = jsonObject.get(key); if (element.isJsonObject()) { JsonObject obj = element.getAsJsonObject(); Item item = Item.getByNameOrId(obj.get("id").getAsString()); int count = getInt(obj, "count", 1); int damage = getInt(obj, "damage", 0); ItemStack itemStack = new ItemStack(item, count, damage); if (obj.has("nbt")) { try { NBTTagCompound tagCompound = JsonToNBT.getTagFromJson(obj.get("nbt").toString()); itemStack.setTagCompound(tagCompound); } catch (NBTException e) { MOLog.log(Level.ERROR, e, "Could not parse NBT tag from Json in '%s'"); } } return itemStack; } } return def; }
@Override public Render<? super EntityBlazeBolt> createRenderFor(RenderManager rm) { RenderSnowball<EntityBlazeBolt> x = new RenderSnowball<EntityBlazeBolt>(rm, Item.getByNameOrId("cyclicmagic:fire_dark_anim"), Minecraft.getMinecraft().getRenderItem()); return x;//new RenderBall<EntityBlazeBolt>(rm, "fire_dark"); } }
public ItemStack getItemStack() { Item item = Item.getByNameOrId(this.itemRegistryName); if (item != null) { ItemStack stack = new ItemStack(item, 1, this.metadata); if (nbt != null) { try { stack.setTagCompound(JsonToNBT.getTagFromJson(nbt)); } catch (NBTException e) { ToughAsNails.logger.error("Failed to parse NBT tag for ItemPredicate: ignoring NBT. " + "This is likely an error. (Item Name: " + itemRegistryName + ")"); } } return stack; } return null; } }
public ItemStack getItemStack() { if (isModded() || itemStack == null) { Item item = Item.getByNameOrId(name); if (item != null) { ItemStack itemStack = new ItemStack(item, itemAmount, itemDamage); itemStack.setTagCompound(nbtTagCompound); return itemStack; } } else { return itemStack; } return null; }
@Override public IRecipe addRecipe() { if (isBaked) { return null;// on recipe for this } RecipeRegistry.addShapedRecipe(new ItemStack(this, 16), "pcp", "cbc", "pcp", 'b', new ItemStack(Item.getByNameOrId(Const.MODRES + "peat_biomass")), 'c', "dirt", 'p', new ItemStack(Item.getByNameOrId(Const.MODRES + "peat_fuel"))); return RecipeRegistry.addShapedRecipe(new ItemStack(this, 4), "pcp", "c c", "pcp", 'c', "dirt", 'p', new ItemStack(Item.getByNameOrId(Const.MODRES + "peat_biomass"))); } }
@Override public void loadFromJson(JsonObject object) { Item item = Item.getByNameOrId(MOJsonHelper.getString(object, "id")); if (item != null) { int amount = MOJsonHelper.getInt(object, "count", 1); int damage = MOJsonHelper.getInt(object, "damage", 0); itemStack = new ItemStack(item, amount, damage); itemStack.setTagCompound(MOJsonHelper.getNbt(object, "nbt", null)); } visible = MOJsonHelper.getBool(object, "visible", true); }
private void spawnDrops() { for(Map.Entry<ItemStackID, Integer> schedDrop : drops.entrySet()) { ItemStackID itemStack = schedDrop.getKey(); String itemName = itemStack.getItemId(); Item foundItem = Item.getByNameOrId(itemName); if(foundItem == null) { continue; } int itemDamage = itemStack.getDamage(); int numItems = schedDrop.getValue(); while (numItems > itemStack.getMaxStackSize()) { ItemStack newItemStack = new ItemStack(foundItem, itemStack.getMaxStackSize(), itemDamage); EntityItem newEntityItem = new EntityItem(world, initalBlock.getX() + 0.5F, initalBlock.getY() + 0.5F, initalBlock.getZ() + 0.5F, newItemStack); world.spawnEntityInWorld(newEntityItem); numItems -= itemStack.getMaxStackSize(); } ItemStack newItemStack = new ItemStack(foundItem, numItems, itemDamage); newItemStack.setItemDamage(itemStack.getDamage()); EntityItem newEntityItem = new EntityItem(world, initalBlock.getX() + 0.5F, initalBlock.getY() + 0.5F, initalBlock.getZ() + 0.5F, newItemStack); world.spawnEntityInWorld(newEntityItem); } drops.clear(); }
@SubscribeEvent public static void onLeftClickBlock(PlayerInteractEvent.LeftClickBlock event) { BlockPos pos = event.getPos(); World world = event.getWorld(); ItemStack stack = event.getItemStack();//player held item if (world.getTileEntity(pos) instanceof TileEntityWirelessRec && stack.getItem() == Item.getByNameOrId("cyclicmagic:wireless_transmitter")) { UtilNBT.setItemStackBlockPos(stack, pos); UtilChat.sendStatusMessage(event.getEntityPlayer(), UtilChat.lang("tile.wireless_transmitter.saved") + UtilChat.blockPosToString(pos)); } }
public static ItemStack readItemStack(NBTTagCompound nbt) { Item item = Item.getByNameOrId(nbt.getString("id")); if (item == null) return null; //DIE! ItemStack stack = new ItemStack(item); stack.stackSize = nbt.getInteger("Count"); int damage = nbt.getShort("Damage"); if (damage < 0){ damage = 0; } stack.setItemDamage(damage); if (nbt.hasKey("tag", 10)) { stack.setTagCompound(nbt.getCompoundTag("tag")); stack.getItem().updateItemStackNBT(stack.getTagCompound()); } else stack.setTagCompound(null); return stack; }