Enchantism
Enchantism
In survival Minecraft, getting good enchantments is a difficult task. It involves hours of grinding and mining to get one diamond suit of armour with useful enchantments. Enchantism attempts to make the enchanting phase of getting end-game equipment a less menial task by redesigning the enchantment table. While the vanilla Minecraft enchantment table makes enchantments random, the Enchantism table allows the user to select exactly what enchants they want.
Features
- Custom enchanting table user interface (no commands)
- Fully customisable costs of each enchantment via a config file
- Optional button in UI to remove all enchantments on enchanted items (for free)
- Bookshelves are still required, although requirement can be disabled via config (when enabled, level I enchants are available with no bookshelves, level II with 5, level III with 10, and level IV with 15).
Configuration
To start off, DO NOT USE THE DEFAULT CONFIGURATION. It's very unbalanced, and enchantments which would not be available in vanilla Minecraft (Silk Touch IV, for example).
With that said, it's not very difficult to configure Enchantism.
There are a few options at the top of the file (located at plugins/Enchantism/config.yml – run the plugin at least once to generate the default template)
- enable-unenchant-button: Enabled by default. Set to "false" if you don't want the "remove enchantments" button to show up in the UI.
- require-bookshelves: Also enabled by default. Set to "false" if you don't want bookshelves to be required.
- viewable-vanilla-ui: Add a button to the enchantment inventory allowing the user to use the vanilla enchantment interface if they want. Set to "false" if you want Enchantism to be the only option for users.
Below that is the configuration section for the costs of certain enchantments. This might be a bit of work to configure, but isn't that difficult to do. The names are generally not the same as what is seen in game but they are still relatively logical. To disable a certain enchantment, set the cost to -1.
Here's an example, for the Looting enchantment.
loot-bonus-mobs:
level1: 10
level2: 20
level3: 30
level4: -1
In this example I have disabled Looting IV, and made Looting I, II and III cost 10, 20 and 30 XP respectively.
Source
Enchantism is open source. You can view the source code here
Image Gallery
More images coming soon.
To Do
- Add command to reload config, change config while in-game.
- Add permissions allowing user to use the Enchantism enchanting UI.
@dynosophical
Awesome, glad you got it worked out.
@xShaZZa
I just did that and found that it isn't spigot since it ran just fine as the only plugin. So, I decided to systematically add the other plugins in and found that Enchantism only has problems when the Signs plugin is present.
For some reason I thought it was something bigger. Oh well. Thanks for your help.
@dynosophical
Ah ok. It may be spigot causing the error. A mate was running a spigot server but i can't remember if we had this running on it or not for sure.
Only thing you could do is create another spigot server (for testing) and just run this plug in on it an see if it still gives you the error. If it doesn't then you may have a conflicting plug in that is causing the error.
Can you please make a update for this plugin for spigot 1.8.*?
@xShaZZa
The server I'm running is spigot 1.8. There are quite a few other plugins. However, keep in mind that, with the exceptions of MythicMobs and LibsDisguises, all of these were also on the previous 1.7.2 server and worked alongside Enchantism without issue.
The plugin loads and the table opens fine. The issue is that it throws an exception when an item is placed and then never populates the table with options. Here's the exception that gets logged when I put an item in the table:
[10:22:16] [Server thread/WARN]: [Enchantism] Task #964 for Enchantism v0.1 generated an exception java.lang.NullPointerException at tk.thundaklap.enchantism.EnchantismConfiguration.getCost(EnchantismConfiguration.java:32) [?:?] at tk.thundaklap.enchantism.EnchantLevelCost.<init>(EnchantLevelCost.java:13) [?:?] at tk.thundaklap.enchantism.EnchantPage.getBooksForEnchant(EnchantPage.java:118) [?:?] at tk.thundaklap.enchantism.EnchantPage.addEnchantment(EnchantPage.java:78) [?:?] at tk.thundaklap.enchantism.EnchantInventory.slotChange(EnchantInventory.java:103) [?:?] at tk.thundaklap.enchantism.SlotChangeTask.run(SlotChangeTask.java:19) [?:?] at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftTask.run(CraftTask.java:71) [spigot.jar:git-Spigot-550ebac-7019900] at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot.jar:git-Spigot-550ebac-7019900] at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:709) [spigot.jar:git-Spigot-550ebac-7019900] at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:316) [spigot.jar:git-Spigot-550ebac-7019900] at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:634) [spigot.jar:git-Spigot-550ebac-7019900] at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:537) [spigot.jar:git-Spigot-550ebac-7019900]
For now I'm just working around it by using essentials signs to allow people to purchase enchants for experience. It's not ideal but it works. I appreciate any help you can offer.
@dynosophical
I'm running this on a Craftbukkit server. Used it on 1.8, 1.8.1 and 1.8.3 with no problems. What type of server are you running this on (bukkit, spigot, other)? Do you run any other plugins besides this one?
I'm not sure how the previous commenter got this to work for 1.8 but it's definitely throwing an exception for me whenever I put the item into the enchantment table.
Is there an ETA on a 1.8 release? I noticed plenty of references to it on GitHub so I'm assuming it's at least in progress. If it's not soon then perhaps there are dev builds that could be made available?
Using this on a few 1.8 servers at the moment. Would be good to get an update to fix the depth strider enchant.
I love this! I've been collaborating on my own mods but the one frustrating part is asking friends/family to download and use mods when they are *very* computer illiterate or have computer restraints. This works perfectly as a bukkit plugin while solving the simultaneous issue of too easily obtainable enchants and impossible RNG. Thanks so much! Also, thank you for being open source!
@kolowski13
or left to right trough,
with a selection side switch for the next few enchantments on top left and right ;)
theoretically 9 levels :)
and "unlimited" space for new enchanments
Hello, I'm really loving this plugin!
You could make the levels go bottom to top so that you can add in level 5 support and it would better IMO.
hi,
any chance to implement:
- more (custom) enchantments (any of those enchantment packs out there maybe)
- more levels
- more enchanments per item (configurable)
thx
I would like to see permissions for certain levels or specific enchantments
Hello there!
I would like to suggest a feature if I may.
Could you add so you can edit levels as well? Like, right now you can only get Smite IV and not V. Could you add a feature so the tools and armors can get 2,3,4,5 instead of 1,2,3,4? Would be great! Awesome mod by the way.
@Pyr0Seraph
I've fixed this issue with version 1.1 - which I have just uploaded. It will need to be approved before it can be downloaded.
@narutoputoable
Version 1.1 also updates Enchantism for 1.7.2.
I really love this plugin, and i was wondering are you trying to updated it?
I don't have a GitHub account, so I thought I'd post a bug find here. If I need to sign up to post there also though, let me know and I will.
Found a but where if you put an item inside the enchantment table, then close the interface without taking the item, you lose the item. It doesn't pop out of the table, it doesn't stay in the table, and it doesn't go back to your inventory.
Also, just more of a curiosity.. is it possible to get it to enchant up to lvl 5 for the few enchantments that do go up that high? If not oh well, just wondering.
Either way, I quite like this plugin, good work on it.