Inactive [MECH] EfficiencyExpert v2.0 - Makes Minecraft More Efficient [1.0.1-R1]

Discussion in 'Inactive/Unsupported Plugins' started by mathmaniac43, Jul 18, 2011.

  1. Offline


    EfficiencyExpert - Your Expert on Efficiency!

    Download EfficiencyExpert.jar -

    Download Source: 2.0/ 2.0/ 2.0/ 2.0/plugin.yml 2.0/README.txt

    Video Demonstration of EfficiencyExpert 1.0, Courtesy of Tahkeh:


    Through my Minecrafting career, I have built, explored, destroyed, and been lost countless times. But all of those things have one thing in common: they take time. Hours can be spent wandering around, or collecting supplies, or building structures. Introducing a plugin designed to try and make everything just a little bit faster: EfficiencyExpert (EE).

    The basis of this plugin struck me as a simple inspiration: it takes a lot of time to shuffle things around in your inventory. So, at first, I made it a plugin that automatically chooses the tools you use, based on the blocks in front of you, with some options attached to it. This is the basis for the plugin, but you can bet that there'll be updates in the future. My goal is to make certain simple tasks vanish for the players.

    Straight from the README:

    EfficiencyExpert - Version 2.0


    It's here! It's here! At long last, I've made the final updates and changes for EE 2.0. There will almost certainly be glitches, unsupported blocks/materials, and

    other necessary fixes to things I missed, so please just let me know if you find an issue, and bear with me as I work to fix it.


    - Automatic tool selection, with commands
    - Individualized EE data files, per player
    - Permissions support

    - Code made prettier (with help from @cholo7179)
    - Code made more efficient (with guidance from @The_Guest)
    - Command formatting changed (@cholo7179)
    - General multi-platform support and stability slightly improved (minor code additions from @cholo7179)

    - In-Game Content:
    o Auto-sword option (draw sword when living entities are nearby)
    o Auto-bucket option (draw bucket when looking at liquids)
    o Auto-minecart option (draw minecart when looking at minecart tracks)
    o Auto-flint-and-steel option (draw flint-and-steel when looking at Netherrack)
    o Auto-special-tools option (draw buckets when looking at cows, flint-and-steel when looking at pigs, and shears when looking at sheep)
    o Auto-wear-armor option (self-explanatory; wears strongest (and most-used) armor first)
    o Hot-bar slot option (when used, EE will switch any items in the slot while looking for the appropriate tool; all other slots will be completely ignored)
    o Auto-create-arrows option (if you're holding a workbench, feather(s), stick(s), and flint, EE will automatically convert them to arrows up to a maximum limit defaulted at 64 arrows. The conversion from raw materials to arrows is exactly the same as if you were to craft them manually.
    o Auto-stack-inventory option (automatically condenses inventory items to as few slots as possible)
    - Under the Hood:
    o Logical operations (generally) re-organized for more efficient short-circuit evaluation
    o Totally new, expanded, and improved save-file formatting - BE SURE TO GET RID OF YOUR OLD FILES, AND UPDATE WITH THE NEW FORMAT
    o Default save-file system as EEDefaultProperties.dat (automatically generated by EE when server is run; once created, file can be modified as a custom default for all new players on the server)
    o A lot of miscellaneous failsafes for file loading and saving
    o Tons of new commands for setting customization
    o Generally optimized code


    There are a LOT of commands - but don't feel overwhelmed. Most of them are very straightforward to understand and remember, and are formatted in a manner based on what

    you see when you type the command "/ee status".

    [boolean] denotes a need for a true/false value
    [integer] denotes a need for a whole number value
    [tool] denotes a need for a tool name (axe, pickaxe, spade, hoe, or sword)

    Commands with an asteric (*) after them are only useable by OP's; all others can be used by anyone with EfficiencyExpert permission ("efficiencyexpert.*").

    /ee on

    /ee off

    /ee status

    /ee save

    /ee saveAll *

    /ee toDefault

    /ee toDefaultAll *

    /ee resetDefault *

    /ee setAsDefault *

    /ee active [boolean]

    /ee chooseTools [boolean]

    /ee efficient [boolean]

    /ee useAxes [boolean]

    /ee usePickaxes [boolean]

    /ee useSpades [boolean]

    /ee useHoes [boolean]

    /ee useSwords [boolean]

    /ee useWoodTools [boolean]

    /ee useStoneTools [boolean]

    /ee useIronTools [boolean]

    /ee useDiamondTools [boolean]

    /ee useGoldTools [boolean]

    /ee useShears [boolean]

    /ee useBuckets [boolean]

    /ee useMinecarts [boolean]

    /ee useFlintAndSteel [boolean]

    /ee useSpecialTools [boolean]

    /ee autoStackInventory [boolean]

    /ee autoWearArmor [boolean]

    /ee autoCreateArrows [boolean]

    /ee autoCreateArrowsMax [integer]

    /ee useHotBarSlot [boolean]

    /ee hotBarSlot [integer]

    /ee useWoodTools [tool] [boolean]

    /ee useStoneTools [tool] [boolean]

    /ee useIronTools [tool] [boolean]

    /ee useDiamondTools [tool] [boolean]

    /ee useGoldTools [tool] [boolean]

    Upcoming Features

    - Option to draw a torch when in a certain light level
    - Default items (if you have this item, automatically set it in a specified inventory slot, such as torches to hotbar slot 9)


    So that's it! I've done a lot, and have some more to do, but it's mostly on you, the community, to give your feedback and ideas for EE to move forward further.

    Thanks for the support!

    Your Friend in Minecraft,

    Special Thanks:
    • Thanks most of all to my friend @Tahkeh, who intermittently helped me learn how to code plugins, do small bits of coding, and debug this entire plugin, all within 4 days (check out his plugin, LoginMessage)
    • Thanks also to my other friend @pop2012, who helped me debug for about 10 minutes once
    • Thanks to @cholo7179 for cleaning up a little bit of code for me. It's now slightly prettier (I plan on further improving it on the next update), and is potentially more friendly to other OS's (I am a Windows guy myself)
  2. Offline


    Good call on all counts! I'll get to it, and probably have something up later tonight. Thanks!

    EDIT: Problems fixed, methinks!
    diannetea likes this.
  3. Offline


    Oh, one more thing I'd personally like is if it would switch to a torch when light levels are below a certain point
  4. Offline


    I was considering that, yeah. I'll think on it, thanks very much for all the input!

    Minor EE 2.0 Beta fixes implemented.

    OK, so I know that (sadly) special tools don't work, and there are a few other tweaks to do. But overall, pretty happy with 2.0 Beta.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 17, 2016
  5. Offline


    Using beta 2.0, is there any way to disable the login message?
  6. Offline


    I think you're going to kill me if I keep making suggestions, but.. just a couple more ;)

    Would it be possible to choose a default item to use instead of choosing an item at random? Maybe by holding it and having a command like /ee default

    The other big thing is that I use mcMMO on my server, and this makes it so hand to hand and the axe are viable in combat. I'd like it if I was able to pick my weapon of choice (including bows) for when creatures are nearby.
    mathmaniac43 likes this.
  7. Offline


    Could this not change tools when aiming at water?
  8. Offline


    I can definitely add that as an option in the future

    I believe that I removed it when I reposted to Github. If not, I apologize =p

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 17, 2016
    diannetea likes this.
  9. Offline


    I hope @mathmanicac43 updates this :p I would be in your debt for the rest of my life.
  10. Offline


    Oh, it'll happen; that's more or less guaranteed. How soon, is the question. I happen to be off school for the upcoming week, so hopefully some awesome stuff will happen. =D
    Tadas159 and gameswereus like this.
  11. Offline


    Take ur time :) And thanks a ton! <4
  12. Offline


    In 1.0 Minecraft fences are broken faster with an axe. :)
    Tadas159 and gameswereus like this.
  13. Offline


    So today I made a bit of additional progress in EE 2.0! I have an actual list of features that I want to implement and [extensively] test, which I have not yet gone through item-by-item, but things are well on their way! Hopefully, I can have EE 2.0 out by the end of the year, and have it be compatible with Minecraft 1.0! Just so you're aware, I do not intend to implement anything regarding Enchantments, at least not until EE 2.1. As always, thanks for the ideas and support!


    PS - Minecraft 1.0 was a relatively large update, with a considerable amount of new content added to the game. I am going to try and be as thorough as possible in making sure that new and updated content is taken into consideration, but if I miss anything once EE 2.0 is published, please point it out to me and I'll be sure to try and fix it!
    gameswereus likes this.
  14. Offline


    Initial EE 2.0 update is official! Please let me know how things go!
    gameswereus likes this.
  15. Offline


    Testing it now... Seems to work fine but the hotbar items are moving around randomly.
  16. Offline


    I'll be testing it tomorrow pretty extensively, I'll let you know then.
    mathmaniac43 likes this.
  17. Offline


    Pretty big problem. While in godmode I fell into the void and the console spammed many many errors.

    2011-12-21 06:21:08 [SEVERE] Could not pass event PLAYER_MOVE to EfficiencyExpert
    java.lang.IllegalStateException: Start block missed in BlockIterator
        at org.bukkit.util.BlockIterator.<init>(
        at org.bukkit.util.BlockIterator.<init>(
        at org.bukkit.util.BlockIterator.<init>(
        at org.bukkit.craftbukkit.entity.CraftLivingEntity.getLineOfSight(
        at org.bukkit.craftbukkit.entity.CraftLivingEntity.getTargetBlock(
        at me.mathmaniac43.efficiencyexpert.EfficiencyExpertPlayerListener.go(
        at me.mathmaniac43.efficiencyexpert.EfficiencyExpertPlayerListener.onPlayerMove(
        at org.bukkit.plugin.RegisteredListener.callEvent(
        at org.bukkit.plugin.SimplePluginManager.callEvent(
        at net.minecraft.server.NetServerHandler.a(
        at org.getspout.spout.SpoutNetServerHandler.a(
        at net.minecraft.server.Packet10Flying.a(SourceFile:126)
        at net.minecraft.server.NetworkManager.b(
        at net.minecraft.server.NetServerHandler.a(
        at org.getspout.spout.SpoutNetServerHandler.a(
        at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
        at net.minecraft.server.MinecraftServer.w(
    It actually caused all players to be timed out but the server didn't crash.
  18. Offline


    Interesting... =o Thank you for catching that, as it's a bit of an obscure but major error... I understand what the error is and why it occurs, but I don't know how to fix it at the moment - that's something that I'll simply have to sit down and toy with for a while. Until I'm able to do that, thanks again for cathing it, and please try not to fall in the void! =D

    PS - The same error may or may not hold true for going above the legal block height limit on the map.

    I did a bit of research. Apparently the error is harmless:

    That being said, I can try to whip up a little something to make the server not be so sad. =)
  19. Offline


    ! very smart
    mathmaniac43 likes this.
  20. Offline


    /ee useHotBarSlot [boolean]

    /ee useHotBarSlot true
    /ee useHotBarSlot false
    /ee useHotBarSlot t
    /ee useHotBarSlot f
    /ee useHotBarSlot T
    /ee useHotBarSlot F
    /ee useHotBarSlot 0
    /ee useHotBarSlot 1
    /ee useHotBarSlot 2
    /ee usehotbarslot true
    /ee usehotbarslot false

    ... etc. "EfficiencyExpert does not recognize this command."

    In fact, so far anything except "/ee on, /ee off, and /ee status" yields this.
    What am I doing wrong? :/
  21. Offline


    That's a very weird error. :confused: I tried all commands personally before I published, and they all worked for me... I'll take another look later today.
  22. Offline


    I discovered the same bug through slightly different means: Flying; although not strictly necessary. You could just build up to the top and walk/jump around a little. I'm aware there's nothing dangerous about this bug, but I don't like seeing a bajillion [SEVERE]s in my log file.

    All you have to do is go either above or below where blocks are allowed (the 128 block limit) and BAM IllegalStateException. I suggest you check to player's height to see if they are within the 128 block height limit.

    I went to look at your code but I don't see line 208 or 196 of (File ends at line 169; so I can't help you there.) Upload the correct source file and I can try and come up with a fix.
  23. Offline


    This plugin just hasn't been working for a while, will it ever be updated?

    Show Spoiler

    2012-03-31 14:36:07 [SEVERE] Could not load 'plugins/EfficiencyExpert.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: org/bukkit/event/player/PlayerListener
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(
    at org.bukkit.craftbukkit.CraftServer.reload(
    at org.bukkit.Bukkit.reload(
    at org.bukkit.command.defaults.ReloadCommand.execute(
    at org.bukkit.command.SimpleCommandMap.dispatch(
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
    at net.minecraft.server.NetServerHandler.handleCommand(
    at net.minecraft.server.NetServerHandler.a(
    at net.minecraft.server.Packet3Chat.handle(
    at net.minecraft.server.NetworkManager.b(
    at net.minecraft.server.NetServerHandler.a(
    at net.minecraft.server.NetworkListenThread.a(
    at net.minecraft.server.MinecraftServer.w(
    Caused by: java.lang.NoClassDefFoundError: org/bukkit/event/player/PlayerListener
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(
    at java.lang.ClassLoader.defineClass(
    at Method)
    at java.lang.ClassLoader.loadClass(
    at java.lang.ClassLoader.loadClass(
    at me.mathmaniac43.efficiencyexpert.EfficiencyExpert.<init>(
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
    at java.lang.reflect.Constructor.newInstance(
    ... 18 more
    Caused by: java.lang.ClassNotFoundException: org.bukkit.event.player.PlayerListener
    at Method)
    at java.lang.ClassLoader.loadClass(
    at java.lang.ClassLoader.loadClass(
    ... 37 more
    gameswereus likes this.
  24. Offline



    I can't live without this
  25. Offline


    diannetea likes this.
  26. Offline


    I love you forever

    aw, all it seems to be doing is emptying my hand :(
  27. Offline


    To be true, I never tested it in-game. I just updated the code to the latest API-version.

    I saw your post here:
    Thank you for the stack trace, this is a kind of report a developer dreams of.

    I'm thinking about taking over the plugin, including a total rewrite. But this may take a while, because I have to try to contact the original author first in order to get his/her permission. If he/she doesn't answer or doesn't say "no", the plugin will be available on github and in near future.

    I can only ask for your patience. Stay tuned!

    Edit: I began a conversation with the author. I will have to wait for at least one week for an answer now.
    diannetea likes this.
  28. Offline


    Hey everyone. I happen to know mathmaniac43 in person, and in his defense—as it's almost summer and he is a high school senior—he's really busy, and has a lot to think about. ;)

    I'll get in to contact with him via Twitter/Facebook/IM/whatever and let him know tonight or tomorrow that EE is broken. Thanks! :)
    diannetea likes this.
  29. Offline


    Hello, EffifiencyExpert users.

    It's been far too long since I last updated EE, and looking at the way things seem to be going for me right now, I might not be able to update it for a very, very long time. I see this as unacceptable, to both you as the users, and myself as the current developer.

    A few days ago, I was sent a message from obnoxint via Bukkit's messaging system. They were extremely professional and polite, and essentially said that they wanted to take over the development of EfficiencyExpert. EE is meant to be a non-intrusive and EFFICIENT addition to a Minecraft user's experience, and because I no longer believe that I can consistently deliver that quality to you, I think it is time that someone who is capable of doing so to take the reins.

    I know that there is a great amount of room for improvement and enhancement to EE, and I sincerely hope that obnoxint is capable of bringing them to fruition. I by no means intend to abandon this project, simply allow someone with the means and drive to take it over. I hope to be of some assistance to obnoxint, and any possible future developers, in any ways that I can.

    I humbly thank you for your support of Minecraft, Bukkit, EfficiencyExpert, and me.

  30. Offline


    Hello everyone,

    at first I want to thank mathmaniac43 for the kind and uplifting words. Also thanks to Tahkeh for the intermediation.

    This is the plan:
    I created a public repository on and commited the original code written by mathmaniac43 in an initial commit. The current plugin version is 2.0 and I will continue with 3.x.x (mayor [dot] minor [dot] revision). I'm going to rewrite the code (almost) completely and have the goal to mimic all current features. The first release may not contain all features of the original version but will be added step by step. Top priority is the automatic selection of the proper tool based on the block you want to mine, depending on your preference of fast or efficient mining.

    The final builds can be downloaded via github after release. Also you can use githubs issue tracker in order to report problems, etc. There won't be a project page on because mathmaniac43 prefers to keep his/her rights about the project name, what we all have to respect.

    If you like to contact me, you can quote or tag me here in this thread, or start a conversation. If you want to stay up-to-date about the state of development, I recommend to subscribe to this feed.

    Stay tuned,
    have fun!

    - obnoxint.
    mathmaniac43 likes this.
  31. Offline


Share This Page