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);
}
}
java类net.minecraft.nbt.NBTException的实例源码
Tools.java 文件源码
项目:InControl
阅读 68
收藏 0
点赞 0
评论 0
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
阅读 18
收藏 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
阅读 26
收藏 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();
}
}