# CinderCore

Core API for the Cinder Project
Cinder is a project with the goal of removing the barrier of entry to modded servers. You are not strictly required to have the Cinder content mods installed to log into supported server, instead any items, blocks and entities your client fails to recognize, are packet manipulated to look like something your client can handle

Use the following methods to register fallbacks for entities, items and blocks (items and blocks both count as items)

```java
// Input fields are of type Item, Item, String, String
// Version name needs to only contain numbers and dots
// Version is used to track in which version was feature added, to enable outdated versions of a mod to be used on login
CinderCore.registerItemFallback(Item.getIdFromItem(itemField), Item.getIdFromItem(Items.itemField), "mod_name", "mod_version");

// Fallback entity currently needs to be modded. Working on adding compatibility for vanilla entities.
CinderCore.registerEntityFallback(YourModdedEntity.class, FallbackEntity.class, "mod_name", "mod_version");

// Also supports custom fallbacks. These need to be explicitly implemented in CinderCore. Currently only implemented custom fallback is for banners. Check com.zivilon.cindercore.mixins.LOTRPatches.java for the implementation
// More custom fallbacks can be added to LOTRPatches.java if LOTR related. If related to other mods, please create new mixin class to organize code better.
CinderCore.registerCustomFallback(banner_id, target_id, "banner", "mod_name", "mod_version");
```
