Alchema 1.0.2.0

In-world cauldron crafting, witchcraft and sorcery

  1. Choco
    Native Minecraft Version:
    1.16
    Tested Minecraft Versions:
    • 1.16
    Source Code:
    https://github.com/2008Choco/Alchema/
    [​IMG]

    Alchema integrates the world of brewery, witchcraft and magic with Minecraft without being intrusive on the vanilla feel of the game. It allows players to craft items using a cauldron filled with water that's been lit with some heat source and a select handful of ingredients. With entirely customizable, data-driven recipes, Alchema allows server owners to customize everything about the cauldron and what all is possible for players.


    Features In Brief:
    • Bubbling cauldrons. Filled cauldrons with a heat source will start to bubble!
    • In-world cauldron crafting. Dropping a mix of ingredients into cauldrons may yield a new item!
    • A powerful data-driven recipe system to define cauldron recipes with JSON files.
    • Drag-and-drop installation with no additional steps for server owners by default.
    • Flexible developer API for custom ingredient types and recipes (among other things).
    [More to come...] a list of planned features, though suggestions are appreciated.


    Bubbling Cauldrons:

    [​IMG]

    Any in world cauldron is presented with a new mechanic, bubbling! No special crafting recipe for this cauldron, any vanilla cauldron will do. Under the following conditions, a cauldron will begin to bubble:
    • A source of heat is ignited below the cauldron.
    • Water is present in the cauldron and filled to its maximum.
    • A little bit of patience. The cauldron takes (by default) 5 seconds to start bubbling
    Such that all of the above conditions are met, the cauldron will bubble indefinitely and allows players to begin the process of crafting items exclusively through the cauldron.


    Cauldron Crafting:

    [​IMG]

    Dropping an item inside of a boiling cauldron will consume it and will become an ingredient in the cauldron. Throw in enough items of the right type and the cauldron will begin to craft automatically without any input from the player.

    Accidentally drop something into the cauldron that you didn't want to lose? Have extra ingredients that you can't get back? The cauldron remembers the exact item you dropped into it (even across server restarts!) and you can retrieve any remaining ingredients by either collecting the water from the cauldron, removing the source of heat, or destroying the cauldron in the world (though be careful with the heat source underneath).

    Alchema provides 34 recipes by default. They are as follows:
    • 1x Beetroot: 1x beetroot seeds + 1x bone meal
    • 1x Wheat: 1x wheat seeds + 1x bone meal
    • 1x Pumpkin: 1x pumpkin seeds + 2x bone meal
    • 1x Melon: 1x melon seeds + 2x bone meal
    • 1x Wheat: 1x wheat seeds + 1x bone meal
    • 1x Beetroot Soup: 1x bowl + 4x beetroot
    • 1x Mushroom Stew: 1x bowl + 1x brown + 1x red mushroom
    • 1x Rabbit Stew: 1x bowl + 1x brown/red mushroom + 1x cooked rabbit + 1x baked potato
    • 1x Coal Ore: 2x coal + 1x stone
    • 1x Diamond Ore: 2x diamond + 1x stone
    • 1x Emerald Ore: 2x emerald + 1x stone
    • 1x Gold Ore: 2x gold + 1x stone
    • 1x Iron Ore: 2x iron + 1x stone
    • 1x Lapis Ore: 2x lapis lazuli + 1x stone
    • 1x Redstone Ore: 2x redstone + 1x stone
    • 1x Turtle Egg: 1x egg + 1x scute
    • 2x Fermented Spider Eye: 1x spider eye + 1x brown mushroom + 1x sugar
    • 2x Glowstone Dust: 1x coal + 1x redstone
    • 8x Concrete: 8x concrete powder + 1x gravel (all 16 variants)


    Data-Driven (JSON) Recipes:

    Every single recipe is configurable and/or removeable with a powerful data-driven (JSON) set of recipes in Alchema's plugin directory. Under plugins/Alchema/recipes, you will find each of the above listed recipes with their own JSON file containing information about the recipe (much like how Minecraft handles its recipes!)


    [​IMG]


    As an example, the Fermented Spider Eye recipe as seen above looks like this:
    Code (Javascript):
    {
       "result": {
           "item": "minecraft:fermented_spider_eye",
           "amount": 2
       },
       "ingredients": [
           {
               "type": "alchema:material",
               "item": "minecraft:spider_eye"
           },
           {
               "type": "alchema:material",
               "item": "minecraft:sugar"
           },
           {
               "type": "alchema:material",
               "item": "minecraft:brown_mushroom"
           }
       ]
    }
    If you do not want the recipe, delete the file from the recipes directory and reload the recipes with the /alchema reload command. Add your own recipes by adding a new .json file and following a similar format. Everything is extremely configurable with this JSON file structure without having to know how to code.


    Commands:

    Alchema aims to integrate entirely with the vanilla Minecraft world without having to force players to learn any new commands in order to experience the plugin. Commands are deemed as intrusive for average player use and therefore few are added for administrator use only.
    • /alchema reload
      • Reload the config.yml and recipes registered by both Alchema and third-party plugins
      • Permission: alchema.command.reload
    • /alchema version
      • View version and developer information about Alchema
    • /alchema integrations
      • View list of plugins integrating with Alchema
      • Permission: alchema.command.integrations (default)


    Permissions:

    (op) alchema.command.*:
    • (op) alchema.command.reload: Grant access to /alchema reload
    • (default) alchema.command.integrations: Grant access to /alchema integrations
    (op) alchema.updatenotify: Receive notifications for updates when joining the server


    Configuration:

    Below you'll find the default configuration for Alchema:
    Code (YAML):
    # Whether or not to check for updates
    CheckForUpdates
    : true
    # Whether or not anonymous plugin metrics should be tracked
    Metrics
    : true

    Cauldron
    :
     # The time, in milliseconds, it takes for a heat source to boil a cauldron
      MillisecondsToHeatUp
    : 5000
      # Whether or not entities should be damaged when inside a boiling cauldron
      DamageEntities
    : true
      # The pool of death messages used when a player is killed in a boiling cauldron
      DeathMessages
    :
       - "%s has boiled to death in a cauldron."
        - "%s was cooked in a cauldron."
      Sound
    :
       # The volume at which the ambient bubbling sound is played
        AmbientBubbleVolume
    : 0.45
        # The volume at which the item splash sound is played
        ItemSplashVolume
    : 1.0
        # The volume at which the sound for a successful cauldron craft is played
        SuccessfulCraftVolume
    : 0.5

    Alchema API:

    Alchema provides developers with an extremely powerful API to create custom types of ingredients, custom recipes and to more closely interact with the cauldron and everything it does while in the world. The Alchema artifact is hosted for free on Jitpack.

    Javadocs for Alchema may be found here: https://choco.wtf/javadocs/alchema/
    Details on how to use the Alchema API may be found on GitHub

    Depending with Maven
    Code (XML):
    <project>
      ...
      <repositories>
        <id>jitpack</id>
        <url>https://jitpack.io/</url>
      </repositories>
      ...
      <dependencies>
        <dependency>
          <groupId>com.github.2008Choco</groupId>
          <artifactId>Alchema</artifactId>
          <version>PLUGIN-VERSION-HERE</version>
          <scope>provided</scope>
        </dependency>
      </dependencies>
      ...
    </project>
    Depending with Gradle
    Code (Groovy):
    repositories {
      jcenter()
      maven { url "https://jitpack.io" }
    }

    dependencies {
      implementation 'com.github.2008Choco:Alchema:PLUGIN-VERSION-HERE'
    }

    Like Alchema?

    Try AlchemicalArrows! AlchemicalArrows aims to improve the bow vs. bow combat experience while staying true to Minecraft's vanilla mechanics as much as possible. It adds 16 unique types of arrows in addition to the ones provided by vanilla Minecraft (potion-tipped arrows), including, but not limited to, air arrows, water arrows, earth arrows, fire arrows, grapple arrows, explosive arrows, life arrows and more...

    Alchema has become a derivative of functionality previously present in AlchemicalArrows, but now as its own standalone plugin, it integrates seamlessly with AlchemicalArrows and automatically registers cauldron recipes for each arrow! If you like Alchema, you'll surely love AlchemicalArrows. Try it today! It's free!


    In Closing:

    If you have any concerns with the plugin, do not hesitate to contact me on my official support Discord and I will answer whenever available!

    Additionally, I also happily welcome contributions to the API if you believe it is necessary for development purposes, or to the plugin if you wish to see more features that you believe you may add yourself! Thank you and enjoy!

    support_discord.png
    MishaNeYT likes this.

Recent Reviews

  1. AristoNetwork
    AristoNetwork
    5/5,
    Version: 1.0.1.1
    very good concept , would like to see how this plugin would turn out to be. Good luck
    1. Choco
      Author's Response
      Thank you! Lots of plans for larger updates to come :)