[REQ] Custom item enchantments via enchanting tables [FORMATTED]

Discussion in 'Archived: Plugin Requests' started by mushroomhostage, Mar 11, 2012.

  1. Offline

    mushroomhostage

    Plugin category: MECH

    Suggested names: EnchantmentTableControl, AlteredEnchanting, CustomEnchants, EnchantThatHoe, EnchantDifferent

    A bit about me: Got into plugin development early this year, been having a lot of fun with it. My most popular plugin by downloads is, by far EnchantMore, an interesting plugin to assign new effects to otherwise unused item/enchantment combinations. For example, it allows you to use Shears + Bane of Arthropods to collect spider eyes from spiders, or Hoe + Respiration to grow plants, Sword + Silk Touch to capture items, etc. (75 effects total at this time)

    This works great, but the only challenge is in acquiring the enchanted items. Other plugins add new commands or crafting recipes players can use to get the unorthodox enchantment combinations, and admins can always hack in the special items with an inventory editor (and give them out as rewards, place in hidden chests for players to find, or whatever), but there could be a better means of acquiring these items:

    What I want: A plugin to offer customization of the outcome of enchantment tables, fully supporting "unsafe" enchantments otherwise not legitimately obtainable, and enchanting any item (or at least durable items) even if it is normally not possible.

    Such a plugin would work very well with EnchantMore, allowing the new effects to be acquired through normal gameplay (up to the administrator's discretion).

    Players should be able to place fishing rods, flint & steel, hoes, and shears in an enchantment table, and be able to choose from a list of levels, as with vanilla-enchantable items. Additionally, enchanting tools, weapons and armor should have the possibility of receiving a new effect (e.g. Silk Touch on swords). If possible, all item/enchantments should be supported and configurable.

    [​IMG]

    How exactly the enchantment is chosen is up to you, the developer(s). Preferably, configurable probabilities, with minimum and maximum levels per effect. The algorithm doesn't have to be as complex as vanilla Minecraft's algorithm, but it can be if you want. There is a lot of room for different algorithms here.

    Prefer the plugin to be open source, posted on BukkitDev, with source available on GitHub, and updated and maintained with future Minecraft releases.

    Ideas for commands: None needed

    Ideas for permissions: None needed

    When I'd like it by: Whenever possible. A lot of users of EnchantMore have been asking for this, and I've been meaning to do it ever since I started developing EnchantMore, but haven't got around to it. I suspect many people would enjoy using this plugin, however. If anyone develops this plugin, and it works well enough, I'll recommend it for use with my plugin.

    Similar plugin requests: Yes, many:

    http://dev.bukkit.org/server-mods/enchantmore/?page=4#c1 - first request
    http://dev.bukkit.org/server-mods/enchantmore/?page=2#c20 - technical information on what workarounds may be needed for this plugin to be written
    http://dev.bukkit.org/server-mods/enchantmore/#c30 - most recent request

    More generally, there has been widespread dislike of the grinding/randomization of the vanilla Minecraft enchanting system, so this plugin could potentially offer a better solution – as long as it operates within the limitations of the client-side enchantment table interface. All depends on how the enchantments are chosen.

    But the hard part is overriding the enchanting outcome. There is an EnchantItemEvent worth looking into it, but it may or may not be possible to add unsafe enchantments or unenchantable items purely through this event, you may have to use Java reflection tricks or even mod CraftBukkit itself – but that's okay, if it is necessary. Even client mods are not out of the question, if anyone is up for it, although I strongly suspect this plugin is possible entirely server-side.

    (To be clear: I am not requesting adding completely new enchantment names, which would obviously require a client mod, but rather making the new uses for existing enchantments accessible through an Enchanting Table.)

    Devs who might be interested: Anyone with an interest in enchantments and special effects, or in pushing forward the limits of what is possible in server plugins, and enjoys adding new and unique enhancements to the game.

    Developers with somewhat related plugins I could find through a quick search: mbaxter (Tim The Enchanter), Tux2 (EnchantAnything), Randude14 (EnchantShops), Jakh33 (jEnchant), Laserhog (EasyEnchant), @PrecipiceGames dotblank (AutoEnchanter), @Slicertje (MaxEnchanting), nisovin (MagicSpells's new effects).
     
  2. Offline

    Laserhog

    Pretty sure this cannot be done without Spout, though hope someone can prove me wrong.
     
  3. Offline

    Tux2

    I have quite a few sponsored plugins that I'm working on at the moment so I'll keep it in the back of my mind as far as ideas for future plugins go and if it isn't made by the time I get around to it I'll see what I can do. If anyone would like to sponsor this plugin though just PM me with the exact features you would want in it and I'll see about getting a quote out. That would also put the plugin at the front of my stack with a guaranteed completion date. ;)
     
  4. Offline

    Celtic Minstrel

    I am quite certain that you are wrong. ;)

    There are three things related to this that I'd like to do.
    • I'm working on a plugin called Catalyst, which is intended to completely change how enchanting works. The idea is that it starts out the same, putting an item into the enchanting slot and clicking a button; but then the view changes to a workbench, and you can put reagents on the matrix to select the enchantments that actually get put on the item. The basic goal here is to eliminate random factors in enchanting.
    • In Cookbook I'd like to add support for customizing the enchantment table, but I'm not sure whether I'll actually get around to doing this. (I also wanted to add support for custom brewing recipes in Cookbook.)
    • I'd like to extend the existing recipe API in Bukkit to allow for customizing the enchantment table (and custom brewing recipes). From my perusal so far, it doesn't look like this will be easy, and it may not even be possible, but it's something I have in mind as a "maybe", if I can figure out how to do it.
     
    mushroomhostage likes this.
  5. Offline

    Laserhog


    Your Catalyst idea sounds like a good one, however it isn't really customizing the enchantment table which was actually the initial question
    However this sounds like a very VERY good idea for a work around and i hope to see it work out.
     
  6. Offline

    Celtic Minstrel

    You're right, it's not customizing the enchantment table. It's replacing it. ;)
     
  7. Offline

    Tydorius

    I've been looking for a similar plugin. If it's not possible to make it work through the enchant table GUI, would something like what I've mapped out here be possible?

    Just curious.

    Unfortunately I'm entirely unfamiliar with Java. In the process of adding it to my list, but not there yet.
     
  8. Offline

    Celtic Minstrel

    That's undesirable in my opinion, due to requiring commands.
     
  9. Offline

    mushroomhostage

    Cool, hope you're still interested =)


    All these would be amazing, hope you can get to them :). Especially Catalyst, that's probably a better solution than extending the current enchanting system (widely criticized for its randomness, not likely to scale very well with dozens of new enchantments), although I'd be interested in both. From what you're working on so far in Catalyst, does it look like adding unsafe enchantments would be possible?

    As for Cookbook, these enhancements sound very promising. Would you consider adding support for non-standard enchantments in recipe output in Cookbook? I attached a patch :). This would allow using custom crafting recipes to access EnchantMore's effects, which isn't as ideal as using enchanting tables, but it's something.. I couldn't find any other recipe plugins supporting non-standard enchantments..

    (as aside, I'd also be interested in customized brewing recipes for PotionsPlus :p.. if you can make this happen in Cookbook that would be epic, then EnchantMore and PotionsPlus could stay out of the business of acquiring the customized items, instead focusing on adding cool new effects.)

    Exactly, obtaining unorthodox item enchantments is trivial if you resort to using commands.. reusing the bookshelf-based level calculation would be interesting though.

    Nonetheless, there's plenty of room for different approaches to the problem. I'm interested in them all, the more the better.

    Anyone want to try fulfilling this request? (in any shape or form)
     
  10. Offline

    Celtic Minstrel

    It wasn't in my initial design, but I've since reworked it a bit... can't remember if it allows unsafe enchantments yet, but the intent is for it to do so. Unfortunately there are a lot of issues and glitches with it.

    Oh, good point, I didn't think of this. I can probably accept your patch then.

    Hm, what would this entail?
     
  11. Offline

    mushroomhostage

    Just a means to specify reagents + input potion = output potion, where the output is one of the unused base potions used in PotionsPlus as customized potions. For example brewing Rotten Flesh with Water Bottle could result in Gross Potion (potion item with damage value of 61). Right now I can make this potion accessible through crafting recipes using your Cookbook plugin or others, but having it available at brewing stands would be even better.

    But looking at net.minecraft.src.PotionHelper / net.minecraft.server.PotionBrewer, and its extensive use of bitwise operations, I'm not sure how exactly this would be done..

    Awesome, I'd appreciate it :). Not aware of any other crafting recipe plugin supporting unsafe enchantments, but if you add it then I could recommend Cookbook for use with my other plugins which also (ab)use unsafe enchantments for other purposes, rather than implementing my own custom crafting recipe code everywhere (specifically, it'd be usable not only with EnchantMore but also QuickBench, Chestpack, SilkSpawners, and AtmosphericHeights).

    Ah, well, hope you'll be able to work it out :). Sounds like a lot of people would enjoy a plugin like this.


    Anyone else want to give this request a try, by any means? Replacing the enchantment table entirely would likely be better, but I'd also still be interested in a more "vanilla" approach of using the existing enchantment system but extending it to unsafe enchantments. I see there is now a PrepareItemEnchantEvent in recent builds which may help. Anyone up for it?
     
  12. Offline

    mushroomhostage

  13. Offline

    Celtic Minstrel

    Cookbook for Bukkit will probably never support IndustrialCraft. Perhaps when the official Minecraft API comes along it might.

    For now I've pretty much abandoned Catalyst. I expect I'll come back to it eventually, though.
     
  14. Offline

    mushroomhostage

    So no one else finds this plugin idea interesting enough to try to make it? Or is it expected to be too difficult to develop?
     
    generalmek likes this.
  15. Offline

    generalmek

    i need this plugin too.
    need deny silktouch and fortune and add new more enchants with chanses %, edit names, permissions for VIP,.
    think we all need, have full control of any enchants on our servers+new enchantments!
     
    mushroomhostage likes this.

Share This Page