4.1 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 } @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); } }
Useful Methods
Spell.getLevel()
Spell.getID()