Update Mappings Add API Docs
4.2 KiB
SorceryCraft
Cast Spells in Minecraft!
This mod supports the Minecraft 1.16 snapshots.
What are Spells?
Spells are found throughout the world in chests. When you pick up a Spell you will learn it, one you learn a Spell you can apply it to a blank or existing Spell in the Casting Table. You can cast Spells by right-clicking. There is also a 30% chance the spell will rebound and hit you instead, unless the "Steadfast" Spell is applied.
What's a Casting Table?
You can apply Spells to blank or existing Spells in the Casting Table. Doing so will require a certain amount of levels, and sometimes may require an item.
Crafting
Blank Spell
Lapis Lazuli | ||
Lapis Lazuli | Paper | Lapis Lazuli |
Lapis Lazuli |
Casting Table
Lapis Lazuli | Cobblestone | Lapis Lazuli |
Cobblestone | Diamond | Cobblestone |
Lapis Lazuli | Cobblestone | Lapis Lazuli |
Spells
Spell | Max Level | Description |
---|---|---|
Flame | 2 | Sets target on fire. |
Damage | 2 | Damages target. |
Heal | 2 | Heals target. |
Dissolve | 1 | Removes target's status effects. |
Levitate | 2 | Gives target the Levitation effect. |
Steadfast | 1 | Prevents Spell from rebounding. |
Teleport | 2 | Teleports target to random location. |
Inward | 1 | Causes the Spell to target the player. If the Spell fails instead of rebounding, it will just do nothing. |
Cooling | 1 | Extinguish the target if they are on fire. |
/spell
Command
This command requires OP permissions.
/spell clear <player>
This command clears all known spells from the given player.
/spell list <player>
This lists all the spells the given player knows.
/spell learn <player> <spell-id> <level>
This teaches the specified spell to the specified player.
/spell add <player> <spell-id> <level>
This adds the specified spell to the item in the player's main hand.
/spell remove <player> <spell-id>
This removes the specified spell from the item in the player's main hand.
API
- Add Dependency to Gradle
repositories { maven { url 'https://jitpack.io' } } dependencies { modImplementation 'com.thebrokenrail:sorcerycraft:VERSION' }
- Add Dependency to
fabric.mod.json
{ "depends": { "sorcerycraft": "VERSION" } }
- Create a class extending
com.thebrokenrail.sorcerycraft.spell.registry.Spell
public class ExampleSpell extends Spell { public ExampleSpell(Identifier id, int level) { super(id, level); } @Override public void execute(Entity target, Entity source, Entity attacker) { // Called when ExampleSpell hits an entity } @Override public void execute(World world, BlockHitResult hitResult) { // Called when ExampleSpell hits a block } @Override public int getXPCost() { // Return the amount of levels required to make ExampleSpell in a Casting Table } @Override public ItemStack getItemCost() { // Return the item(s) required to make ExampleSpell in a Casting Table // Return ItemStack.EMPTY if an item is not required } @Override public int getMaxLevel() { // Return ExampleSpell's maximum level } }
- Register the Spell in your ModInitializer
public class ExampleMod implements ModInitializer { @Override public void onInitialize() { SpellRegistry.registerSpell(new Identifier("modid", "example_spell"), ExampleSpell.class); } }
- Add Spell Translation
{ "spell.modid.example_spell": "Example" }
Useful Methods
Spell.getLevel()
Spell.getID()