ModMCdl Posted November 2, 2017 Posted November 2, 2017 (edited) Hey, I'm trying to set up my custom crafting tile entity, and I cannot find out why I'm getting this error: Cannot cast from boolean to ItemStack private boolean canCraft() { if(((ItemStack)this.inventory.get(0).isEmpty() || ((ItemStack)this.inventory.get(1).isEmpty()))) //this line errors return false; else { ItemStack result = PestleRecipe.instance().getPestleResult((ItemStack)this.inventory.get(0), (ItemStack)this.inventory.get(1)); if(result.isEmpty()) return false; else { ItemStack output = (ItemStack)this.inventory.get(3); if(output.isEmpty()) return true; if(!output.isItemEqual(result)) return false; int res = output.getCount() + result.getCount(); return res <= getInventoryStackLimit() && res <= output.getMaxStackSize(); } } } Nothing else is broken, just this small bit. Thanks Edited November 2, 2017 by ModMCdl Solved Quote Follow these rules when talking to me, and we'll get along fine. 1).I know Java fairly well. I don't know as much about modding. They are not the same, don't compare them. 2). I consider myself to always be learning. I make mistakes, you make mistakes. Who doesn't? 3). Insult me, and I will leave the thread. I have a real life, I don't have time to throw petty insults in a Minecraft Modding forum. ModMCdl - Co-Founder and Director of Design for Artemis Game Studios
aw_wolfe Posted November 2, 2017 Posted November 2, 2017 Because isEmpty() returns a boolean. and then you are trying to cast that boolean to (ItemStack) Quote
larsgerrits Posted November 2, 2017 Posted November 2, 2017 (ItemStack)this.inventory.get(0).isEmpty() Well... you can cast a boolean to an ItemStack because a boolean isn't an ItemStack... You probably wanted to cast the result ofinventory.get(0) to ItemStack, and check that ItemStack#isEmpty(). Quote Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
ModMCdl Posted November 2, 2017 Author Posted November 2, 2017 3 minutes ago, aw_wolfe said: Because isEmpty() returns a boolean. and then you are trying to cast that boolean to (ItemStack) Wow. I can't believe I missed that. (Essentially, I guess I put my parenthesis in the wrong place lol). The fixed code looks like this to those who are having a similar issue. if(((ItemStack)this.inventory.get(0)).isEmpty() || ((ItemStack)this.inventory.get(1)).isEmpty()) 1 minute ago, larsgerrits said: (ItemStack)this.inventory.get(0).isEmpty() Well... you can cast a boolean to an ItemStack because a boolean isn't an ItemStack... You probably wanted to cast the result ofinventory.get(0) to ItemStack, and check that ItemStack#isEmpty(). And a boolean would be used to do this, as the solution above depicts. Quote Follow these rules when talking to me, and we'll get along fine. 1).I know Java fairly well. I don't know as much about modding. They are not the same, don't compare them. 2). I consider myself to always be learning. I make mistakes, you make mistakes. Who doesn't? 3). Insult me, and I will leave the thread. I have a real life, I don't have time to throw petty insults in a Minecraft Modding forum. ModMCdl - Co-Founder and Director of Design for Artemis Game Studios
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.