# API ## Getting Started 1. Add Dependency to Gradle ```gradle repositories { maven { url 'https://jitpack.io' } } dependencies { modImplementation 'com.thebrokenrail:sorcerycraft:VERSION' } ``` 2. Add Dependency to ```fabric.mod.json``` ```json { "depends": { "sorcerycraft": "1.1.x" } } ``` 3. Create a class extending ```com.thebrokenrail.sorcerycraft.spell.api.Spell``` ```java 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 // Not required to override } @Override public void execute(World world, BlockHitResult hitResult) { // Called when ExampleSpell hits a block // Not required to override } @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 } } ``` 4. Register the Spell in your ModInitializer ```java public class ExampleMod implements ModInitializer { public static final Identifier EXAMPLE_SPELL = SpellRegistry.register(new Identifier("modid", "example_spell"), ExampleSpell.class); } ``` 5. Add Spell Translation ```json { "spell.modid.example_spell": "Example" } ``` ## Useful Methods - ```Spell.getLevel()``` - ```Spell.getID()```