Caliditas - a temperature mechanics for Minecraft [1.15.x] 0.1.3-BETA

temperature, mechanics, api, plugin

  1. Rafkos
    Native Minecraft Version:
    1.15
    Tested Minecraft Versions:
    • 1.13
    • 1.15
    Source Code:
    https://bitbucket.org/Rafkos/caliditas/src/master/
    Languages Supported:
    English, Polish
    About Caliditas

    Caliditas (Latin. temperature) is a Minecraft Spigot server plugin that offers complex, immersive and easily configurable temperature system. Imagine building a house on top of a mountain with a big fireplace inside or spending nights inside a cave near a fireplace to keep yourself from a cold winter night. The Nether is now a very hot place, you'll have to get yourself a diamond armour that will protect you from the heat. Deserts can give you a stroke if you don't wear any hat or burn your skin if you stay in your iron armour for too long. Caliditas allows you to create your own temperature factors and effects thanks to an extensive flag system. It also provides built in features to heat sources like fire or furnaces - one can throw sticks or other materials into the fire to keep it burning for a long time. It is also possible to put "fuel" materials like wood into furnaces to make them burn without any smelting materials provided. These features can be disabled if needed. Caliditas provides a simple API for plugin makers.

    2019-01-10_13.09.38.png 2019-01-10_13.07.16.png 2019-01-10_13.05.23.png 2019-01-10_13.05.10.png 2019-01-10_13.04.57.png 2019-01-10_13.04.44.png 2019-01-10_12.59.57.png 2019-01-10_12.59.41.png 2019-01-10_12.55.25.png 2019-01-10_12.53.10.png

    Create!

    Caliditas is highly configurable. You can create your own factors, add effects and create your own localizations.

    banned_worlds.json
    Inside you can write worlds that are immune to temperature effects.

    factors.json
    Want to create your own factors? No problem. Here's an example code:
    Code (Text):

        {
            "name": "OVERHEATING_FROM_THE_SUN",
            "temperatureChange": "0.25",
            "unit": "celsius",
            "notAllowedFlags": [
                [
                    "STORM"
                ],
                [
                    "THUNDERING"
                ],
                [
                    "UNDER_ROOF"
                ]
            ],
            "requiredFlags": [
                [
                    "WEARING_NO_HELMET",
                    "DAY",
                    "DRY_BIOME"
                ]
            ]
        },
     
    name - name is used for localization.
    temperatureChange - defines the temperature change per tick (divided by step divisor, see documentation).
    unit - basically the temperatureChange unit (celsius or fahrenheit)
    notAllowedFlags - an OR list of flags that prevent the factor from happening.
    requiredFlags - an OR list of flags required for the factor to occur.

    locale.json
    Add your own language or edit existing entries.

    biomes.json
    Define biome's default temperature and flags. Important to note, that the temperatures defined in all files are target's BODY temperature. Meaning when no factors apply to player then his body temperature is going to change to the defined value.

    heat_sources.json
    Define heat sources (blocks that will spread heat).

    misc_config.json
    Various stuff... :)

    effects.json
    Define effects of one's temperature state (basically potion effects).

    states.json
    Lines here are hardcoded, you can only change threshold and unit fields. Read documentation for more info.

    list_of_flags.info
    Nothing to add in here, it's just a list of flags that you can use.

    Commands

    /cali enable <true/false> - enable/disable temperature on this server.
    /cali unit <unit> - set your default temperature unit to one of currently supported: [celsius, fahrenheit].
    /cali status - shows self temperature factors and status info.
    /cali status <player> - shows temperature factors and status info of given player.
    /cali immune <true/false> - make setf immune to temperature.
    /cali immune <player> <true/false> - make player immune to temperature.
    /cali bar <true/false> - enable/disable temperature bar.
    /cali bar <player-> <true/false> - enable/disable temperature bar of given player.
    /cali barmode <status/temperature> - change display mode of own temperature bar.
    /cali flags - shows player flags. (debug)
    /cali reload - reloads Caliditas configuration files.

    Permissions

    ALL
    caliditas.temperature - Enables temperature for given player.

    PLAYERS
    caliditas.user - Provides all the commands below and enables temperature for this player.
    caliditas.bar - Enable/disable your temperature bar display.
    caliditas.barmode - Allows for changing display of temperature bar.
    caliditas.info - Print info about available commands.
    caliditas.status - Print your current temperature status.
    caliditas.unit - Change your current temperature unit.

    ADMINISTRATION
    caliditas.admin - Provides all the user commands plus the ones below and enables temperature.
    caliditas.bar.other - Enable/disable a temperature bar display for a given player.
    caliditas.immune - Make self immune to temperature change and temperature effects.
    caliditas.immune.other - Make a player immune to temperature change and temperature effects.
    caliditas.flagsDebug - Print your current flags.
    caliditas.reload - Reload Caliditas json config files.
    caliditas.status.other - Print a temperature status of other player.
    caliditas.switcher - Enable/disable Caliditas plugin.

    Development

    I have created this plugin for myself because I really like this type of mechanics in other games then I decided to share it with you, the Community :) The plugin is still in beta stage so feel free to report everything you dislike or things you would like to see implemented. I have also provided a simple API.

Recent Reviews

  1. Pangamma
    Pangamma
    2/5,
    Version: 0.1.2-BETA
    Completely eats up my server's resources. The resource cost is not worth whatever resource usage this thing is trying to go for. Did you include a bitcoin miner in the code? Honestly, this is mad resource intensive. Needs optimization.
    https://prnt.sc/qmbygj
    1. Rafkos
      Author's Response
      Sorry to hear that. No I did not include any miner in the code. I will try and connect with VisualVM to investigate this issue.

      @edit
      The bug has been solved. It was caused by the burning furnaces feature. I have optimized the code so now it should not have any impact on performance. Thanks for reporting :)
  2. Wirus
    Wirus
    5/5,
    Version: 0.1.2-BETA
    Hello, pliss add Action Bar in Temperature :D . 1.15.1 .
  3. Flessenkemper
    Flessenkemper
    5/5,
    Version: 0.1.1-BETA
    Excellent work.

    Just an FYI, maybe reduce the difference in JSON object scopes in locale.json as it's a pain to modify. Especially when it's over 1000 lines long...
    1. Rafkos
      Author's Response
      Thank you for your feedback. The plugin has been updated :)
  4. TelestemHU
    TelestemHU
    5/5,
    Version: 0.1.1-BETA
    I would say that it is an excellent and unique plugin, but needs some improvements.