IronBoots - Auto-float and Sink CustomizationVersion: 0.21| Download: JAR / ZIP (source) (revisions)Slow servers: do not install. IronBoots allow players to experience a Zelda inspired change to the swimming mechanics of the game. Players will float/bob in the water, but they might sink if they swim out too far! Equipping Iron Boots will cause them to immediately sink, and make it impossible to get back to the surface. Features: Automatically float above water Sink with Iron Boots Sink in deep water TO-DO list (Move your mouse to reveal the content) TO-DO list (open) TO-DO list (close) TO-DO: See Changelog for upcoming plans GitHub source Implement all boots / custom armors (will require BukkitContrib) Complete customization for velocities on air/land/water/lava Suggestions? Bugs (Move your mouse to reveal the content) Bugs (open) Bugs (close) Bugs: Version 0.21: onDisable() will throw some harmless errors. Version 0.2: Sneak is broken Changelog: Version 0.3 Plans Finer tuned variables to mimic the client-side water bobbing Permissions/Group Manager support Basic Config: AutoFloat, EnableSneak, BootType (null for sneak only) Version 0.2 (5/25/2011) Optimized efficiency and added events - first stable build Checks for BukkitContrib for efficiency- will be of more use in future updates Fine-tuned variables to correct the auto-float so it's not annoying Added feature to sink in deep water (currently set to 4 blocks down) Added messages Version 0.11 (5/20/2011) Sneak now enables normal swimming (kind of useless since you can't sneak and jump at the same time, but it allows you to sink on command) Minor bug fix (removed unused event) Version 0.1 (5/20/2011) Clearly the features are very limited. I hesitated to release this, but I just want to give a taste of what I'm working on in case others are interested. Revisions in the TO-DO list should be pumped out extremely fast once I pick this up again considering the short amount of time to get this plugin working at a "stable" level.
Very cool idea I get the following error on RB860 error (Move your mouse to reveal the content) error (open) error (close) Code: 00:08:21 [SEVERE] Error occurred while enabling IronBoots v0.1 (Is it up to date?): Event PLAYER_INVENTORY is not supported java.lang.IllegalArgumentException: Event PLAYER_INVENTORY is not supported at org.bukkit.plugin.java.JavaPluginLoader.createExecutor(JavaPluginLoader.java:781) at org.bukkit.plugin.RegisteredListener.<init>(RegisteredListener.java:26) at org.bukkit.plugin.SimplePluginManager.registerEvent(SimplePluginManager.java:349) at me.schooley.ironboots.IronBoots.onEnable(IronBoots.java:18) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:125) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:799) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:253) at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:140) at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:118) at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:232) at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:219) at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:146) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283) at net.minecraft.server.ThreadServerApplication.run(SourceFile:422) But seems to work ok. Couple of suggestions, perhaps the sneak key could allow the player to swim underwater as normal? Also, when wearing the iron boots would it be possible to allow the player to walk along the bottom and jump at the normal height (so that you could still climb back out).
Interesting, I wasn't expecting any errors while the plugin was this basic. Anyway, I like your suggestions and I will look to implement them. Thanks! Don't ask me why the forum thinks there are two spoilers below: Edits (Move your mouse to reveal the content) Edits (open) Edits (close) Edits (Move your mouse to reveal the content) Edits (open) Edits (close) Edit: I forgot that I had registered an event for PLAYER_INVENTORY and I ended up removing the event methods, so I am sure this will fix the problem. I'm rolling out a 0.11 update and the next updates will be focusing on the Changelog and suggestions. Edit2: I went ahead both of your suggestions since they were such small changes. I should have created an event for sneaking but since the code is already so messy and I plan to change it all I just made it check every time like everything else. After I test it I will be uploading it momentarily. Edit3: Jump was a bit more complicated- I commented it out and will add it next time.
This actually has a TON of potential, bro, so do us a favor and keep at it! I think this plugin would be pure gold if you made it so the player would only auto-float for a configurable amount of time, and then they sink and are unable to use jump to get back to the surface. This would make boats actually have a point in the game, hurr hurr (as well as add to the Zelda-like theme that you seem to be going for!) If you want to further enhance the Zelda mechanic, make it so the sneak key only lets you dive so far, and then makes you auto-float again, maybe having some item equipped increasing this amount. Either way, keep up the good work! =)
Thanks for the awesome feedback and suggestions! I will definitely implement your ideas. Right now I have revised my entire code but I'm waiting for my server to go back up so I can test it properly. Rest assured I will be keeping this plugin up to date and adding requests as they come- receiving feedback is a high motivator and working on this project is quite fun.
Doubt im the only one wondering but is that custom Version of original texture pack your using. If so.. Id love it if you posted link cant seem to find a good zelda texture pack.. that isnt overdone or like Windwaker.
Now that's something I can provide instantly! Go to www.minecraftskins.com and search "Link" (without quotes) and find the author Corey Ordway. Project status: Taking a while because I'm trying to figure out custom events for "un[fully]implemented" methods and becoming obsessed with optimization because I don't like the way most plugins demand data instead of implementing more efficient events.
Updated to 0.2 and tested it on the new build, check the Changelog for what's new! Sneak is currently broken (it has the opposite effect that it should have) but I'll fix that, maybe (MAYBE) add a couple more features and then update it to 0.21, but for now I don't think that's a major issue. Also, to developers- what are your thoughts on using a scheduled task instead of the PLAYER_MOVE event? This alternative would make the plugin more responsive; however, I am not sure how to integrate that with the other events which pertain to each player, and I have the feeling it will put a lot of stress on the server if I can't use those events since there are already other plugins using scheduled tasks.
Sorry bud I 'shopped it all in my attempt to mimic Zelda 64. You won't find it anywhere... Let me know what you want, I can probably give you the elements to add to your current texture pack.
Could I get the jar file by its self not zipped or anything because my computer tends up decompress everthing thats in a .zip file when opening it.
Done! Check the main post or just click here. I had just recently changed it to a ZIP so that I could put the version in the file name, but I will keep the latest JAR file in the main directory as well.
01:54:31 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-890-g0afdf9d-b931jnks (MC: 1.6.6) 01:54:31 [SEVERE] Could not load 'plugins/IronBoots.jar' in folder 'plugins': java.lang.ClassNotFoundException: me.schooley.ironboots.AutoJump at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24) at java.lang.ClassLoader.loadClass(ClassLoader.java:315) at java.lang.ClassLoader.loadClass(ClassLoader.java:250) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:168) at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:199) at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:122) at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:118) at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:89) at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:52) at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:132) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:335) at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
VERY sorry, I was experimenting with another plugin which had branched off of this one and I exported it under the same name (I was wondering why the JAR was larger than the ZIP). I corrected the file, it should definitely work now.
Hmm not sure if this error is different but: Code: 02:02:28 [SEVERE] Could not load 'plugins/IronBoots.jar' in folder 'plugins': java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:173) at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:199) at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:122) at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:118) at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:89) at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:52) at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:132) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:335) at net.minecraft.server.ThreadServerApplication.run(SourceFile:422) Caused by: java.lang.NoClassDefFoundError: org/bukkitcontrib/event/inventory/InventoryListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:698) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$000(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24) at java.lang.ClassLoader.loadClass(ClassLoader.java:315) at java.lang.ClassLoader.loadClass(ClassLoader.java:250) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398) at me.schooley.ironboots.IronBoots.<init>(IronBoots.java:16) ... 13 more Caused by: java.lang.ClassNotFoundException: org.bukkitcontrib.event.inventory.InventoryListener at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24) at java.lang.ClassLoader.loadClass(ClassLoader.java:315) at java.lang.ClassLoader.loadClass(ClassLoader.java:250) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398) ... 27 more
Wow, thanks for letting me know. I've uploaded a working version now. I thought it would work if the user didn't have BukkitContrib installed but I didn't quite have it all configured properly. It will definitely work now, and I tested it to make sure it would. I'm heading to bed now but I'll be able to work on it some more in the morning.
Alrighty, for some reason the config file isn't being created. Also when bobbing up and down if I push the jump button (space bar) it cancels the bobbing. And another error: Code: 02:43:47 [SEVERE] Error occurred while disabling IronBoots v0.21 (Is it up to date?): null java.lang.NullPointerException at me.schooley.ironboots.IronBoots.onDisable(IronBoots.java:66) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:128) at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:878) at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:280) at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:273) at org.bukkit.plugin.SimplePluginManager.clearPlugins(SimplePluginManager.java:301) at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:329) at org.bukkit.command.SimpleCommandMap$ReloadCommand.execute(SimpleCommandMap.java:281) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:290) at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:480) at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:465) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361) at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
That's being caused by one line of code which I forgot to remove since I was already working on the next version as I tried to fix this one for you. It shouldn't interfere with the actual plugin for now so I'll work on the config and then upload the next version. As for the space bar, all that should do is evoke a client-side bob so it doesn't cancel it out but it creates a more glitchy effect. Once I fine tune the variables in the next version I'll be able to detect a velocity and tell the plugin not to bob again. I also forgot to mention that this plugin is NOT going to work on laggy servers and will only be a nuisance. I'll look into other methods but I don't think this is going to be very avoidable.
Im prob just going to disable the bobbing and use it for the iron boots and looking forward to the update. EDIT: also it spams the boots equipped when in water.
Just a quick note- sorry to those who have been waiting for an update- I'm surprised of how many downloads I've received. Yesterday and the day before that I got tonsillitis but thanks to the doc now I'm healed. I'll try to push out an update tonight so check back later, but I can guarantee an update tomorrow. I need to finish 2 things I'm working on: 1. Implementing scheduleAsyncRepeatingTask coexistence with Player Events via HashMaps for fastest response. 2. Basic Config - Yay! Once those are done we'll be smooth sailing towards many features. Sorry about the guarantee- having problems. If you're a developer feel free to look at my current source and tell me why I can "get" data from a Hashmap from my listener class after I "put" it (it's not there in the current code, I just tried it and it worked), but not from my main class...
You can not format the spoiler tag, or it will break. When using spoilers, highlight the line and click the "remove formatting" eraser.
Just so any fans know, this mod is not in active development anymore. I haven't had any spare time to work on it, and I was frustrated with the latest attempt to get it working which is why I posted my source on GitHub for anybody who may wish to continue development. Sorry guys! I will pick up work in the future (maybe), most likely after I create many other mods which I am more interested in implementing than this one. I might jump back on it if a bunch of people want it to be improved, but for now I don't see any inspiration since I don't even like it in my own server. R.I.P. IronBoots.