java类net.minecraft.nbt.NBTException的实例源码

Tools.java 文件源码 项目:InControl 阅读 68 收藏 0 点赞 0 评论 0
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);
    }
}
BuildEntity.java 文件源码 项目:MC-Prefab 阅读 19 收藏 0 点赞 0 评论 0
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;
}
BuildBlock.java 文件源码 项目:MC-Prefab 阅读 28 收藏 0 点赞 0 评论 0
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;
}
BuildTileEntity.java 文件源码 项目:MC-Prefab 阅读 15 收藏 0 点赞 0 评论 0
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;
}
SpecialEvent.java 文件源码 项目:Minecraft-Flux 阅读 20 收藏 0 点赞 0 评论 0
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);
}
NbtTagCompoundDeserializer.java 文件源码 项目:CraftingHarmonics 阅读 20 收藏 0 点赞 0 评论 0
@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();
    }
}
StackHelper.java 文件源码 项目:LightningCraft 阅读 17 收藏 0 点赞 0 评论 0
/** 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
        }
    }
}
NPCDialogue.java 文件源码 项目:TaleCraft 阅读 20 收藏 0 点赞 0 评论 0
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);
    }
}
Schematic.java 文件源码 项目:SettlerCraft 阅读 25 收藏 0 点赞 0 评论 0
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);
}
LimitedBlockOwners.java 文件源码 项目:LimitedResources 阅读 17 收藏 0 点赞 0 评论 0
/********************************************************************************
 * 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() );
    }
}
NBTUtil.java 文件源码 项目:LimitedResources 阅读 19 收藏 0 点赞 0 评论 0
/**
 * 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 )
    );
}
ValidatorBlockDescriptor.java 文件源码 项目:CustomOreGen 阅读 18 收藏 0 点赞 0 评论 0
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;
 }
EntitySoullessKnight.java 文件源码 项目:harshencastle 阅读 26 收藏 0 点赞 0 评论 0
@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;
}
CommandTestFor.java 文件源码 项目:DecompiledMinecraft 阅读 22 收藏 0 点赞 0 评论 0
/**
 * 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()});
    }
}
CommandTestFor.java 文件源码 项目:DecompiledMinecraft 阅读 19 收藏 0 点赞 0 评论 0
/**
 * 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()});
    }
}
CommandTestFor.java 文件源码 项目:BaseClient 阅读 21 收藏 0 点赞 0 评论 0
/**
 * 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()});
    }
}
CommandTestFor.java 文件源码 项目:BaseClient 阅读 21 收藏 0 点赞 0 评论 0
/**
 * 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()});
    }
}
NBTTagCompoundDeserializer.java 文件源码 项目:customstuff4 阅读 22 收藏 0 点赞 0 评论 0
@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");
}
SetNBT.java 文件源码 项目:Backmemed 阅读 18 收藏 0 点赞 0 评论 0
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);
    }
}
CommandTestFor.java 文件源码 项目:Backmemed 阅读 19 收藏 0 点赞 0 评论 0
/**
 * 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()});
    }
}
GameRegistry.java 文件源码 项目:CustomWorldGen 阅读 22 收藏 0 点赞 0 评论 0
/**
 * 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;
}
SetNBT.java 文件源码 项目:CustomWorldGen 阅读 19 收藏 0 点赞 0 评论 0
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);
    }
}
CommandTestFor.java 文件源码 项目:CustomWorldGen 阅读 19 收藏 0 点赞 0 评论 0
/**
 * 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()});
    }
}
BlindBag.java 文件源码 项目:FerretShinies 阅读 22 收藏 0 点赞 0 评论 0
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()));
    }
}
GameRegistry.java 文件源码 项目:TRHS_Club_Mod_2016 阅读 23 收藏 0 点赞 0 评论 0
/**
 * 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;
}
Config.java 文件源码 项目:Toms-Mod 阅读 19 收藏 0 点赞 0 评论 0
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");
    }
}
TileGrinder.java 文件源码 项目:TeslaEssentials 阅读 17 收藏 0 点赞 0 评论 0
@Override
public void update(String s) {
    try {
        deserializeNBT(JsonToNBT.getTagFromJson(s));
    } catch (NBTException e) {
        e.printStackTrace();
    }
}
TileElectricFurnace.java 文件源码 项目:TeslaEssentials 阅读 23 收藏 0 点赞 0 评论 0
@Override
public void update(String s) {
    try {
        deserializeNBT(JsonToNBT.getTagFromJson(s));
    } catch (NBTException e) {
        e.printStackTrace();
    }
}
TileCharger.java 文件源码 项目:TeslaEssentials 阅读 19 收藏 0 点赞 0 评论 0
@Override
public void update(String s) {
    try {
        deserializeNBT(JsonToNBT.getTagFromJson(s));
    } catch (NBTException e) {
        e.printStackTrace();
    }
}
TileCapacitor.java 文件源码 项目:TeslaEssentials 阅读 23 收藏 0 点赞 0 评论 0
@Override
public void update(String s) {
    try {
        deserializeNBT(JsonToNBT.getTagFromJson(s));
    } catch (NBTException e) {
        e.printStackTrace();
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号