Epidemic icon

Epidemic -----

Bringing real survival to your server




Change Log 1.7.8

This update adds support for Domain 1.10.0 which has a changed API

No other changes
----------, Oct 24, 2023

Change Log 1.7.7

This is a small change that only adds in some additional PlaceholderAPI values

You can now use %epidemic_has_<ailment key>% to return true/false/unknown for if the player has the ailment.

true = player has the ailment
false = player does not have the ailment
unknown = unknown ailment (maybe a typo)

Example:

%epidemic_has_broken_leg%

Ailment key is the internal key for each ailment, so you could have

%epidemic_has_rabies%, %epidemic_has_plague%, %epidemic_has_wound% etc. depending on how your server is configured
----------, Oct 12, 2023

Change Log 1.7.6

This update allows you to give a player time limited invincibility. But first a little history.

When Epidemic was first written, the epidemic.invincible permission existed - this would protect the player from all harm. But, people kept leaving themselves in op and had the permission, so never got sick. Following on from Domain I changed the behavior to use bypass mode. So a staff member would actively have to type in /epidemic bypass in order to become invincible.

This new invincible functionality gives players time limited invincibility via a command, it also includes a config option which will give new players some time to get acclimated to the server before being afflicted. It does NOT impact /epidemic bypass which is still in use.

New commands

Both new commands REQUIRE epidemic.admin permission.

/epidemic invincible <player uuid or name (if online)> <number of days>

If using player name, the player MUST be online at the time.

Number of days is the number of days from the in-game days - so if it is day 14, and you pick number of days = 7, they couldn't be afflicted until day 21

/epidemic day

This simply returns the in-game day according to Epidemic (this is NOT the same as server day due to some plugins moving that around as they expand out days/seasons/time etc.) It is simply an arbitrary day that Epidemic will use to track game days.

Configuration Changes
SERIOUSLY, please check these BEFORE contacting me regarding any issues

If you do not have a plugins\Epidemic\config\server.yml file, please create one like so

Code (YAML):
day : 0
main_world
: world
Use the name of whatever your main world is if it is not world - this is the world that Epidemic will pull the current time from.

Add the following to config.yml

Code (YAML):
# For new players joining the server, this is the number of in-game days to make them
# invincible to all ailments. Set to 0 to disable
new_player_invincible_days
: 7
If you translate Epidemic into another language, add the following to lang.yml (and then translate as needed)

Code (YAML):
command_invalid_player : "&cERROR &r- Invalid player"
command_epiinvicible_usage
: "&lUsage: &r/epidemic &binvincible <player name or uuid> <number of days>"
command_epiinvicible_invaliddays
: "&cERROR &r- You must enter a valid number of days (at least 1)"
command_epiinvicible_success
: "&aPlayer has been set as invincible for <%days%> game days"
command_infect_invincible
: "&cERROR &r- Player is invincible"
command_day
: "&rIt is day <%day%>"
----------, Jul 3, 2023

Change Log 1.7.5

This update addresses a single bug that prevents consumable remedies from being consumed if they are food or drink based.

For example, boiled water has drink: true, and item_consumed: true - but was not reading item_consumed, and incorrectly setting to false.

This resulted in consumable items never running out.
----------, Jun 30, 2023

Change Log 1.7.4
  • 1.20 support added!
  • Cleanup of mutation/vaccines code and notes
  • Startup spam severely reduced (previously 1 line per ailment & remedy - now comma delimited)
  • Hotspots without particles no longer throw a warning on startup
----------, Jun 13, 2023

Change Log 1.7.3

This update addresses an annoying null error warning players may get if they don't have a world called "world"

To address this issue, please install the latest jar (Epidemic_1_7_3.jar) and add the following to the \plugins\Epidemic\config\server.yml file (replace WORLDNAME with the name of your main world)

As always, any questions or concerns, please reach out on Discord
----------, May 23, 2023

Change Log 1.7.2

This update enables the natural cures for ailments (as well as laying the groundwork for vaccines)

Up until now, if you get a wound, a burn, a cold, or whatever ailments you have set up, you're stuck suffering with them until either you have them cured, or if the rare chance of healing while sleeping kicks in.

This update adds a new option in the ailments files that gives a maximum number of days a player will have the ailment for

Days are game days, and are not impacted by if the player is online. If they get the ailment then log off, and more than the number of natural cure days go by, when they log back on, they'll be cured, so I would set these values carefully, and in line with your server settings.

To add these cure days to an ailment, simply add the value to the appropriate ailment.yml file as shown above - you can set the value to 0, or leave it out completely and it will not be applied.

The eagle eyed of you may notice a new file appearing in the config folder called server.yml - this file records the current game day, this is NOT in-line with the servers game day, it starts at 0 from when this update is applied, and increments as each day begins, whether someone is online or not. This will come into play a lot when vaccines are rolled out as you'll need to take boosters for some vaccines.

The VERY eagle eyed of you may notice that the player information now includes afflicted_day and afflicted_time - this allows Epidemic to track when the natural cure days should apply.

Any questions or concerns, please see me on Discord!
----------, May 10, 2023

Change Log 1.7.1

Hotspots!

What IS a hotspot?
- A hotspot is a block from which an ailment can spread over a set distance

For example, if your server was to have a crashed meteorite, you could set a hotspot in the center of the impact crater and have the ailment spread over a 10-20 block radius, and anyone coming within that area could come down with radiation sickness or space rabies

Do I HAVE to use a hotspot?
- No, of course not, if you don't want to use hotspots, just don't set any up

How do the users know where the hotspot is?
- Right now, when the player gets close, (optional) particle effects can show the hotspot center. In the future, there may be an optional message to screen, but for now, just particles, it'll be a nice surprise for them!

Do the players automatically get sick in that area?
- No, you set up the chance of ailment in the same way you do for other ailments, if you want it to just be a minor chance they get sick in this area, set it low, if you want them always to get sick, set it high

What kind of sickness do they get?
- Any you want to set up - for the sample, I included radiation sickness - this ailment can't be gotten by any other means except by the hotspot, however, you can give them any ailment you choose

How do you get cured from the hotspot ailments?
- In the exact same way you do currently, create a remedy (in the sample, potassium iodide)

Why hotspots and not vaccines!?
- The vaccine code is taking longer than I'd like (BECAUSE IT'S AWESOME btw), and the hotspot code was already ready to go, so releasing 1.7.1 as a short term update, with vaccines coming!

How do I set up a hotspot?
- If you're a new user, a blank hotspot file is created

\plugins\Epidemic\config.hotspots.yml

If you're a new user, you may need to create the folder and file manually - a sample is shown below

I have also included the radiation and potassium_iodide files that go into the ailments and remedy folders

\plugins\Epidemic\ailments\radiation.yml

\plugins\Epidemic\remedy\potassium_iodide.yml

Any other changes?
- Just one minor bug fix, which takes the broken_leg.yml file from version 1.2 to 1.1 (1.2 files do not load)

If you're a current user, check your broken_leg.yml file and update as needed!

As always, any questions, come speak to me on Discord and I'll be happy to help!
----------, May 9, 2023

Change Log

No change in version number from the last copy

In some cases, the plugin could incorrectly list itself as a Trial copy during startup. This did not impact functionality in any way, it was just a misfiring output to console.

No real need to download a new copy unless that bothers you!
----------, Apr 4, 2023

Change Log

This update addresses a bug that would cause an item to be removed from a player who is being healed by another player, instead of removing the remedy from the person applying it.

No config changes required for this update

NOTE! - On startup in console this update may incorrectly specify this is a Trial Copy - please disregard. I'll post an updated copy later which removes this incorrectly reporting notice
----------, Apr 3, 2023

Change Log 1.7.0.2

This update addresses a single (but annoying) bug that caused a NullPointerException in the PlayerInteractEvent that did not impact gameplay, but did spam the console.
----------, Jan 24, 2023

Change Log 1.7.0.1

  • Hazmat suit could throw a null error during ailment checking if there was something in the armor slots that was not the hazmat suit
  • Equipment files will now auto-generate if they do not exist.
----------, Dec 28, 2022

Change Log 1.7.0

It's finally here - the long awaited Bio-Warfare Update!!

This is a BIG update, and impacts multiple configuration files, language file, as well as significant gameplay updates.

Note: If you are updating and run into any issues, please double check the default files: https://torpkev.github.io/epidemic_docs/defaults/ to make sure you have the equipment files in the /Epidemic/equipment folder.

Bio-Warfare is added with the introduction of Infected Arrows, Infected Splash Potions, and Infected blood filled syringes.

Protective Equipment has been added (Hazmat Suit & Gas Mask)

First (but not last) multi-block Epidemic equipment has been added with the Incubation Chamber (used to culture infected blood into workable samples)

New symptom: Sudden Death - Players can now be at risk of randomly dropping dead from an illness

New Ailment Cause: Weapon damage - When a player is hurt with a weapon (sword, axe, stick) - Set this if you don’t want people getting injured from being punched (for example, broken leg)

Health Command now reports no ailments correctly, previously, if you hadn’t been told you’re sick yet, it wouldn’t list the ailment, but the No ailments found message was left off, which could alert the player they were sick with something.

Thirst damage is now configurable in config.yml

Code (YAML):

#Amount of damage to inflict on the player if they reach 0 hydration left
thirst_damage
: 1
 
Biomes can now influence if a player gets sick - configurable in the ailment yml file (example: bubonic_plague.yml)

Code (YAML):

# Applies a modifier based on biome.  A negative number would indicate less chance
# while a positive number would indicate more chance.  If we had an infectious_chance
# of 100, and a swamp modifier of 24900 it would jump to 25000 every minute. So a random
# number of 1-100000 would now be <= 25000 would get you sick instead of the 100, so a
# 1/4 chance instead of a 1/1000.  You could also have an infectious_chance of 0, and
# a positive biome_infectious_chance for the biome you're in, meaning you could only
# get sick in that particular biome.  If you use a negative biome infectious chance and
# is less than the infectious chance, the overall infectious chance could drop below
# 0, which would mean you cannot get that ailment in that biome.
# In example below, being in a swamp would add 500 to the 100 already applied, so a
# (500+100) = 600 in 100000 chance, but if you were in a desert, you'd have (100 + -100)
# leaving a 0 chance and therefore meaning you could not get it in the desert. However,
# if you were in Plains, your chance would be (100 + 0) = 100 as plains is not included
# Note: example does not take contagious chance boost into consideration

biome_infectious_chance
:
  SWAMP
: 500
  DESERT
: -100
 
You can now cure some ailments by sleeping - configurable in the ailment yml file (example, wound.yml)

Code (YAML):

# Chance of the ailment being cured while you sleep.  This number is out of 1000
# Lower numbers have less chance of curing the player.  Set to 0 to never cure the
# player, or 1000 to always cure them when sleeping

cure_with_sleep_chance
: 300

# Message to send to the player when they are cured by sleeping

cure_with_sleep_message
: "The wound closed over while you were sleeping"
[/code [

Adds full support for 1.19.*

Finally, a ton of bug fixes and optimizations, with massive amounts of code being rewritten

Due to the size of the update - it is recommended you add the new features to your ailment files as needed.

Full info is here
:

[URL ]https://torpkev.github.io/epidemic_docs/ [/URL ]

As always, reach out on Discord if you have questions, or if you'd like a FREE trial.
----------, Dec 24, 2022

Change Log 1.7.0

It's finally here - the long awaited Bio-Warfare Update!!

This is a BIG update, and impacts multiple configuration files, language file, as well as significant gameplay updates.

Bio-Warfare is added with the introduction of Infected Arrows, Infected Splash Potions, and Infected blood filled syringes.

Protective Equipment has been added (Hazmat Suit & Gas Mask)

First (but not last) multi-block Epidemic equipment has been added with the Incubation Chamber (used to culture infected blood into workable samples)

New symptom: Sudden Death - Players can now be at risk of randomly dropping dead from an illness

New Ailment Cause: Weapon damage - When a player is hurt with a weapon (sword, axe, stick) - Set this if you don’t want people getting injured from being punched (for example, broken leg)

Health Command now reports no ailments correctly, previously, if you hadn’t been told you’re sick yet, it wouldn’t list the ailment, but the No ailments found message was left off, which could alert the player they were sick with something.

Thirst damage is now configurable in config.yml

Code (YAML):

#Amount of damage to inflict on the player if they reach 0 hydration left
thirst_damage
: 1
 
Biomes can now influence if a player gets sick - configurable in the ailment yml file (example: bubonic_plague.yml)

Code (YAML):

# Applies a modifier based on biome.  A negative number would indicate less chance
# while a positive number would indicate more chance.  If we had an infectious_chance
# of 100, and a swamp modifier of 24900 it would jump to 25000 every minute. So a random
# number of 1-100000 would now be <= 25000 would get you sick instead of the 100, so a
# 1/4 chance instead of a 1/1000.  You could also have an infectious_chance of 0, and
# a positive biome_infectious_chance for the biome you're in, meaning you could only
# get sick in that particular biome.  If you use a negative biome infectious chance and
# is less than the infectious chance, the overall infectious chance could drop below
# 0, which would mean you cannot get that ailment in that biome.
# In example below, being in a swamp would add 500 to the 100 already applied, so a
# (500+100) = 600 in 100000 chance, but if you were in a desert, you'd have (100 + -100)
# leaving a 0 chance and therefore meaning you could not get it in the desert. However,
# if you were in Plains, your chance would be (100 + 0) = 100 as plains is not included
# Note: example does not take contagious chance boost into consideration

biome_infectious_chance
:
  SWAMP
: 500
  DESERT
: -100
 
You can now cure some ailments by sleeping - configurable in the ailment yml file (example, wound.yml)

Code (YAML):

# Chance of the ailment being cured while you sleep.  This number is out of 1000
# Lower numbers have less chance of curing the player.  Set to 0 to never cure the
# player, or 1000 to always cure them when sleeping

cure_with_sleep_chance
: 300

# Message to send to the player when they are cured by sleeping

cure_with_sleep_message
: "The wound closed over while you were sleeping"
[/code [

Adds full support for 1.19.*

Finally, a ton of bug fixes and optimizations, with massive amounts of code being rewritten

Due to the size of the update - it is recommended you add the new features to your ailment files as needed.

Full info is here
:

[URL ]https://torpkev.github.io/epidemic_docs/ [/URL ]

As always, reach out on Discord if you have questions, or if you'd like a FREE trial.
----------, Dec 23, 2022

Change Log 1.6.9.7

This is a very minor update which addresses changing API locations in the Domain plugin with Domain 1.9.12

No need to update unless you're also running Domain, and have updated Domain.
----------, Dec 1, 2022

Change Log 1.6.9.6

This update addresses a single bug which can cause an unhandled error message in console when using goop with the base installation and no changes.

The Remedies\goop.yml file should have its cure values changed as shown:

Code (YAML):
# List of ailments that the remedy cures
cures
:
 - burn
  - broken_leg
  - typhus
  - common_cold
It was previously trying to cure some ailments that are not included in the base install, and was throwing an error.

This error is now handled gracefully, however, please update your goop.yml files accordingly anyway.
----------, Dec 28, 2021

Change Log 1.6.9.5

In my excitement to push out an update, I didn't check what would happen if a soft-depend was missing, causing some undue issues.

Sorry about that - all fixed now!
----------, Dec 24, 2021

Change Log 1.6.9.4

This update adds a feature requested by a user on Discord, and expands WorldGuard integration.

You can now specify in the config file if you want particular regions to always prevent new ailments or symptoms, regardless of which flag is on them.

To add this functionality, modify your config.yml file and add the following:

Code (YAML):
# List of WorldGuard region names where players cannot gain an ailment
prevent_ailment_worldguard_regions
:
 - spawn
  - region2

# List of WorldGuard region names where players will not experience symptoms
prevent_symptom_worldguard_regions
:
 - spawn
  - region 4
 
Obviously, modify the actual region names to suit your needs.
----------, Dec 23, 2021

Change Log 1.6.9.3

This update marks Epidemic as 1.18 supported

This update REQUIRES Java 16 as a minimum version. I will continue to support versions prior to 1.6.9.3 with Java 8, but no more updates will be released with it.

WorldGuard PVP Deny areas will now be respected by Epidemic, so hitting someone in a protected area should no longer result in ailments being applied. You can enable/disable by adding the following to your config.yml file

Code (YAML):
# If true, prevent_ailment_worldguard_pvp_deny will prevent players receiving symptoms or new ailments
# while in a WorldGuard region that does not allow PVP
prevent_ailment_worldguard_pvp_deny
: true
Bug fixes:
Drinking from a water bottle was not emptying the bottle, this behavior has been corrected.
----------, Dec 21, 2021

Change Log 1.6.9.2

This release contains a small bug fix around the infectious flag in the ailment files. In some cases, the ailment might return as non-infectious when it should be infectious.
----------, Dec 6, 2021

Change Log 1.6.9.1

This update addresses an issue with drinking from a cauldron in 1.17.* which was related to the change in item name.
----------, Oct 6, 2021

Change Log 1.6.9

This update marks Epidemic as supported for 1.17

Also contains minor bug fixes

As usual, any issues, please reach out on Discord!
----------, Jun 21, 2021

Change Log

Minor update that modifies how Epidemic references the Domain API

If you do not use Domain, you don't need to update to this version.
----------, Mar 23, 2021

Change Log 1.6.8.9

Update addresses two small issues:

During a new install, you may have received an error regarding commoncold.yml which could potentially lead to the default files not loading correctly. This issue would only impact new installs.

Domain dependency is now included as a soft-depend so you shouldn't get the annoying line in the log that it was used without being one.
----------, Feb 25, 2021

Change Log 1.6.8.8

This update addresses 2 bug fixes, and a small game mechanic change

Curing an ailment with insomnia would not always remove the players insomnia until the next server restart.

Prevent thirst worlds was broken

Game mechanic change - When teleporting between worlds, thirst will be applied within a second of the teleportation in order to properly alter the prevent thirst status and changing the color of the thirst bar rather than the player having to wait until the next scheduled go-around.
----------, Feb 15, 2021

Change Log 1.6.8.7

New Mechanic

Epidemic has a new config option which will allow you to further tweak how often a player could get sick/injured

Previously, the for an ailment to take effect, a random chance was rolled between 1/10000, and if the chance landed lower or equal to your ailment chance, the player would get the ailment.

You can now override the 10000 by setting

Code (YAML):
random_chance : <your number>
A higher number will result in players getting sick/injured less often. Please be sure to balance any changes here with your own ailment files.

Bug Fixes

There are several small bug fixes, including some null checks, but larger bug fixes:
- Config now reloads correctly using /epi reload.
- /epigive is not included in the /epi usage info
- add_effects in the remedy files were not properly applying the effects

New Default Files

New installs will get common cold, cold remedy and Goop - If you'd like these files without a new install, you can find them here: https://torpkev.github.io/epidemic_docs/defaults/



Any questions or concerns, please reach out on Discord!
----------, Feb 12, 2021

Change Log 1.6.8.5

This update corrects several bugs including:

  • Console spam when drinking from a bottle with thirst on, but the thirst bar off.
  • Several typos in language config
  • Back button in recipe gui was not configurable
  • Domain integration wasn't working as expected
----------, Jan 23, 2021

Change Log 1.6.8.2

This update corrects a bug introduced in 1.6.8 which prevented cauldrons being used as a water source. This behavior is now corrected.
----------, Dec 30, 2020

Change Log 1.6.8.1

This update addresses a single bug - with thirst enabled, stepping on a pressure plate could potentially cause a null error in the console.
----------, Dec 28, 2020

Change Log 1.6.8

We have some new features and a few bug fixes

Thirst Bar / Thirst Command

You can now hide the thirst bossbar without disabling thirst - to do so, change use_thirst_bar to false and use_thirst_text = true in the config.yml file

upload_2020-12-22_11-26-58.png

You can instead use /thirst and to see it on-screen

[​IMG]

Thirst Notifications

Players will now be alerted on-screen when their thirst goes to 50%, then 20% then 10% (as shown below) - to enable this, set display_thirst_warning to true in the config file

upload_2020-12-22_11-29-31.png

You can now drink from a pool of water on the ground without using a bowl, however, it provides much less to your thirst bar and is significantly more likely to make you sick. You MUST be crouched/sneaking and right click on the water. If you don't want this enabled, set disable_water_hands to false in the config.yml file

PlaceholderAPI Support

You can use the following placeholders:
  • %epidemic_thirst% - Gives the thirst amount as a number
  • %epidemic_thirst_text% - Gives the thirst amount as text (depending on lang.yml)
  • %epidemic_temp_meter% - Shows the thermometer
  • %epidemic_temp% - Gives the temperature as a number
  • %epidemic_ailments% - Lists all the players ailments

as shown below:

[​IMG]

It is important to note that to reduce the load on the server, Epidemic only updates its values that are accessible to PlaceholderAPI every 10 seconds. So even if you have a scoreboard that updates every second, it will still be 10 seconds until your values update. You can modify this in the config.yml file (papi_update_time [in seconds - defaults to 10[), however, depending on busy your server is, this could make load a little high as it has to pull values for every online player

Disabling Ailments and Symptoms by world

via the config.yml file..
If you set the worlds in the config.yml file, it will override all ailments, this would be the master list - so for example, if you didn't want any ailments in world_spawn, you could set it up like this:

Code (YAML):
# Master list of worlds where players cannot gain an ailment
prevent_ailment_worlds
:
- 'world_spawn'
# Master list of worlds where players will not experience symptoms
prevent_symptom_words
:
- 'world_spawn'
via the ailments yml files..
If you want to be more selective, you can add the same values per ailment, so for example, if you didn't want bubonic_plague to be active in spawn..you'd put it ONLY in the bubonic_plague.yml file, and you would NOT have it in config.yml

Bug fixes

I won't list them all out, but a number of bug fixes have been corrected

Update Instructions

Backup your existing Epidemic folder (seriously, do this. It shouldn't happen, but I won't be able to help you if you lose data)
Copy the new jar in
Update your config.yml file with the following entries:

Code (YAML):
# PlaceholderAPI update time is the number of seconds that elapse between checking
# for updated values.  For example, if set to 10, every 10 seconds, every online
# player will have their values updated for PlaceholderAPI enabled plugins to pull
# from. This is outside of the other plugins schedule and is intended to reduce
# the load on Epidemic pulling ailments/temp/thirst etc. everytime it is requested.
# Default is 10 (seconds), if you don't use PlaceholderAPI, set to -1 or remove.
papi_update_time
: 10

# Master list of worlds where players cannot gain an ailment
prevent_ailment_worlds
:
- 'world_nether'
# Master list of worlds where players will not experience symptoms
prevent_symptom_words
:
- 'world_nether'

# Flag to disable drinking water with your hands (drinking from a pool)
disable_water_hands
: false
# If true, the thirst bar is displayed on screen
use_thirst_bar
: true
# If true, running /thirst will return thirst text instead of usage
use_thirst_text
: false
# If true, the player will receive warnings about being thirsty
display_thirst_warning
: true
# If true, when the player drinks they will receive a notification in the action bar
display_drink_notification
: true
 
And add the following to your lang.yml (if you want to translate at some point - if you don't want to translate, leave them out, it won't hurt anything)

Code (YAML):
# thirst_text_x values can use <%thirst%> for the actual number, example (thirst = 17):
# thirst_text_10_19: "Thirst: <%thirst%>"  would return "Thirst: 17"
# thirst_text_disabled_x are used when the player is invincible or in a world where
# thirst is not enabled
thirst_text_0
: "Thirst: &4=========="
thirst_text_1_9
: "Thirst: &c=&7========="
thirst_text_10_19
: "Thirst: &e=&7========="
thirst_text_20_29
: "Thirst: &3==&7========"
thirst_text_30_39
: "Thirst: &3===&7======="
thirst_text_40_49
: "Thirst: &3====&7======"
thirst_text_50_59
: "Thirst: &3=====&7====="
thirst_text_60_69
: "Thirst: &3======&7===="
thirst_text_70_79
: "Thirst: &3=======&7==="
thirst_text_80_89
: "Thirst: &3========&7=="
thirst_text_90_99
: "Thirst: &3=========&7="
thirst_text_100
: "Thirst: &b=========="
thirst_text_disabled_0
: "Thirst: &f=========="
thirst_text_disabled_1_9
: "Thirst: &7=&f========="
thirst_text_disabled_10_19
: "Thirst: &7=&f========="
thirst_text_disabled_20_29
: "Thirst: &7==&f========"
thirst_text_disabled_30_39
: "Thirst: &7===&f======="
thirst_text_disabled_40_49
: "Thirst: &7====&f======"
thirst_text_disabled_50_59
: "Thirst: &7=====&f====="
thirst_text_disabled_60_69
: "Thirst: &7======&f===="
thirst_text_disabled_70_79
: "Thirst: &7=======&f==="
thirst_text_disabled_80_89
: "Thirst: &7========&f=="
thirst_text_disabled_90_99
: "Thirst: &7=========&f="
thirst_text_disabled_100
: "Thirst: &f=========="

thirst_warning_50
: "&bYou're starting to get thirsty"
thirst_warning_title_50
: "&bYou should drink as soon as possible"
thirst_warning_20
: "&6You're parched!"
thirst_warning_title_20
: "&6You need to drink soon"
thirst_warning_10
: "&4If you don't drink soon, you might die!"
thirst_warning_title_10
: "&4You're dangerously thirsty!"

drink_notification
: "You drink from <%source%>"
bowl
: "the bowl"
cauldron
: "the cauldron"
bottle
: "the bottle"
hands
: "your cupped hands"

no_ailment
: "No ailments"
And as always, if you have any questions, issues, concerns or suggestions, reach out to me on Discord!
----------, Dec 22, 2020

Change Log 1.6.7.4

This update addresses a user reported issue with Immunity.

Immunity values were not being loaded in correctly during player join, which could cause immunity checking code to fail.

No further action beyond replacing the jar file is required.
----------, Nov 27, 2020

Change log 1.6.7.3

This update corrects an issue caused with the /thirst add command
----------, Nov 7, 2020

Change Log 1.6.7

This update addresses a few bugs, removes deprecated code and also removes backwards compatibility for pre-1.6.5 data.

Bug fixes:
  • Thirst command when run from console could cause a null error
  • Debug flag could get 'stuck' causing console spamming
  • New nether biomes not getting temperature modifier
  • Damage chance modifier in broken leg, wound and gangrene had a ; at the end of the number which was throwing an error on startup
  • sample.yml was trying to load on new installs, but shouldn't have
  • healthbar.yml was added to new installs
  • Player thirst bar was not showing on the players first join to the server due to the data file not existing at the time.

Deprecated Code Removal:
With 1.6.5, a large amount of Epidemic was rewritten and optimized. This led to a large amount of 'old' code being left for backwards compatibility (more on that in the next section) which is no longer needed. This code has been completely stripped out of Epidemic. As this code is no longer in use and a large number of datapoints are no longer being tracked, Epidemic should have a smaller footprint on the server, and the file size has dropped by 60k (which really you don't care about, but I was excited).

Removed Backwards Compatibility:
If you are a new user, ignore this section completely!

Epidemic now only loads 1.6.5 compatible data files. Pre-1.6.5 will NOT undergo ailment/cure/remedy conversion. If you are still running a pre-1.6.5 install and want to upgrade, please download 1.6.5, start the server with it so it can convert, and then upgrade. You can always reach out to me directly if you have any questions on that!

And as ever, if you have any questions, comments or concerns, just come find me on Discord (link is in my signature) and I'll be happy to help!
----------, Sep 11, 2020

Change Log 1.6.6

Bug fix: Player interact was being checked regardless of prior cancellation status, and potentially modifying the cancellation status. This caused issues with Domain that may have cancelled a player interact even such as opening a door or chest, which was then allowed because the cancellation status was removed.

Remedies list via /epi recipes is now translatable by adding the following to the lang.yml file:

Code (YAML):
remedy_def_gui_header : "Remedies"
Added /epirecipes command which does the same thing as /epidemic recipes. It can be aliased by /er
----------, Sep 3, 2020

Change Log 1.6.5

This is a HUGE update to how Epidemic works in the back-end, and has some fairly significant changes for the players and for server owners.

I'm going to give a little background on the update (you can skip to "On to the changes.." if you'd like) and then get right into the changes.

Background:
The update to 1.6.5 was driven with one major goal in mind, and that was to get us ready for 1.7.0 (The Biological Warfare update). The stepping-stone approach from 1.6.2 to 1.7.0 was to accommodate the changes, and save me having to focus on both back-end changes and biological warfare changes in a single update.

The biggest change for Epidemic came back in 1.5 when multiple ailments were allowed per player. It opened up Epidemic to more changes, and got us away from players nursing a minor ailment in order to avoid a bigger one. That was absolutely vital for biological warfare, and while it existed, it wasn't being used properly. 1.6.5 was planned as where multiple ailments would really start to shine, and we'd move cures away from Ailments and into their own file. At least.. that was the plan.

What actually happened was this. I removed Cures from Ailments, making old cures into legacy cures, then realized that I now had multiple different, but very similar structures in place. Cures, Custom drinks, Relief potion, infection cure, boiled water, snow-melt water and temperature relief recipes. They all worked on a similar basis, but were in no way related. And so remedies were born. Remedies replace all of those individual objects into a single entry that can perform any of their features. (You can read more about Remedies here: https://torpkev.github.io/epidemic_docs/remedies).

While moving all of these into Remedies, I ended up having to deprecate huge amounts of code as they just didn't do anything once the conversion to Remedy was done, so while working through removing old code, I ended up rewriting about 80% of the plugin code in order to properly support remedies and multiple ailments, as well as standardizing, removing duplicate code blocks and making the code more efficient in general.

The deprecated code in 1.6.5 will likely be removed in another stepping stone update PRIOR to 1.7.0, meaning if you are coming from pre-1.6.5, you will need to install 1.6.5 BEFORE 1.7.0 in order to get the conversion of existing files etc.

1.6.5 is now (finally) ready and has a ton of new features with the remedies, removes a lot of the bloat from the config.yml file and should run much more smoothly, and I'm looking forward to getting 1.7.0 ready and released, finally bringing full on biological warfare to Epidemic.

On to the changes..

If you read the above, you already know there are a LOT of changes. I won't list every little change (honestly, I didn't document them all or it'd have been a novel), but I will outline the major changes below. But before I do, a warning:

If you're updating from a pre-1.6.5 install of Epidemic, there are several major changes to the mechanics of Epidemic that should be considered BEFORE upgrading. If you are a new user, or if you're doing a fresh install, then please read the below, but don't worry about any of the conversion changes - there is a whole set of pre-configured ailments and remedies you can use, modify or even discard and create your own.

Please note that when converting from a pre-1.6.5 version, the Ailments and your main config.yml files will be overwritten. You must backup your Epidemic folder BEFORE updating as you will likely lose a number of comments etc.

Cures are no longer tied to Ailments

Prior to 1.6.5, each ailment could have a single cure, which allowed the cure to be saved in the Ailment folder. This is no longer the case. With remedies, you can have multiple cures for a single ailment, or a single remedy that cures multiple ailments. During the conversion process, your cure will be exported out into a Remedy file. It is highly recommended that you review this prior to use.

Multiple use remedies are available ONLY for 1.14+

Secondary infections have been removed from the game

Prior to version 1.5, only a single ailment could be applied to a player at a time. This prevented any additional ailment being used for the secondary infection. With 1.5 multiple ailments became available as an optional config setting. With 1.6.5, this is no longer optional. Multiple ailments are now enabled by default and cannot be changed.

As Epidemic can now handle multiple ailments easily, the secondary infections were a very limited approach to a follow-up infection, instead they have been replaced with secondary ailments, which is a small but very important distinction. The major difference here is that the secondary ailment has its own ailment record. It will still be triggered in the same way as a secondary infection, but is truly its own ailment. The other major difference this causes is that previously you could not cure the original ailment until you had cured the infection, now you can cure the original ailment or infection in either order. If you cure the secondary ailment, it will not be applied again by the original ailment (unless cured and then the player gets the ailment again).

With this change, we no longer needed the relief potion or infection cure from the main config.yml file - these have been removed from the game. The conversion process will automatically create the secondary infection ailments and remedies for you, but again, it is highly recommended that you review these prior to use.

Please note that because the secondary ailment has its own ailment record, it could have its own secondary ailment of its own. This is referred to as ailment chaining and is NOT recommended or supported.

Custom Drinks

Custom drinks are a fairly new feature added to Epidemic with version 1.5.5, however, they mimic a number of features found in Remedies, so became redundant. You can now create remedies for each custom drink and modify the various configuration options as needed. The conversion process will automatically convert these for you.

Temperature Relief Potions

Similar to custom drinks, the temperature relief potions became redundant when alongside remedies as remedies can apply heat/cold symptom relief. The conversion process will automatically convert these for you.

Default Thirst Potions

Similar to custom drinks, the custom thirst potions became redundant when alongside remedies as remedies can apply thirst modifiers, so have been replaced with remedies. The conversion process will automatically convert these for you.

Drinking from a non-boiled cauldron can now make you sick

The same logic that decided if dirty water could make you sick has now been applied to drinking from a cauldron without a campfire beneath it.

/epidemic cures has been replaced with /epidemic.recipes

As cures have been deprecated and are automatically converted, there is no need for /epidemic cures, however, /epidemic recipes provides a very similar interface for remedies.

Permission Changes

The following permission changes have been made, however, the old permissions can be still be used, but are considered deprecated and WILL be removed in an upcoming update.

epidemic.cures.take has been replaced with epidemic.remedy.take

epidemic.cures.display has been replaced with epidemic.recipes.display

Added API

Developers can now hook into Epidemic via the API.
Two events are exposed; Affliction and Remedy. There are also 5 functions open to the API which give access to cure the player, get the current afflictions, get a list of available ailments and remedies and also to get the players temperature.

JavaDocs are available here: https://torpkev.github.io/epidemic_docs/javadocs

Updated Documentation

Documentation has been moved to https://torpkev.github.io/epidemic_docs

Please put any issues or suggestions right into the Issues option on the github page: https://github.com/torpkev/epidemic_docs/issues

Finally, as always, if you have any questions or concerns, please visit the Discord channel and let me know in the #epidemic channel. https://discord.gg/7a47xSX
----------, Aug 31, 2020

Change Log 1.6.2

This update adds a few new features, fixes a bunch of issues, removes some deprecated code and sets us up nicely for 1.6.3 (which will hopefully be coming fairly soon)

Commands/Permissions:

I've added a command that allows you to give a player a cure item, such as as reliefcure, bandage, splint etc.

/epigive <player name> <cure key>
This command requires the epidemic.give or epidemic.admin permission.

Config Changes:

A few new config options allow you to control thirst a bit more (mostly for those using other plugins it might clash with).

disable_water_bottle: true
disable_water_bowl: true

These options give you the ability to turn water bottles and water bowls off. Both of these options default to false.

You can also add in:

respawn_thirst_level: <number 1-100>

If you respawn with < 1 thirst remaining, your thirst level will be set according to this. If this entry is not in the config, it will default to 100

Plugin mechanic changes:

Thirst now skips players if they are not in SURVIVAL mode

epidemic.admin permission no longer automatically grants epidemic.invincible (this was preventing some admin players from getting sick/injured)

Relief potion is no longer applied at the ailment (which did make sense back when single ailments were the only option) - and drinking multiple relief cures will increase the relief period UPTO 15 minutes. The relief potion effects however will NOT persist after a server restart, so it is not advised for players to drink potion after potion. This MAY change again in 1.6.3

The deprecated sqlite data storage code has been purged from Epidemic completely - what does this mean for you guys? Well, if you're still running on a version that uses sqlite and not the yml storage (I can't imagine anyone is at this point), you MUST upgrade in order. 1.6.1 was the last version that would support the data transition from database to yml. If you jumped from an very old version to this version, you'll just not have any of your player data imported.

Fixes:

A null error could occur when right clicking a custom item created in other plugins.

Player damage could kill players even if the ailment had the is_fatal option set to false.

true/false on the /health command can now be translated by adding the following to lang.yml

true: "true"
false: "false"

The Future:

Epidemic has another update coming soon - this change is going to push through some fairly significant changes around base configuration for the plugin. I'm planning on having any data conversion happen automatically, so don't panic about the changes below.

Cures will be split away from their ailments. So you'll no longer have an ailment like a broken leg, and a built in cure of a splint. Instead, you'll have an ailment like brokenleg, then a splint.yml file that has which ailments it can cure.

The benefits to this, other than cleaning up the config files CONSIDERABLY is that you could have multiple cures per ailment, or cures that could fix multiple ailments.

The cures will include temperature relief, health restoration, potion effects, thirst etc.

As the cures (and we may use a new name instead of cure) can handle the temp/thirst attributes, the custom drinks recently added will be removed from config.yml and will be regenerated as these custom cure items. The relief cure and infection cure will be removed from config and made into custom cure items too.

Next big change is removing the secondary infection from the ailments. So where now you have say a broken leg, that after 5 minutes of not being treated by become infected - that infection will no longer be embedded into the ailment. Instead, secondary infections will be ailments in their own right, and the ailment will instead just point to what ailment to trigger. The reasoning behind this is three-fold. 1) Previously, you could only have a single ailment at a time, so the infection HAD to be embedded. 2) Right now, you can't cure a broken leg if it gets infected, you have to cure the infection, which doesn't make any sense at all. So with the change, you can get an infection and still cure the broken leg first. 3) You can have different types of secondary infections. "Infection" doesn't necessarily make sense as a secondary ailment for say, Rabies. Instead you can create multiple types of secondary ailments and choose the one that suits you.

I'm planning on adding PlaceholderAPI (PAPI) support

I'm going to be adding a number of API functions and events (such as on affliction and on symptom events)

FINALLY - This next update will do a lot of behind the scenes work to set up the 1.7 build which will be the biological warfare update, which I know a lot of people are waiting on. (Excited about biological warfare and have suggestions? Let me know in Discord!)
----------, Aug 6, 2020

Change Log 1.6.1

This update addresses an issue that would prevent Epidemic running properly on new installs on pre-1.15 servers.

  • Custom recipes in the ailments will no longer trigger an error in 1.13/1.14
  • Sticky Egg in the default config will no longer cause issues in 1.13/1.14 and the base material is changed to LIME_DYE
  • Empty ailment effects in the ailment config files will no longer trigger an Unexpected Error warning in the console
----------, Jul 6, 2020

Change Log 1.6.0

This update brings Spigot/Paper 1.16.1 support to Epidemic

Temperature that previously applied to the Nether is now applied across all Nether biomes

New command:

/epidemic debug

You will need epidemic.admin permission to use this (or via console) - it will turn on/off the debug mode previously made available via the config file.

When reporting errors, please reproduce it with debug mode on - it will save a ton of time. See the info in Discord for more details.
----------, Jul 1, 2020

Change Log 1.5.5

  • /epidemic reload now reloads all data
  • Bug fixes for penicillin use and drinking relief potions
  • Added custom drink support

The custom drink support is based on the name of the potion being consumed.

For example, if you had a drink with the name Coffee and your config set up as below, it would restore 10 points to thirst bar. If you had Lemonade, it would return 30, and display a message telling you it was refreshing.

To enable custom drink support, please add something similar to your config file (with your own values, obviously)

Code (YAML):
# ==================================================================================
# Custom Drinks <start>
# ==================================================================================
# Custom drinks allow you to use other plugins that create custom drinks in
# Epidemic, and have those drinks control the amount of thirst each drink
# returns.  This is based ONLY on the name of the drink without any color codes
# applied.
# ==================================================================================
# custom_drinks should be defined only once, and all drinks nested under it
custom_drinks
:
  # Each drink needs a unique identifier, it really doesn't matter what you call it
  # so long as it is unique and does not include spaces/special characters
  coffee
:
    # Name is the display name that will be checked
    name
: "Coffee"
    # Amount is the amount the thirst bar will be modified
    amount
: 10
    # Message will display a message to the player when they drink it, if blank
    # no message will be sent. Message can include color codes
    message
: ""
  milk
:
    name
: "Milk"
    amount
: 1
    message
: "Not very refreshing.."
  lemonade
:
    name
: "Lemonade"
    amount
: 30
    message
: "That was very refreshing"
NOTE: Epidemic is NOT yet supported for 1.16 - It should work without issue, but is not supported. Still doing some testing, but I'd expect to release the 1.16-ready version later this week.
----------, Jun 30, 2020

Change Log 1.5.4

Just a small bug fix for Epidemic that can cause some cures to be uncraftable

NOTE: Epidemic is NOT yet supported for 1.16 - It should work without issue, but is not supported. Still doing some testing, but I'd expect to release the 1.16-ready version by next week.
----------, Jun 26, 2020

Change Log 1.5.3

This update just removes an annoying logging message that is output to the console when thirst is not being used.
----------, May 10, 2020

Change Log 1.5.2

This update corrects two unrelated issues centered around thirst.

The command:
/thirst set <player name> <amount>
Was only setting if the player was the first online player in the list, otherwise reporting an error that the player was not online.

When logging in, players thirst bars were not setting correctly, though the underlying thirst amount was. This could lead players to think they had a full thirst bar and then have it suddenly drop on the next iteration of thirst being applied.

Both issues are corrected in this update.
----------, Apr 28, 2020

Change Log 1.5.1

This update applies a bug fix to the Thirst code that was preventing the thirst bar from displaying changes during clear weather.
----------, Apr 27, 2020

Epidemic Update 1.5

First a warning - This is a big code change. If you are upgrading, please keep a copy of your Epidemic folder and jar in case you want to roll back. Also, due to the size of the update, despite the exhaustive testing I've done you may come across occasional issues that just don't come up in my test world, if you do, please report them and I'll get them fixed asap.

Changes!
Prefix in chat messages can now be changed via the lang.yml file

Data Storage
SQLite database is now deprecated. All data will be stored in yml files in a Data folder. If you're an existing user, your data should automatically convert when you start the server up. For new users, you will automatically start with yml files.

Secondary Infections
Secondary Infections and its cure of Penicillin in the main config file is being marked for deprecation. It will be replaced with secondary infection options per ailment. This change is not yet in effect, but will be coming in a future version!

Multiple Ailments
You can now get multiple ailments at the same time, so having a broken leg wouldn't prevent you from getting the plague etc. You can turn this on/off in the config file

New Symptoms
  • Clumsiness - You may randomly drop the item in your main hand when symptoms hit, also has a chance to make you leave whatever vehicle you're in (hope you can swim!)
  • Foot Rot - Any food/drink in your inventory becomes infected and rots away
  • Gibberish - Any chat you send in-game may randomly be garbled
  • Mute - Unable to talk in chat
  • Hallucinations - Can cause you to hear sounds around you randomly and can cause a brief burst of confusion
  • RemoveXP - Causes the players XP to drop each time symptoms occur
  • Rust - Causes any iron armor, sword or tools to become damaged each time symptoms occur
Temperature
You can now get too hot or cold, this varies by biome, time of day, armor you're wearing, any ailments which may cause fever or chills and if you're near or holding particular types of blocks. Temperature can be turned on/off in the config, and you can exclude certain worlds, for example, if you don't want to use temperature in the Nether, you can disable it there.

Players in Creative mode, in OP or have epidemic.invincible permission will not gain temperature symptoms.

This includes a new command /temp (requires epidemic.temp permission) and /temp info (required epidemic.temp.info permission)

This will show your current temperature on a scale. If you are hot or cold for too long, you may experience symptoms such as slowness, sweating, damage to player, changes to your thirst bar (if enabled).

Temperature is based on: Core temp (checks for armor, if you're on fire and if you're inside), ambient temperature based on biome, time of day and if you are near any blocks with extreme temperatures (ice, lava, fire etc.) and elevation (it gets cold too high up and underground, but hot close to bedrock), and from ailments that cause fever/chills.

Modifiers are listed below. These values may change in upcoming versions based on feedback from users.

Armor modifiers:
  • Leather/Chainmail/Turtle helmet add 0.5 temperature for each piece of armor
  • Iron/Gold armor adds 1 temperature for each piece of armor
  • Diamond armor removes 0.5 temperature for each piece of armor
  • [Netherite armor will add 0 when 1.16 is released]

Biome modifiers:

(Any biome not listed = 0)
  • Badlands (and variants) = +3 during day, +4 around noon, -1 at night
  • Beach = +1
  • Cold Ocean = -1 during day, -0.5 around noon, -2 at night
  • Deep Cold Ocean = -2.5 during day, -3 around noon, -3.5 at night
  • Deep Frozen Ocean = -2.5 during day, -3 around noon, -3.5 at night
  • Deep Lukewarm Ocean = -2.5 during day, -3 around noon, -3.5 at night
  • Deep Ocean = -2.5 during day, -3 around noon, -3.5 at night
  • Desert = +2 during day, +3 around noon, -1 at night
  • Desert Hills = +2
  • Desert Lakes = +2
  • Frozen Oceans = -2.5
  • Frozen Rivers = -2.5
  • Ice Spikes = -2.5 during day, -3 around noon, -3.5 at night
  • Jungle (and variants) = +1 during day, +1.5 around noon, +2.5 at night
  • Lukewarm Ocean = +1
  • Mountains (and variants) = -1
  • Nether = +4
  • River = -0.5
  • Snowy Beach = -3
  • Snowy Mountains = -3
  • Snowy Taiga = -3
  • Swamp = +1.5
  • Taiga (and variants) = -1
  • The End (and variants) = -4
  • The Void = -10
  • Warm Oceans = +1.5
  • Wooded Badlands = +1

Nearby Block Modifiers

Temperature checks will check all blocks with a 2 block radius, the modifier is based on the distance, so can return one of two different values.
These values are cumulative, so if you're around 1 block of ice, your temperature will drop a little, if you're surrounded by ice, it'll drop a lot. These max out at +10/-10
  • Fire = 1 block +2, 2 blocks +0.5
  • Campfire = 1 block +5, 2 blocks +0.5
  • Lit Furnace (and variants) = 1 block +2, 2 blocks +1
  • Blue, Packed, Frosted Ice = 1 block -1.5, 2 blocks -0.5
  • Ice = 1 block -0.75, 2 blocks -0.25
  • Snow = 1 block -0.1, 2 blocks -0.05

Item in Hand Modifiers
  • Blaze Powder = +0.5
  • Blaze Rod = +0.5
  • Blue Ice = -0.5
  • Fire Charge = +0.5
  • Frosted Ice = -0.5
  • Ice = -0.5
  • Lantern = +0.5
  • Lava Bucket = +0.5
  • Magma Cream = +0.5
  • Packed Ice = -0.5
  • Snow Block = -0.5
  • Snowball = -0.5
  • Torch = +0.5
Error Tracking
Serious errors will now display the full stack trace if the player has debug mode enabled

Config/Language File Changes

New users will have a fully formed config and language files created on startup, if you are an existing user, the following will need to be added (NOT replaced completely, just add to). Alternately, if you haven't changed anything in either file, you could delete both files and they will regenerate on startup.

Code (YAML):

# ==================================================================================
# Temperature <start>
# ==================================================================================
# Flag to indicate if temperature should be enabled
enable_temp
: true
# Number of seconds to check for temperature (time per cycle for symptoms)
temp_seconds
: 30
# List of worlds to not apply temperature to
prevent_temp_worlds
:
 - world_nether
  - world_the_end
# Number of seconds to have temperature relief applied for
temp_relief_time
: 60
# Flag to indicate if players should be warned about temperature extremes
temp_warn_players
: true

# Temperature Relief
# You can add as many relief items in as you'd like
# Each one can provide relief for hot or cold (or both)
# These relief items are craftable and consumable.
# If a potion is used, an empty glass bottle will be returned
temp_relief
:
  # Cool water, applies heat relief
  cool_water
: # Item key, MUST be unique
    # Name as displayed in-game (Color codes can be used)
    display_name
: "Ice cold water"
    # Item lore (can be multiple lines & color codes can be used)
    lore
:
     - "A cool drink to cool you down"
    # Relief consumed text is the text shown to the player when they
    # consume the relief item.  If "", then no message will be shown
    # Color codes can be used
    relief_consumed_text
: "That drink hit the spot, you've really cooled down"
    # Base item is the item it is displayed as in-game
    base_item
: POTION
    # Return item is the item that should be returned to the player
    # If no item, put AIR
    return_item
: GLASS_BOTTLE
    # Color is the potion color (only if base_item is POTION)
    potion_color
: AQUA
    # If food is true, a food sound is played when consuming the item
    food
: false
    # If drink is true, a drink sound is played when consuming the item
    # (if both food and drink are true, a burp will be played)
    drink
: true
    # Recipe is broken out into each crafting table slot
    # Fill all spaces, if no item, use AIR
    # All materials listed MUST exist in-game
    recipe
:
      top
:
        left
: AIR
        center
: SNOWBALL
        right
: AIR
      middle
:
        left
: AIR
        center
: GLASS_BOTTLE
        right
: AIR
      bottom
:
        left
: AIR
        center
: AIR
        right
: AIR
    # Indicates if it provides relief to being cold
    cold_relief
: false
    # Indicates if it provides relief to being hot
    hot_relief
: true
  # Sticky egg, provides heat and cold relief
  sticky_egg
: # Item key, MUST be unique
    # Name as displayed in-game (Color codes can be used)
    display_name
: "Sticky Egg"
    # Item lore (can be multiple lines & color codes can be used)
    lore
:
     - "A sticky egg concoction"
    # Relief consumed text is the text shown to the player when they
    # consume the relief item.  If "", then no message will be shown
    # Color codes can be used
    relief_consumed_text
: "It's slimy, but it helps"
    # Base item is the item it is displayed as in-game
    base_item
: GREEN_DYE
    # Return item is the item that should be returned to the player
    # If no item, put AIR
    return_item
: AIR
    # If food is true, a food sound is played when consuming the item
    food
: true
    # If drink is true, a drink sound is played when consuming the item
    # (if both food and drink are true, a burp will be played)
    drink
: true
    # Recipe is broken out into each crafting table slot
    # Fill all spaces, if no item, use AIR
    # All materials listed MUST exist in-game
    recipe
:
      top
:
        left
: AIR
        center
: SLIME_BALL
        right
: AIR
      middle
:
        left
: AIR
        center
: EGG
        right
: AIR
      bottom
:
        left
: AIR
        center
: AIR
        right
: AIR
    # Indicates if it provides relief to being cold
    cold_relief
: true
    # Indicates if it provides relief to being hot
    hot_relief
: true
  # Hot Chocolate, provides cold relief
  hot_cocoa
: # Item key, MUST be unique
    # Name as displayed in-game (Color codes can be used)
    display_name
: "Hot Cocoa"
    # Item lore (can be multiple lines & color codes can be used)
    lore
:
     - "A steaming drink of hot cocoa"
    # Relief consumed text is the text shown to the player when they
    # consume the relief item.  If "", then no message will be shown
    # Color codes can be used
    relief_consumed_text
: "Warm and sweet, really helps with the cold"
    # Base item is the item it is displayed as in-game
    base_item
: POTION
    # Return item is the item that should be returned to the player
    # If no item, put AIR
    return_item
: GLASS_BOTTLE
    # If food is true, a food sound is played when consuming the item
    food
: false
    # If drink is true, a drink sound is played when consuming the item
    # (if both food and drink are true, a burp will be played)
    drink
: true
    # Recipe is broken out into each crafting table slot
    # Fill all spaces, if no item, use AIR
    # All materials listed MUST exist in-game
    recipe
:
      top
:
        left
: AIR
        center
: SNOWBALL
        right
: AIR
      middle
:
        left
: COCOA_BEANS
        center
: GLASS_BOTTLE
        right
: SUGAR
      bottom
:
        left
: AIR
        center
: BLAZE_POWDER
        right
: AIR
    # Indicates if it provides relief to being cold
    cold_relief
: true
    # Indicates if it provides relief to being hot
    hot_relief
: false
 

Code (YAML):

# Prefix
prefix
: "&2[&fEpidemic&2]&r "

# Temperature
temp_getting_hot
: "&cYou are starting to get too hot"
temp_getting_cold
: "&9You are starting to get too cold"
temp_hot_symptom
: "&4You are too hot!"
temp_cold_symptom
: "&1You are too cold!"
normal
: "Normal"
hot
: "&cHot"
cold
: "&9Cold"
thermometer_hot
: "H"
thermometer_cold
: "C"
temp_info
: "Overall: <%level%>,Temperature: <%temp%>, Core: <%core%>, Ambient: <%ambient%>, Ailment(s): <%ailments%>"
temp_disabled
: "&cTemperature is disabled, unable to use command"
temp_no_perm
: "&cSorry, you do not have permission to do use that command"
temp_usage
: "&cSorry, that usage is not supported.  Use /temp or /temp info"
temp_no_console
: "&cSorry, this command cannot be run by console"

# Misc
food_rot
: "Your food has been tainted and rotted away"
mute_player
: "&cYou can't talk right now"
 

Finally, there are a LOT of changes under the hood to improve performance and to plan ahead for future changes.

Coming soon -
  • 1.16 support (this will be job #1 as soon as the Spigot jar is released)
  • Ailment specific secondary infections
  • Stats - Recording number of times infected, how often you've infected others etc.
  • Vaccinations - The syringe is already in-game but has no real use yet (you can draw blood, but can't use it). This will be really fleshed out in an upcoming version where you'll be able to use certain animals to generate vaccinations
  • Nearby mob afflictions - Spend a lot of time around cows, you may get mad cow disease
  • Disease tipped arrows and throwable potions - When just coughing on a player isn't enough
----------, Apr 10, 2020

Change Log 1.1.7

Request was made for more control over player thirst, so 3 new commands have been added.

  • /thirst add <player> <amount 0-100>
    - Adds the amount to the current thirst level
  • /thirst remove <player> <amount 0-100>
    - Removes the amount from the current thirst level
  • /thirst set <player> <amount 0-100>
    - Sets the current thirst level
All amounts are 0-100 and must be whole numbers. Player is the player name (tab completion is on) and the player MUST be online.

A new permission is required for the /thirst command (or players with op/epidemic.admin can use)

epidemic.thirst

And finally, the following entries should be added to your lang.yml file (optional)

Code (YAML):
thirst_disabled : "&cThirst is disabled, unable to use command"
thirst_no_perm
: "&cSorry, you do not have permission to do use that command"
thirst_unexpected_error
: "&cUnexpected Error - Please contact an admin"
thirst_invalid_number
: "&cAmount must be a whole number between 0 and 100 (example: 32)"
thirst_invalid_player
: "&cInvalid player.  Player must be online"
thirst_add_success
: "&aAmount added to players thirst bar"
thirst_add_usage
: "&lUsage: &r/thirst &badd &6<player> <amount 0-100>"
thirst_remove_success
: "&aAmount removed from players thirst bar"
thirst_remove_usage
: "&lUsage: &r/thirst &bremove &6<player> <amount 0-100>"
thirst_set_success
: "&aAmount set to players thirst bar"
thirst_set_usage
: "&lUsage: &r/thirst &bset &6<player> <amount 0-100>"
----------, Mar 27, 2020

Change Log 1.1.6

This update addresses a bug which allowed players to refill their thirst bar by with an empty bowl even if not clicking water.

Also, added a flag to the config file that allows disabling cauldrons as a source of water. It defaults to allow cauldrons, if you would like to disable them, add the following to your config.yml file

disable_cauldron: true
----------, Mar 23, 2020

Change Log 1.1.5

Corrects an issue where the version check was running before config was loaded - and if the version check failed, the debug_logging flag couldn't be read, resulting in null errors.

Thanks to ReverendJesus and 0x03 for spotting this one!
----------, Mar 5, 2020

Change Log 1.1.4

This is an opt-in new feature release - Please only apply if you would like to use the new feature

(I know its a lot of little changes for each release, I'm trying to make sure too many features aren't added all at once to reduce the chance of bugs.)

This release adds in permission based crafting. If you'd like only specific people or groups to craft disease cures, this is the update for you!

This is an opt-in change and the permission based crafting is disabled by default. To enable it, set the following in the config file

Code (YAML):

# require_craft_perm is a flag to indicate if epidemic.craft.<cure internal name> is needed to
# craft the cure item.  For example, if true, epidemic.craft.splint would be required to craft a splint
require_craft_perm
: true
 
Each cure needs its own permission, those permissions are as follows:

epidemic.craft.<cure internal name>
epidemic.craft.infectioncure
epidemic.craft.reliefcure

You can find the internal cure name in the ailment yml file in the ailments folder. For example, brokenleg.yml has the cure Splint, which has an internal_name of "splint"

Code (YAML):

cure_internal_name
: splint
cure_display_name
: §aSplint
cure_lore
:
 - A sturdy splint to attach to your leg
cure_item
: STICK
 
So you would add the permission epidemic.craft.splint

If the player does not have permission, they will receive a message that they cannot craft that item when they try and remove the item from the crafting table.

2019-07-31 16_33_06-Window.png

----------, Jul 31, 2019

Change Log 1.1.3

Insomnia has come to Epidemic.

You can now apply insomnia as a symptom to an illness, when the player has insomnia they will be unable to sleep.

To add it, add the following to your ailment configuration file:

Code (YAML):
insomnia : true
Bug fixes
Permission errors when using /cure and /infect are cleaned up
----------, Jul 30, 2019

Change Log 1.1.2

Thirst gets a small update here - players can no longer right click in water to drink. Instead, they must use a bowl in their main hand.

The dirty water causing illness chance still applies to using the bowl.

Also, drinking bottled water can now cause the same illness that drinking ground water does - boiled water, water from a cauldron with a campfire beneath it or snow-melt water are the only safe option.

No configuration changes required.
----------, Jul 28, 2019

I'll be spending some more time on updates for Epidemic in the coming weeks, so expect a flurry of feature updates coming soon.

Change Log 1.1.1

This update applies a penalty to the player for drinking water from the ground.

If enabled in the config, there is a chance that drinking that water will cause you to vomit, will lower your thirst bar further, empty your hunger bar down to 1 and apply a poison effect.

The chance of illness when drinking is increased in the jungle, jungle hills, modified jungle and modified jungle edge, and then even more so in swamp and swamp hills.

This feature is enabled by default, but you can turn it on/off or change chance of it happening by adding the following to your configuration file:

Code (YAML):
# dirty_water_penalty is a flag to indicate if a penalty should be applied for drinking dirty water
dirty_water_penalty
: true
# dirty_water_chance is the chance that drinking non-boiled water could cause illness
# This number is added to the environment modifier.  A random chance will be applied against this
# number and can cause illness.  dirty_water_chance should be 0-1000
dirty_water_chance
: 50
2019-07-26 08_58_11-Minecraft 1.14.4.png
----------, Jul 26, 2019

Change Log 1.1.0

Support for 1.14 added
----------, May 10, 2019

Change Log 1.0.0.13

Added the ability to reduce thirst by consuming mushroom stew
----------, Mar 31, 2019

Change Log 1.0.0.12

Multiple code fixes and code cleanup
----------, Mar 23, 2019

Change Log: 1.0.0.11

Added crafted items for a clean water source:

Boiled Water
furnace.png
furnace_complete.png

Snow-Melt Water
snow-melt.png

As this is a clean water source, it reduces your thirst much more than other water sources (50 vs 10 of water bottle and 5 of water pool).

The player can still drink from a pool of water or from a water bottle, however, they will carry the chance of illness (not implemented yet)

Modified Biome modifiers:
Jungle biome will increase thirst only at night
Desert biome will increase thirst only during the day

Storms:
Player will not gain additional thirst during a storm

Swimming:
Player will not gain additional thirst while swimming

Bug Fixes:
A player that logs out and logs back in could possibly lose their Thirst bar (though thirst effects still occurred) - This has been corrected.
----------, Mar 18, 2019

Change Log: 1.0.0.10

Thirst has been added to Epidemic!

Your player will get thirsty and will eventually become dehydrated and begin taking damage.

Your players thirst is listed at the top of the screen and will decrease over time.

thirst_bar1.png
thirst_2.png
thirst_3.png

Once the thirst bar reaches zero, the player will begin taking damage.

If a player is in Epidemic Bypass mode, or if they are in a non-allowed world, their Thirst bar will be disabled:

bypass.png

thirst_nether.png

The player can drink water from a water bottle or from a small pool to reduce their Thirst counter. To drink from a pool, they simply need to right click into the water.

This is an early release of Thirst, so while the basic functionality works, some more detailed functions will be added in upcoming releases.

Opt-In:

To enable thirst, you will need to add the following to your configuration file (as well as have 1.0.0.10+ installed)

Code (YAML):
enable_thirst : true
thirst_seconds
: 30
prevent_thirst_worlds
:
 - world_nether
enable_thirst = A true/false flag for if Thirst should be enabled. Defaults to false.

thirst_seconds = The number of seconds it takes between changing your thirst level.

prevent_thirst_worlds = A list of worlds where Thirst will not be applied, for example, not in the nether

Upcoming Thirst Features:
Boiling water to get a safe water supply
Using snowballs to craft safe water
Other water sources give a chance of illness (if configured) - for example, drinking water in a swamp would give a high chance of dysentery
Dehydration giving a chance of illness (additional illness cause)
Configurable thirst modifier based on Biome (currently set to be higher in the desert,badlands, jungle and nether)

If you have any questions, concerns or suggestions with this update, please feel free to reach out!
----------, Mar 17, 2019

Change Log 1.0.0.9

Two big updates in this release:

You can now prevent an ailment or its symptoms from being applied to a player.

To use, add the following to your ailment YML files (You can change which worlds are impacted these are for example purposes only)

prevent_afflict_worlds:
- world_nether
- world_the_end
prevent_symptom_worlds:
- world_nether
- world_the_end

prevent_afflict_worlds are worlds where your ailment will NOT be applied. prevent_symptom_worlds are worlds where your ailment will not show symptoms.

So for example, if you added these to your fever.yml file, your player would not be able to get a fever while in the Nether or the End, and if they had a fever before entering, they wouldn't suffer the symptoms while in the Nether or the End.

This is an opt-in update and will NOT be applied unless you change your ailment yml files - if you do not update them, all worlds will be allowed.

The second major update is the addition of the bypass command

The bypass command is designed to allow your mods to interact with players without gaining injury/illness, but allows them to continue playing as normal by turning bypass mode off.

To access this, you will need the permission epidemic.bypass and use the command /epidemic bypass

When in bypass mode, you will have a visual reminder:

epidemic_bypass.png

While in bypass mode, you will not be able to be infected or injured, and symptoms will not be applied. Once you exit bypass mode, any existing injury or illness symptoms will start again.

This will replace use of epidemic.invincible and/or being in creative mode to avoid ailments. These have been left in for legacy purposes but will be removed in an upcoming version.
----------, Mar 12, 2019

Change log for 1.0.0.8

Fixed an issue with /infect which would send an error message to the person being infected

/Infect will now tell you if you can't infect a player (for example, if they are in Op)

/Infect will now tell you if you successfully infected a player

epidemic.admin now has all other permissions with the exception of epidemic.invincible

Added a back button to the Cures ingredients page, clicking it will return you to the Cures page

2019-03-06 08_53_00-Window.png
----------, Mar 6, 2019

Change Log:

Previously, using /epidemic cures where the cure included a POTION (water bottle) as one of the ingredients, the water bottle was being displayed as Uncraftable Potion. This has been corrected and is now showing a plain water bottle.

2019-03-05 09_12_28-Window.png
----------, Mar 5, 2019

Change Log:
If the language file is missing an entry (due to an update/new feature etc.) then the existing lang.yml will be updated with the default text.
----------, Mar 4, 2019

ChangeLog:

Minor permissions fix
----------, Mar 3, 2019

Players in creative mode will no longer gain an illness, this is to allow staff members to perform their duties while using plugins like Duties
----------, Mar 1, 2019

Change Log:

Added language file lang.yml - Common messages can be translated here. Ailment messages can be modified in the ailment yml files.

Added Cures lookup via /epidemic cures
cures.png
cures_1.png

Non-contagious ailments were double checking the random number, meaning the chance of affliction were lower as both were required.

Added two new permissions:

epidemic.cures.display - Displays the list of cures and ingredients using /epidemic cures
epidemic.cures.take - Allows you to take the cure from the /epidemic cures GUI
----------, Feb 22, 2019

Change Log

Configuration:
Added
:
display_vomit: true/false, if true, player vomits during symptoms
display_bleeding:
face: true/false - if true, player bleeds from face during symptoms
head: true/false - if true, player bleeds from back of head during symptoms
chest: true/false - if true, player bleeds from chest during symptoms
back: true/false - if true, player bleeds from back during symptoms
left_arm: true/false - if true, player bleeds from left arm during symptoms
right_arm: true/false - if true, player bleeds from right arm during symptoms
left_leg: true/false - if true, player bleeds from left leg during symptoms
right_leg: true/false - if true, player bleeds from right_leg during symptoms
display_bowel: true/false - if true, player loses control of their bowels during symptoms
display_urinate: true/false - if true, player loses control of their bladder during symptoms
display_sweat: true/false - if true, player sweats
display_injury - true/false, if true, shows a particle effect on injury
display_contagious - true/false, if true, shows a particle effect on illness
caused_by_entity: list - entities on this list will cause the illness.

#Example from rabies.yml:
# A bite from a wolf gives a chance of catching Rabies
caused_by_entity:
- WOLF

Removed:

cause_bleeding - Replaced with display_bleeding
cause_vomit - Replaced with display_vomit
particle_on_afflicted - Replaced with display_contagious
sound_on_afflicted - Replaced with display_contagiuos


Added additional error handling
Bug fixes
----------, Feb 21, 2019

Version 1.0.0.1
Added the permission epidemic.invincible which is used to protect players from injury/illness. This replaces epidemic.admin being used for this as epidemic.admin is also used for some commands.
----------, Feb 17, 2019

Resource Information
Author:
----------
Total Downloads: 197
First Release: Feb 16, 2019
Last Update: Oct 24, 2023
Category: ---------------
All-Time Rating:
13 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings