Thirst
Thirst
Thirst
Do you want to add a thirst mechanic to your server? Look no more, because this is the plugin for you. This simple plugin will give you great modulability in terms of how it works. Please see the configuration page for more info on what you can change, as as always, feel free to suggest a feature!
Links
Setup
- Drag and drop into the 'plugins' folder.
- Give players the 'thirst.thirst' permission in your favorite permissions manager.
Commands
- /thirst
- Simply displays the users thirst in the format you have selected in the configuration file.
- /thirstadmin <set/get> <player> <amount>
- Either sets a valid player's thirst level or displays a player's thirst level.
Permissions
- thirst.thirst
- Gives the player the thirst mechanic. It is not recommended that administrators are given this permission, as it may present them with the task of drinking water to survive.
- thirst.fillwater.rain
- Gives the player the ability to fill their water bottles in the rain. NOTE: This will only work in biomes with rain. It will not work in snowy / desert biomes.
- thirst.admin (default op)
- Gives the player access to the /thistadmin command.
Up & Coming Features
- Rain Buckets
- Have the ability to fill buckets in the rain, as well as waterbottles.
- Toggle Base Drinking
- Have the ability to toggle whether or not players can drink water without a container.
out of curiosity.. is it possible to maybe include some form of mod support in the future? Not asking too much, i just want to be able to set any item i want to be able to sate thirst by entering the item's ID and some stats.
cause there are multiplayer mods and mod packs out there, such as tekkit, add a variety of beverages into the game on a multiplayer platform. Kinda want to be able to drink some beer and ale and have it sate thirst! hehehe.
Good update!, Now .... a bar for Spout :D
@Twilight314
Updated! :)
@ShadowedRose
I'll look into it.
Ivankrad - Maybe consider making a video on this plugin? I know to me it seems sketchy. Im going to try it out and see if i like it, but maybe a video to make it easier for people to see if they want it or not.
@ivankrad
Thank you so much. Downloaded and tested it, and it seems to work fine, so those bug fixes did the trick.
A couple of other things to consider, if you will:
For the hunger damage, it only affects the food bar, and not saturation, saturation being the invisible food bar that keeps the food bar from jiggling and starting to go back down immediately after eating. I'd really recommend having the hunger damage decrease the saturation until it is empty, and then start decreasing the food bar as now.
That's how regular hunger works, and it would make more sense if the hunger damage on Thirst worked the same way. Other way, you can have a full saturation bar, and the food bar can be down to empty from the hunger damage Thirst inflicts, but if you eat even a single bit of food (And drink something, of course), the single drumstick on the food bar will last a really long time because all the saturation is still there. Anyway, check on the hunger entry on the Minecraft Wiki for details, if you need them.
The other thing that I'd love to see would be an option for persistent thirst over respawns, meaning that if you were dying of thirst, and then died (Of thirst, or otherwise), you'd respawn still as thirsty as you were. That way, dying isn't an easy way to ignore thirst.
There's a plug-in called UnhealthyDeath that allows you to respawn with your food bar at the same level it was when you died, so you can't simply respawn to get a full food bar. If you die starving, you'll come back still starving, and had better find some food quickly.
I use this along with my plug-in Hunger++ (Which allows you to increase the hunger rate of all actions, as well as having a steady drain on hunger over time) to make food a much bigger priority and make survival and the search for food more meaningful.
I really find Thirst a valuable addition to these other plug-ins and the whole "tough survival" feel overall, and adding the option to keep the same thirst level when respawning as you had at death would really improve it, in my opinion. Just a thought.
In any case, thank you again for the bug fixes and for this great plug-in. It really adds a lot to my game, and I appreciate your hard work on it.
@Twilight314
Thanks so much for the bug report! I (should have) fixed the two bugs listed (hunger / dehydration level settings). As for the time in between damaging a dehydrated player, I can work on that. On compromise that I see at the moment is increasing the decrements that the thirst levels go down in, and increasing the calculation time, as the player is given all of the dehydration effects every time the plugin calculates their thirst.
Thanks for helping me out!
P.S., if it isn't instant, the fixed version is v1.1.2, so watch out for it!
This plug-in (Great work on this, by the way!) mostly works, but a few things don't. Any hunger-damage I specify for dehydation is ignored. I can specify different amounts of health damage, which seems to work fine, but hunger damage does nothing as far as I can tell.
Also, setting the dehydration level to anything other than 10 seems to do nothing. No matter what I set it to (usually 0, but I've tried 30, and other values), dehydration always triggers at 10 anyway. Not a huge deal, but a little annoying.
I can work around these minor quibbles, and as I said, this is a great plug-in (Works well in conjunction with my plug-in, Hunger++, in my opinion :) ), but I thought you'd want to know about those possible bugs. I'm using Minecraft 1.2.5, incidentally.
A nice addition, if you can manage it, would be to allow a different time period for inflicting damage, as compared to how often thirst is checked.
Thanks again for yours solid work!
This isn't working for me. I drink from a water bottle but my thirst doesn't get replenished. Also, messages aren't being sent when my thirst reaches a certain level. Here's my config:
@MERCHANToDEATH
As for the OPs, any respectable permission manager should allow you to revoke a permission. For example, if you are using bPermissions, give the group the ^thirst.thirst permission to remove it.
As for the AFK thing, they will eventually die if they are AFK or not from Thirst if that is the way you have it configured.
Ok, I like this quite a bit, but i was wondering if you can make thirst not apply to ops, or just a no-thirst permission node? Or if you could just an AFK thing so it wont kill people who are AFK for a few minutes that would be very cool.
@ivankrad
Thanks!!
@Q2Lummox
I'll look into it.
I love your plugin!, Was looking for a plugin like this for a long time.
You can add a bar, to be visible in Spout?.
16:36:54 [SEVERE] Could not pass event PlayerInteractEvent to Thirst org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:177) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:355) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:650) at net.minecraft.server.Packet15Place.handle(SourceFile:58) at net.minecraft.server.NetworkManager.b(NetworkManager.java:282) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109) at net.minecraft.server.ServerConnection.b(SourceFile:35) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:577) at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213) at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:473) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:405) at net.minecraft.server.ThreadServerApplication.run(SourceFile:539) Caused by: java.lang.NullPointerException at net.hungercraft.thirst.ThirstPlayerListener.onPlayerInteract(ThirstPlayerListener.java:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 16 more 16:37:04 [INFO] Har88 issued server command: /give Har88 373 64 0 16:37:12 [SEVERE] Could not pass event PlayerInteractEvent to Thirst org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:177) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:355) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:650) at net.minecraft.server.Packet15Place.handle(SourceFile:58) at net.minecraft.server.NetworkManager.b(NetworkManager.java:282) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109) at net.minecraft.server.ServerConnection.b(SourceFile:35) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:577) at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213) at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:473) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:405) at net.minecraft.server.ThreadServerApplication.run(SourceFile:539) Caused by: java.lang.NullPointerException at net.hungercraft.thirst.ThirstPlayerListener.onPlayerInteract(ThirstPlayerListener.java:70) at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 16 more 16:37:13 [SEVERE] Could not pass event PlayerInteractEvent to Thirst org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:177) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:355) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:650) at net.minecraft.server.Packet15Place.handle(SourceFile:58) at net.minecraft.server.NetworkManager.b(NetworkManager.java:282) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109) at net.minecraft.server.ServerConnection.b(SourceFile:35) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:577) at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213) at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:473) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:405) at net.minecraft.server.ThreadServerApplication.run(SourceFile:539) Caused by: java.lang.NullPointerException at net.hungercraft.thirst.ThirstPlayerListener.onPlayerInteract(ThirstPlayerListener.java:70) at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 16 more 16:37:13 [SEVERE] Could not pass event PlayerInteractEvent to Thirst org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:177) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:355) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:650) at net.minecraft.server.Packet15Place.handle(SourceFile:58) at net.minecraft.server.NetworkManager.b(NetworkManager.java:282) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109) at net.minecraft.server.ServerConnection.b(SourceFile:35) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:577) at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213) at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:473) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:405) at net.minecraft.server.ThreadServerApplication.run(SourceFile:539) Caused by: java.lang.NullPointerException at net.hungercraft.thirst.ThirstPlayerListener.onPlayerInteract(ThirstPlayerListener.java:70) at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 16 more 16:37:13 [SEVERE] Could not pass event PlayerInteractEvent to Thirst org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:177) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:355) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:650) at net.minecraft.server.Packet15Place.handle(SourceFile:58) at net.minecraft.server.NetworkManager.b(NetworkManager.java:282) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109) at net.minecraft.server.ServerConnection.b(SourceFile:35) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:577) at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213) at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:473) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:405) at net.minecraft.server.ThreadServerApplication.run(SourceFile:539) Caused by: java.lang.NullPointerException at net.hungercraft.thirst.ThirstPlayerListener.onPlayerInteract(ThirstPlayerListener.java:70) at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 16 more
Isnt working 1.3.2.... my thirst isnt getting better when i drink from waterbottle
Is there a way to have it so certain ranks dont have to drink at all? im being spammed with dehydration as an op in creative. kinda annoying to have to swtich to survival to drink
craftbukkit-1.3.2-R1.0
And after player leave the server plugin stoped
It's perfect for hunger games! I like it.
@ivankrad
servers crashing sometime but dono if the plugin causes it. server log says it cant load the plugin. is java 7 required?
HCM