
Modrinth · Minecraft mod
Temporal API
Temporal API is the library for Team Temporal mods, other projects may use it as well.
Quick answer
Which Temporal API release matches 1.20.3 Forge?
Temporal API 1.6.6 targets 1.20.1, 1.20.2, 1.20.3 with Forge. Installation on the client is optional. Installation on the dedicated server is optional. No extra mods listed for this file.
Where it goes
Is Temporal API required on the client, server, or both?
Installation on the client is optional. Installation on the dedicated server is optional.
The source marks this as usable on both the client and server.
What else does Temporal API 1.6.6 need?
1.6.6 on 1.20.3 Forge. Every mod below is checked against that same setup.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional mods.
Before you install it
Add Temporal API without breaking your instance.
Built for Temporal API 1.6.6 on 1.20.3 Forge. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use 1.6.6. It targets 1.20.1, 1.20.2, 1.20.3 with Forge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
Installation on the client is optional. Installation on the dedicated server is optional.
- 04
Pick the file you checked
Use the “Get this file” button beside 1.6.6. It opens that exact file at the source.
About this project
What does Temporal API add?
Temporal API is the official library for the Team Temporal mods other projects and modders and modpack creators may use it for their projects as much as they like.
The main goal of this mod is to make creating mods easier and more flexible!
For working with our library you need to go to build.gradle and add this:
repositories {
maven {
url "https://cursemaven.com"
}
}
dependencies {
implementation fg.deobf("curse.maven:temporalapi-970291:<file-id>")
...
}
You need to replace with file id that can be found in the end of link of needed version of the mod file.
The library for current state adds
factories,
tag utils,
creative tab utils,
trading with villagers and wanderers customizer,
world features utils,
item properties utils,
fov modifier
etc
Factory and Extensions
Factories are used to create RegistryObject objects and make their creation a lot easier.
For using ItemFactory from API you need to create ItemFactoryFacade class like here:
public class ModItemFactoryFacade extends ItemFactory {
public ModItemFactoryFacade() {
super(ModItems.ITEMS);
}
}
Also you can extend your Factory Facade with Extensions from API or create your own Extension.
Here are 2 examples of using SwordExtension (with this Extension creating of Sword becomes a lot easier):
Like this:
public class ModItemFactoryFacade extends ItemFactory implements SwordExtension {
public ModItemFactoryFacade() {
super(ModItems.ITEMS);
}
}
Or like this:
public class ModItemFactoryFacade extends ItemFactory implements SwordExtension {
public ModItemFactoryFacade() {
super(ModItems.ITEMS);
}
public RegistryObject<SwordItem> createSword(String name, Object... args) {
return SwordExtension.super.createSword(name, this, args);
}
public RegistryObject<? extends SwordItem> createSword(String name, Supplier<? extends SwordItem> tTypedSupplier) {
return SwordExtension.super.createSword(name, this, tTypedSupplier);
}
}
So what about creating our object using this Facade class:
public class ModItems {
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(Registries.ITEM, "MOD_ID");
public static final ModItemFactoryFacade ITEM_FACTORY = new ModItemFactoryFacade();
public static final RegistryObject<Item> MY_ITEM_1 = ITEM_FACTORY.create("my_item_1");
public static final RegistryObject<Item> MY_ITEM_2 = ITEM_FACTORY.create("my_item_2", new Item.Properties());
public static final RegistryObject<Item> MY_ITEM_3 = ITEM_FACTORY.create("my_item_3", () -> new Item(new Item.Properties()));
//First example of creating Facade object from up
public static final RegistryObject<SwordItem> MY_SWORD_1 = ITEM_FACTORY.createSword("my_sword_1", ITEM_FACTORY, Tiers.STONE, 3, -2.4F);
public static final RegistryObject<? extends SwordItem> MY_SWORD_2 = ITEM_FACTORY.createSword("my_sword_2", ITEM_FACTORY, () -> new SwordItem(Tiers.STONE, 3, -2.4F, new Item.Properties()));
//Second example of creating Facade object from up
public static final RegistryObject<SwordItem> MY_SWORD_3 = ITEM_FACTORY.createSword("my_sword_3", Tiers.STONE, 3, -2.4F);
public static final RegistryObject<? extends SwordItem> MY_SWORD_4 = ITEM_FACTORY.createSword("my_sword_4", () -> new SwordItem(Tiers.STONE, 3, -2.4F, new Item.Properties()));
}
Now lets's look on args... array. It is an array of arguments for creating an object (Will be changed in future for better readability).
Currently available Factories and extensions:
ItemFactory (ArrowExtension, BowExtension, BowlExtension, MusicDiscExtension, SmithingTemplateExtension, SwordExtension, AxeExtension, PickaxeExtension, ShovelExtension, HoeExtension)
BlockFactory (BushExtension, FlowerExtension, PottedFlowerExtension)
ParticleFactory
EffectFactory
PaintingFactory
PotionFactory
SoundEventFactory
CreativeTabFactory
EntityFactory
Tag Utils
Tag utils focus on tag creating and making using tags easier.
For example if you want to create item tag you need to use ItemTagFactory:
public class MyItemTags {
public static final TagFactory<Item> TAG_FACTORY = new ItemTagFactory("MY_MOD_ID");
public static final TagKey<Item> MY_TAG = TAG_FACTORY.createTag("my_tag");
}
Creative Tab Utils
Creative tab utils are used to add items to Creative Tab that you need.
Firstly we need to go to our class that subscribed for mod events and add this function (inner part of method is just example):
@SubscribeEvent
public void addCreativeTabs(BuildCreativeModeTabContentsEvent event) {
new SimpleTabAdder(event)
.addAllToTab(CreativeModeTabs.INGREDIENTS, ModItems.MY_ITEM_1, ModItems.MY_ITEM_2, ModItems.MY_ITEM_3)
.addAllToTab(CreativeModeTabs.COMBAT, ModItems.MY_SWORD_1, ModItems.MY_SWORD_2, ModItems.MY_SWORD_3);
}
Trading with Villagers and Wanderers Utils
TemporalAPI makes trading a lot easier. Here is an example of it:
public static final TradeCustomizer tradeCustomizer = new SimpleTradeCustomizer();
@SubscribeEvent
public void customizeTradesWithVillagers(VillagerTradesEvent event) {
tradeCustomizer.customize(event, new VillagerTrade(
new TradingItemHolder(Items.ANDESITE, 2),
new TradingItemHolder(Items.EMERALD, 3),
new VillagerTradeDescription(
VillagerProfession.ARMORER, 1, 5, 5, 0.5f
)
));
}
@SubscribeEvent
public void customizeTradesWithWanderers(WandererTradesEvent event) {
tradeCustomizer.customize(event, new WandererTrade(
new TradingItemHolder(Items.ANDESITE, 2),
new TradingItemHolder(Items.EMERALD, 3),
new WandererTradeDescription(
WandererTradeDescription.TradeRarity.RARE, 5, 5, 0.5f
)
));
}
World Features Utils
Will be expanded in the next updates.
Item Properties Utils
Adding needed properties to bows, shields, etc.
@SubscribeEvent
public void clientSetup(final FMLClientSetupEvent event) {
event.enqueueWork(() -> {
TemporalItemProperties.makeBow(ModItems.MY_BOW_1);
TemporalItemProperties.makeShield(ModItems.MY_SHIELD_1);
TemporalItemProperties.makeCrossbow(ModItems.MY_CROSSBOW_1);
TemporalItemProperties.putCompostable(ModBlocks.MY_FLOWER_1, 4);
});
}
FAQ:
Will This Mod Be Getting A Fabric Version:
No a fabric version is not planned
Can I use this mod in my Modpacks:
Yes, feel free to use this mod in any modpack!
How Do I suggest features or report Bugs:
Join our discord above for any comments, questions, suggestions, or problems!
Project description from Modrinth.
Pick your setup
Temporal API by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
1.20.5
1 loader build1.20.4
1 loader build1.20.3
1 loader build1.20.2
1 loader build1.20.1
1 loader buildCheck the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Temporal API versions and loaders
1.6.6
temporalapi-1.6.6.jar
30 Jun 2024
1.6.2
temporalapi-1.6.2.jar
5 May 2024
1.5.0
temporalapi-1.5.0.jar
2 Mar 2024
1.3.0
temporalapi-1.3.0.jar
15 Feb 2024
Looking for an older file? The official Modrinth project page is in Resources.