Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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 ?

  • Author

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 ..

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.

  • Author

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  ;)

  • Author

Ofcourse! Thanks for that .. I dont know why i couldnt figure that out.. It makes perfect sense :-)

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.