Inactive [MECH] FishPeople v1.7.1 - Gold Helmet = Infinite Air While Swimming [1.2.3-R0.2]

Discussion in 'Inactive/Unsupported Plugins' started by Richard Robertson, Mar 4, 2011.

  1. FishPeople - Infinite air underwater:
    Version: v1.7.1

    This plugin is for servers that focus more on creative rather than survival. It makes building underwater infinitely safer because you no longer drown. The only downside is that people who are underwater can no longer speak. Instead there is a comical [glub glub glub] accompanying any underwater chat messages.

    Features:
    • Infinite air while wearing gold helmet (or configured item)
    • Garbled underwater chat (if configured)
    • Permissions support!
    • Now swim in lava! (if configured)
    • Supports item names as well as ID numbers
    Download http://dl.dropbox.com/u/22618541/Bukkit/FishPeople.jar
    Also available here http://dev.bukkit.org/server-mods/fishpeople/files/3-v1-7-1/

    Configuration:
    File located at /plugins/FishPeople/config.yml
    This file will be created if it does not exist and will contain these default settings.
    These default settings will also be used if a value is not set.

    Permissions
    • fishpeople.infiniteair
      Gives the player infinite air while wearing the helmet (overrides extended air)
    • fishpeople.extendedair
      Gives the player more air while wearing the helmet
    • fishpeople.cantalkunderwater
      Lets the player talk underwater and bypass the filter
    • fishpeople.invinciblehelmet
      Prevents the player's helmet from taking damage if damage is configured
    • fishpeople.lavasafe
      Allows the player to swim in lava (no burning damage)
    • fishpeople.config
      Allows the player to call /fishpeople
    • fishpeople.*
      Emulates having infinite air, invincible helmet, lava safe, config, and chat filter bypass

    Commands:
    • /fishpeople help
      Lists all commands available
    • /fishpeople help <command>
      Gives help on the command given
    • /fishpeople reload
      Reloads the configuration from the hard disk
    • /fishpeople enable
      Enables the infinite air and chat filter
    • /fishpeople disable
      Disables the infinite air and chat filter
    • /fishpeople helmet-type <id>
      Sets the item id for the head item that gives infinite air
    • /fishpeople chat-filter true
      Replaces chat messages when players are underwater
    • /fishpeople chat-filter false
      Allows users to talk normally underwater
    • /fishpeople underwater-chat <message>
      Sets the message that appears when someone talks underwater
    • /fishpeople air-multiplier <number>
      Extends the amount of air players have
      "/fishpeople air-multiplier 2.5" would mean they have two and a half times as much air
    • /fishpeople helmet-damage <amount>
      Every second a player is underwater and wearing the special helmet it will take the damage specified
    • /fishpeople helmet-replacement <id>
      Sets the item id for the head item that will be set when a helmet is destroyed
    • /fishpeople low-air-warning <seconds>
      When a player has only <seconds> left of air, they get a warning
      Set negative to not give a warning
    • /fishpeople low-air-message <message>
      Sets the message to be displayed when a person hits the low-air-warning mark

    Changelog:
    Version 1.7.1
    • Fixed null pointer exception occurring on Minecraft 1.2 and higher
    Version 1.7
    • Removed defunct Permissions 3 support
    • Fixed helmet damage
    • Updated to match Bukkit's new event handling system.
    Version 1.6
    • Compiled for Permissions 3 support
    Version 1.5
    • Bug fixes: falling damage while in lava, and race condition when loading Permissions plugin
    Version 1.4
    • Bug fix: replaced player.getLocation() with player.getEyeLocation() so effects only happen when the player's head is underwater
    Version 1.3
    • Changed event registration to match Craftbukkit 600+
    Version 1.2
    • Permissions support
    • Can have extended air instead of only infinite air
    • Can configure a message to appear warning those with extended air that they will drown soon (since the client bubbles are wrong)
    • Can configure helmet to take damage while being worn
    • Can replace the helmet when something else when it is "destroyed" from being used. You could use this to say, turn your gold helmet to a leather helmet when the magic runs out
    • Added the ability to swim in lava
    • Fixed problem where some servers would not restore air
    Version 1.1
    • Helmet type configurable
    • Underwater chat message configurable
    • Underwater chat message disable-able
    • Can limit to ops only
    • Can adjust all options at runtime
    Version 1.0
    • Initial release

    Known issues:
    • Client side remaining air bubbles still disappear; I cannot do anything about this.
    [​IMG]
     
  2. Offline

    Creepos

    Not for me. :l
    I can get the [glub glub glub] to work.
    But not the infinite air.
     
  3. Actually he is right. The currently uploaded version still uses the old defunct Permissions 3.
     
  4. Offline

    khamseen_air

    Strange, I have this version running with PermissionsBukkit and can still have infinite air with the permission node set to true. :S
     
  5. I don't know anything about the current permissions plugins. Is it possible it provides a bridge?
     
  6. Offline

    khamseen_air

    There is a "bridge" plugin you can get for the current permissions plugin, I do have that installed for a few of our other plugins, though it's not used for this one. Don't really understand it haha.
     
  7. Oh well. The whole permissions fiasco was stupid. I like the built in permissions but the source code is a mess since Spout became SpoutPlugin and some other things that I had working in the developing code no longer work.

    That and Bukkit's events changed when I wasn't looking. I'm actually surprised the old code for the old event system is still usable.
     
  8. Offline

    Wulfspider

    The rename of Spout to SpoutPlugin changed nothing. :p
    It is just a name change for the jar, nothing else!
     
  9. I didn't say Spout was the only problem. Just that it is one thing I have yet to fix. Since I was depending on my old Spout project for the longest time but then the name Spout on Github became the server which blew up my local project. Add not having enough time to write any Java code on top of that and you've got a big mess at my end.
     
  10. Just posted 1.7 update. Uses new Bukkit events (so won't break in R5). Also removed old Permissions 3 support and just used Bukkit's internal permissions system. Lastly, fixed the helmet damage bug where damage was dealt in reverse because Notch did item damage in a backward way that I didn't realize when I first wrote the feature.

    Link in original post as well as here: http://dev.bukkit.org/server-mods/fishpeople
     
    Jay101 likes this.
  11. Offline

    khamseen_air


    Brilliant, thank you! I will check it out shortly. :)
     
  12. Offline

    Rexel

    would prefere it if the effects to player movement speed had no effect at all when in lava or water... at least as an permission/option as it makes building/removing blocks while in water or lava a pain in ass.
     
  13. That would require Spout though. I'm still working on that version as a separate code base.
     
  14. Offline

    Bazuka_Rulz

    Hey i am not being able to do the glub glub glub thing when i talk. At first when i got it the glub glub glub worked but infinite air didnt. Then after infinite air worked but glub glub glub didint any ideas?
     
  15. What permissions do you have set on your player(s)?
     
  16. Offline

    Bazuka_Rulz

    I had pex but im changing it cause it interfered with my ranks and for some reason completely blocked them.
     
  17. That's not what I asked. I asked what you have SET, like
     
  18. Offline

    Bazuka_Rulz

    Oh i never did that how would i do that i use Group Manager
     
  19. :|

    You need to use something that isn't outdated. FishPeople 1.7 has been updated to use the internal permission system. You need a permission plugin that actually uses the internal permissions or it won't work. You likely have someone who is an Op. Ops get automatic infinite air and can talk underwater unless you set them not to be able to.
     
  20. Offline

    Bazuka_Rulz

    Group manager is outdated? And my permission plugin is Permissionsex like i said, Group Manager is just the thing i use to rank people up. Sorry im 12 and not very experienced with all this, right now im just getting used to it
     
  21. GroupManager is one of the first permission type plugins and doesn't match the current way permissions are done. I don't know anything about PermissionsEx but it should work fine. As far as your ranks go, I have no idea what you mean by that.
     
  22. you're the man, many thx :)
     
    omega3141 likes this.
  23. Offline

    khamseen_air

    Richard Robertson
    Just to let you know, this is loading up with no errors on RB 1988 and DB 2002, though it then generates the following error repeatedly in the server log when people are on the server;
    Code:
    [SEVERE] Could not pass event EntityDamageEvent to FishPeople
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:441)
    at net.minecraft.server.Entity.burn(Entity.java:703)
    at net.minecraft.server.Entity.move(Entity.java:624)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:365)
    at net.minecraft.server.Packet10Flying.handle(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:112)
    at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:549)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:447)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
    Caused by: java.lang.NullPointerException
     
  24. See, this is why I hate debugging Java. Why doesn't the stack trace show the point IN MY CODE where the exception occurred?

    I never encountered this but I will see if I can track down what it might be. At least "NullPointerException" is a starting point.

    I wonder which build this error would have started. That code hasn't changed since I added lava safe.
     
  25. Offline

    khamseen_air

    Yeah the error report isn't exactly helpful. Unfortunately I can't even provide any further details. It seemed to just be 'happening', though there didn't seem to be a rhyme or reason behind it. As in, it didn't tie to certain actions like being in water, wearing a gold helmet etc. Just started and kept spamming. I'll run a few more tests for you though and see if I can figure out what causes it to start at least, that may give you a better starting point. :)
     
  26. The only thing I can figure is that they changed empty slots from air items to null. This is the only possible thing I can see going wrong.

    What plugins are you running besides FishPeople? I wonder if there is a conflict.

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

    khamseen_air

    Not sure if this will help any, but I've done a little more testing and it appears that when the server loads, if you're wearing a gold helmet then you can breathe underwater and swim in lava. If you remove the helmet or place a helmet on your head (if you didn't have one on at server start) it generates this error;
    Code:
    [WARNING] Task of 'FishPeople' generated an exception
    java.lang.NullPointerException
    at net.rarobertson.fishpeople.FishPeopleAirRestoration.run(FishPeopleAirRestoration.java:33)
    at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:502)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:434)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    Once that error is generated it doesn't matter if you've got a helmet on or not, you will drown in water or burn in lava.

    As for the error we were getting last night, I've still no idea what caused that, whether perhaps it was originally this error which then caused that when other people had gold helmets on in lava or water? *Brain fails*

    Just saw this after posting my reply, I've now removed all other plugins and tested the same behaviour as in the above post, with the same results.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 11, 2016
  28. If removing/not having the helmet is the cause, then it is definitely a change to a null instead of an air item. I can fix that.

    http://dl.dropbox.com/u/22618541/Bukkit/FishPeople-dev-SNAPSHOT.jar

    Give this build a try. I'm checking for nulls where I normally expected air. If this fixes all the problems I will promote it to build 1.7.1.

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

    khamseen_air

    I've given it a try this morning and sadly it's still giving an error when removing a helmet or placing one;
    Code:
    [WARNING] Task of 'FishPeople' generated an exception
    java.lang.NullPointerException
    at net.rarobertson.fishpeople.FishPeopleAirRestoration.run(FishPeopleAirRestoration.java:36)
    at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:502)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:434)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
     
  30. Only error on remove or place? At least I stopped the spamming right?

    I'll see what I can do. I'll download the specific build later (gotta get up early tomorrow for work and worked all day today) and run it in debug mode to figure out what else is wrong.
     
  31. Offline

    khamseen_air

    Indeed, it is progressing in the right direction by getting rid of the constant spam, so that's always good. Haha that's cool man, have a good day. :)
     

Share This Page