public static ItemStack parseStack(String name) { if (name.contains("/")) { String[] split = StringUtils.split(name, "/"); ItemStack stack = parseStackNoNBT(split[0]); if (ItemStackTools.isEmpty(stack)) { return stack; } NBTTagCompound nbt; try { nbt = JsonToNBT.getTagFromJson(split[1]); } catch (NBTException e) { InControl.logger.log(Level.ERROR, "Error parsing NBT in '" + name + "'!"); return ItemStackTools.getEmptyStack(); } stack.setTagCompound(nbt); return stack; } else { return parseStackNoNBT(name); } }
public NBTTagCompound getEntityDataTag() { NBTTagCompound tag = null; if (!this.entityNBTData.equals("")) { try { tag = JsonToNBT.getTagFromJson(this.entityNBTData); } catch (NBTException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return tag; }
public NBTTagCompound getBlockStateDataTag() { NBTTagCompound tag = null; if (!this.blockStateData.equals("")) { try { tag = JsonToNBT.getTagFromJson(this.blockStateData); } catch (NBTException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return tag; }
SpecialItem(String n, byte c, short m, @Nullable String t) { name = n; amount = c; meta = m; if (t != null) { NBTTagCompound nbt; try { nbt = JsonToNBT.getTagFromJson(t); } catch (NBTException e) { MCFluxReport.sendException(e, "NBT Decoding"); nbt = null; } tag = nbt; } else tag = null; item = Item.getByNameOrId(name); }
@Override public Object Deserialize(Object input) { String json = "{}"; if(input instanceof String) { json = input.toString(); } else if(input instanceof ScriptObjectMirror) { json = NashornConfigProcessor.getInstance().nashorn.stringifyJsonObject((JSObject) input); } try { return JsonToNBT.getTagFromJson(json); } catch (NBTException e) { LogHelper.error("Unable to convert '" + json + "' to NBT tag.", e); return new NBTTagCompound(); } }
/** Creates a new ItemStack from the string acquired from makeStringFromItemStack or an oredict name, with an oredict index option */ public static ItemStack makeItemStackFromString(String stackString, int oreIndex) { if(stackString == LightningInfusionRecipe.nullIdentifier) return null; try { // try to load it as a regular NBT stack if(!isStringOreDict(stackString)) { return ItemStack.loadItemStackFromNBT(JsonToNBT.getTagFromJson(stackString)); } else { throw new NBTException("OreDict exists"); } } catch(NBTException e) { // now try to get it as an oredict entry List<ItemStack> list; if(isStringOreDict(stackString) && oreIndex < (list = OreDictionary.getOres(stackString)).size()) { return list.get(oreIndex); // yep } else { return null; // guess not } } }
public void handleClickServer(EntityNPC npc){ if(action.startsWith("action.nbt=")){ String[] equalsplit = action.split("="); String nbt_json = ""; for(int i = 1; i < equalsplit.length; i++){ nbt_json += equalsplit[i]; } NBTTagCompound newNBT; try { newNBT = JsonToNBT.getTagFromJson(nbt_json); } catch (NBTException e) { e.printStackTrace(); return; } npc.getScriptData().merge(newNBT); } }
public ItemStack getResourceStack() { if(stackOverride != null) { NBTTagCompound tag; try { tag = JsonToNBT.getTagFromJson(stackOverride); } catch (NBTException e) { e.printStackTrace(); return new ItemStack(getBlock(), 1, stackMeta); } if(tag != null) { ItemStack stack = new ItemStack(tag); if(stack != null) { return stack; } } } return new ItemStack(getBlock(), 1, stackMeta); }
/******************************************************************************** * Abstract - WorldSavedData ********************************************************************************/ @Override public void readFromNBT( NBTTagCompound comp ) { this.owners.clear(); try { this.owners.putAll( NBTUtil.toLimitedBlockOwnersMap( (NBTTagList)comp.getTag( NBT_OWNER_MAP ) ) ); } catch ( NBTException e ) { Log.error( e.getMessage() ); } }
/** * Gets Coordinate out of an NBTTagCompound * * @param NBTTagCompound * @return Coordinate * @throws NBTException */ public static Coordinate toCoordinate( NBTTagCompound comp ) throws NBTException { //All four keys required! if( ( comp.hasKey( NBT_COORDINATE_DIMID ) == false ) || ( comp.hasKey( NBT_COORDINATE_X ) == false ) || ( comp.hasKey( NBT_COORDINATE_Y ) == false ) || ( comp.hasKey( NBT_COORDINATE_Z ) == false ) ) { throw new NBTException( "NBTTagCompound has no coordinates." ); } return new Coordinate( comp.getInteger( NBT_COORDINATE_DIMID ), comp.getInteger( NBT_COORDINATE_X ), comp.getInteger( NBT_COORDINATE_Y ), comp.getInteger( NBT_COORDINATE_Z ) ); }
protected boolean validateChildren() throws ParserException { super.validateChildren(); this.blocks = this.validateRequiredAttribute(String.class, "Block", true); this.weight = this.validateNamedAttribute(Float.class, "Weight", this.weight, true); String nbtJson = this.validateNamedAttribute(String.class, "NBT", null, true); if (nbtJson != null) { try { NBTBase base = JsonToNBT.getTagFromJson(nbtJson); if (base instanceof NBTTagCompound) { this.nbt = (NBTTagCompound)base; } else { throw new ParserException("NBT is not a compound tag"); } } catch (NBTException e) { throw new ParserException("Failed to parse JSON", e); } } return true; }
@Override public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, IEntityLivingData livingdata) { setItemStackToSlot(this.isLeftHanded() ? EntityEquipmentSlot.OFFHAND : EntityEquipmentSlot.MAINHAND, new ItemStack(HarshenItems.PROPS, 1, 0)); try { setItemStackToSlot(this.isLeftHanded() ? EntityEquipmentSlot.MAINHAND : EntityEquipmentSlot.OFFHAND, new ItemStack(JsonToNBT.getTagFromJson("{id:\"minecraft:shield\",Count:1b,tag:{BlockEntityTag:{Patterns:[{Pattern:\"ss\",Color:6},{Pattern:\"flo\",Color:1}],Base:8}},Damage:0s}"))); } catch (NBTException e) { e.printStackTrace(); } this.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).applyModifier(new AttributeModifier("Random spawn bonus", this.rand.nextGaussian() * 0.05D, 1)); this.setLeftHanded(false); return livingdata; }
/** * Callback when the command is invoked */ public void processCommand(ICommandSender sender, String[] args) throws CommandException { if (args.length < 1) { throw new WrongUsageException("commands.testfor.usage", new Object[0]); } else { Entity entity = func_175768_b(sender, args[0]); NBTTagCompound nbttagcompound = null; if (args.length >= 2) { try { nbttagcompound = JsonToNBT.getTagFromJson(buildString(args, 1)); } catch (NBTException nbtexception) { throw new CommandException("commands.testfor.tagError", new Object[] {nbtexception.getMessage()}); } } if (nbttagcompound != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); entity.writeToNBT(nbttagcompound1); if (!NBTUtil.func_181123_a(nbttagcompound, nbttagcompound1, true)) { throw new CommandException("commands.testfor.failure", new Object[] {entity.getName()}); } } notifyOperators(sender, this, "commands.testfor.success", new Object[] {entity.getName()}); } }
@Override public NBTTagCompound deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { try { return JsonToNBT.getTagFromJson(json.getAsString()); } catch (NBTException e) { e.printStackTrace(); } throw new JsonParseException("Failed to parse nbt"); }
public SetNBT deserialize(JsonObject object, JsonDeserializationContext deserializationContext, LootCondition[] conditionsIn) { try { NBTTagCompound nbttagcompound = JsonToNBT.getTagFromJson(JsonUtils.getString(object, "tag")); return new SetNBT(conditionsIn, nbttagcompound); } catch (NBTException nbtexception) { throw new JsonSyntaxException(nbtexception); } }
/** * Callback for when the command is executed */ public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException { if (args.length < 1) { throw new WrongUsageException("commands.testfor.usage", new Object[0]); } else { Entity entity = getEntity(server, sender, args[0]); NBTTagCompound nbttagcompound = null; if (args.length >= 2) { try { nbttagcompound = JsonToNBT.getTagFromJson(buildString(args, 1)); } catch (NBTException nbtexception) { throw new CommandException("commands.testfor.tagError", new Object[] {nbtexception.getMessage()}); } } if (nbttagcompound != null) { NBTTagCompound nbttagcompound1 = entityToNBT(entity); if (!NBTUtil.areNBTEquals(nbttagcompound, nbttagcompound1, true)) { throw new CommandException("commands.testfor.failure", new Object[] {entity.getName()}); } } notifyCommandListener(sender, this, "commands.testfor.success", new Object[] {entity.getName()}); } }
/** * Makes an {@link ItemStack} based on the itemName reference, with supplied meta, stackSize and nbt, if possible * <p/> * Will return null if the item doesn't exist (because it's not from a loaded mod for example) * Will throw a {@link RuntimeException} if the nbtString is invalid for use in an {@link ItemStack} * * @param itemName a registry name reference * @param meta the meta * @param stackSize the stack size * @param nbtString an nbt stack as a string, will be processed by {@link JsonToNBT} * @return a new itemstack */ public static ItemStack makeItemStack(String itemName, int meta, int stackSize, String nbtString) { if (itemName == null) { throw new IllegalArgumentException("The itemName cannot be null"); } Item item = GameData.getItemRegistry().getObject(new ResourceLocation(itemName)); if (item == null) { FMLLog.getLogger().log(Level.TRACE, "Unable to find item with name {}", itemName); return null; } ItemStack is = new ItemStack(item, stackSize, meta); if (!Strings.isNullOrEmpty(nbtString)) { NBTBase nbttag = null; try { nbttag = JsonToNBT.getTagFromJson(nbtString); } catch (NBTException e) { FMLLog.getLogger().log(Level.WARN, "Encountered an exception parsing ItemStack NBT string {}", nbtString, e); throw Throwables.propagate(e); } if (!(nbttag instanceof NBTTagCompound)) { FMLLog.getLogger().log(Level.WARN, "Unexpected NBT string - multiple values {}", nbtString); throw new RuntimeException("Invalid NBT JSON"); } else { is.setTagCompound((NBTTagCompound)nbttag); } } return is; }
private void addNBTToStack(final String nbtString, final ItemStack stack, final EntityPlayer player) { NBTBase base; try { base = JsonToNBT.func_150315_a(nbtString); if (base instanceof NBTTagCompound) { stack.setTagCompound((NBTTagCompound) base); } else { player.addChatMessage(new ChatComponentText("Error: Invalid NBT type provided in JSON.")); } } catch (final NBTException e) { player.addChatMessage(new ChatComponentText("Error: Invalid NBT JSON data: " + e.getMessage())); } }
/** * Makes an {@link ItemStack} based on the itemName reference, with supplied meta, stackSize and nbt, if possible * * Will return null if the item doesn't exist (because it's not from a loaded mod for example) * Will throw a {@link RuntimeException} if the nbtString is invalid for use in an {@link ItemStack} * * @param itemName a registry name reference * @param meta the meta * @param stackSize the stack size * @param nbtString an nbt stack as a string, will be processed by {@link JsonToNBT} * @return a new itemstack */ public static ItemStack makeItemStack(String itemName, int meta, int stackSize, String nbtString) { if (itemName == null) throw new IllegalArgumentException("The itemName cannot be null"); Item item = GameData.getItemRegistry().func_82594_a(itemName); if (item == null) { FMLLog.getLogger().log(Level.TRACE, "Unable to find item with name {}", itemName); return null; } ItemStack is = new ItemStack(item,1,meta); if (!Strings.isNullOrEmpty(nbtString)) { NBTBase nbttag = null; try { nbttag = JsonToNBT.func_150315_a(nbtString); } catch (NBTException e) { FMLLog.getLogger().log(Level.WARN, "Encountered an exception parsing ItemStack NBT string {}", nbtString, e); throw Throwables.propagate(e); } if (!(nbttag instanceof NBTTagCompound)) { FMLLog.getLogger().log(Level.WARN, "Unexpected NBT string - multiple values {}", nbtString); throw new RuntimeException("Invalid NBT JSON"); } else { is.func_77982_d((NBTTagCompound) nbttag); } } return is; }
private static UUID readUUID(String uuid) throws NBTException, NoSuchFieldException { NBTTagCompound readTag = JsonToNBT.getTagFromJson(uuid); if (readTag.hasUniqueId("uuid")) { return readTag.getUniqueId("uuid"); } else { throw new NoSuchFieldException("Missing field in the Json: uuid"); } }
@Override public void update(String s) { try { deserializeNBT(JsonToNBT.getTagFromJson(s)); } catch (NBTException e) { e.printStackTrace(); } }
/** * Takes a string that contains JSON and converts that into a new compound-tag. **/ public CompoundTagWrapper newCompoundTag(String json) { try { return new CompoundTagWrapper(JsonToNBT.getTagFromJson(json)); } catch (NBTException e) { e.printStackTrace(); return new CompoundTagWrapper(); } }
@Override public void call(QADTextField field, String text) { try{ stack.setTagCompound(JsonToNBT.getTagFromJson(text)); field.setTextColor(0xffffff); }catch (NBTException e){ field.setTextColor(0xff0000); return; } }
@Override public void call(QADTextField field, String text) { try{ drops.get(index).stack.setTagCompound(JsonToNBT.getTagFromJson(text)); field.setTextColor(0xffffff); }catch (NBTException e){ field.setTextColor(0xff0000); return; } }
public NBTTagCompound getTag() { if(nbtString == null) { return null; } try { return JsonToNBT.getTagFromJson(nbtString); } catch (NBTException e) { SettlerCraft.instance.getLogger().printStackTrace(e); } return null; }
/** * Gets Coordinate Set out of an NBTTagList * * @param NBTTagList * @return Set<Coordinate> * @throws NBTException */ public static Set<Coordinate> toCoordinateSet( NBTTagList list ) throws NBTException { Set<Coordinate> coordinates = new HashSet<Coordinate>(); for( int i = 0; i < list.tagCount(); i++ ) { coordinates.add( NBTUtil.toCoordinate( list.getCompoundTagAt( i ) ) ); } return coordinates; }
/** * Get one LimitedBlock with Set<Coordinate> out of an NBTTagCompound * * @param NBTTagCompound * @return Map<LimitedBlock, Set<Coordinate>> * @throws ParseException * @throws NBTException */ public static Map<LimitedBlock, Set<Coordinate>> toLimitedBlockCoordinatesMap( NBTTagCompound comp ) throws ParseException, NBTException { Map<LimitedBlock, Set<Coordinate>> result = new HashMap<LimitedBlock, Set<Coordinate>>(); result.put( LimitedResources.getLimitedBlockByItemStack( ParserUtil.parseStringToItemStack( comp.getString( NBT_LIMITEDBLOCK_NAME ) ) ), NBTUtil.toCoordinateSet( (NBTTagList)comp.getTag( NBT_LIMITEDBLOCK_COORDINATES ) ) ); return result; }
/** * Get multiple LimitedBlocks with Set<Coordiante> out of an NBTTagList * * @param NBTTagList * @return Map<LimitedBlock, Set<Coordinate>> * @throws NBTException * @throws ParseException */ public static Map<LimitedBlock, Set<Coordinate>> toLimitedBlocksCoordinatesMap( NBTTagList list ) throws ParseException, NBTException { Map<LimitedBlock, Set<Coordinate>> result = new HashMap<LimitedBlock, Set<Coordinate>>(); for( int i = 0; i < list.tagCount(); i++ ) { result.putAll( NBTUtil.toLimitedBlockCoordinatesMap( list.getCompoundTagAt( i ) ) ); } return result; }
/** * Get one Coordinate->Owner out of an NBTTagCompound * * @param NBTTagCompound * @return Map<Coordinate, String> * @throws NBTException */ public static Map<Coordinate, UUID> toLimitedBlockOwnerMap( NBTTagCompound comp ) throws NBTException { Map<Coordinate, UUID> result = new HashMap<Coordinate, UUID>(); result.put( NBTUtil.toCoordinate( (NBTTagCompound) comp.getTag( NBT_LIMITEDBLOCKOWNER_COORDINATE ) ), UUID.fromString( comp.getString( NBT_LIMITEDBLOCKOWNER_UUID ) ) ); return result; }