Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.7.10] Enchanted books not working in anvil


Da9L
 Share

Recommended Posts

Hello

 

I have some trouble with some enchanted books that i've made my villagers sell.

 

What i do is to create my own tradehandler that implements the IVillageTradeHandler. This works, and i can make my villagers sell what i want them to. I want them to sell enchanted books and those do somehow not work in an anvil. I've noticed that the default enchanted books has a yellow name "Enchanted Book" whereas the ones i have, has a blue name.. I think it has something to do with the way i "make" the book it self. Heres my code in my trade handler showing what im doing:

 

Random rand = new Random();
Enchantment enchantment = Enchantment.enchantmentsBookList[random.nextInt(Enchantment.enchantmentsBookList.length)];
ItemStack enchantedBook = new ItemStack(Items.enchanted_book, 1);
int lvl = MathHelper.getRandomIntegerInRange(rand, enchantment.getMinLevel(), enchantment.getMaxLevel());
enchantedBook.addEnchantment(enchantment, lvl);

 

I've also tried using the Items.book instead of the Items.enchanted_book, but this gives the same results.

 

What im i doing wrong ?

Link to comment
Share on other sites

Now im a little confused but isnt that already what im doing if you look at my code ?

 

I create a new itemstack with Items.enchanted_book that i call enchantedBook. And with that instance i then use enchantedBook.addEnchantment ..

Link to comment
Share on other sites

You're using the ItemStack#addEnchantment method; diesieben is saying you need to use the one specific to ItemEnchantedBook - Items.enchanted_book.addEnchantment(...), because enchanted books handle enchantments differently, apparently.

 

Right, because the book itself is not enchanted, but rather it contains an enchantment (you can do both!)

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Alright thanks for that info !

 

Now since im all new to this.. Could you guys maybe provide an example on the usage ? Im having a hard time understanding it i must say.. I tried it like this:

 

the addEnchantment method on Item.enchanted_book seems to want the first argument to be an ItemStack. But since i have no ItemStack to define here, as this is on the line where i create it, what should i write ?

 

ItemStack enchantedBook = new ItemStack(Items.enchanted_book.addEnchantment(enchantedBook, enchData));

 

The above ofcourse does not work, since the enchantedBook ItemStack i use, is being created on the same line.. This might be a noob question i hope you can handle my low skill level  ;)

Link to comment
Share on other sites

You first create an ItemStack containing an Enchanted Book, like you already did. All you need to do is replace your call to ItemStack.addEnchantment with a call to Items.enchanted_book.addEnchantment. As the first parameter pass the ItemStack, as the 2nd parameter pass the EnchantmentData (Enchantment + level).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.