TLA Api

TLA Api

An abstraction layer over recipe viewer apis for minecraft.

by
2.0K Downloads
fabricquiltlibrary
Rent Server with this Mod

About this Mod

TLA Api

Badge showing the amount of downloads on modrinth
Badge showing the amount of downloads on curseforge
Badge linking to issues on github
Badge linking to support on discord

TLA api is an abstraction layer over recipe viewer apis for minecraft.
It allows mod developers to write their recipe viewer integration once and have it work with multiple recipe viewers.
Currently supported recipe viewers are: EMI and REI

Usage

Gradle

TLA api is available on jitpack. Add the following to your build.gradle to use it:

repositories {
    maven {
        url "https://jitpack.io"
    }
}

dependencies {
    modImplementation "com.github.mattidragon:TlaApi:${tla_api_version}"
    include "com.github.mattidragon:TlaApi:${tla_api_version}"
}

Entrypoint

To use the api you need to implement the TlaApiPlugin interface and add your implementation to the tla-api entrypoint.
Note that the entire api is client side only. If you are using split source sets,
you need to implement the api in the client source set.

public class MyTlaPlugin implements TlaApiPlugin {
    @Override
    public void register(PluginContext context) {
        // Register your api here
    }
}
{
  "entrypoints": {
    "tla-api": [
      "my.package.MyTlaPlugin"
    ]
  }
}

Registering Content

Once you've set up your entrypoint you can begin registering content.
The entire api is documented using javadocs, so you can use your IDE to explore the api.
The api design is mostly based on EMIs, but I've had to make some changes to accommodate REI.

Things to Consider

While the TLA api abstracts everything, you will still need to verify yourself that your code works with both recipe viewers.
For example, you still need to translate all of your tags for EMI. Some widgets might also render slightly differently.

A useful thing to look for while using the api are the following annotations.
They help with explaining how the api should be used.

  • @ApiStatus.Internal: This means that the part of code is not meant to be used by mod developers.
  • @ImplementationOnly: This means that the part of code is only meant to be used by the implementation of the api for recipe viewers.
    Unless you are creating your own recipe viewer integration, you should not use these parts of the api.
  • @PluginOnly: This means that the part of code is only meant to be by plugins and not by the implementation of the api for recipe viewers.
  • @ImplementationsExtend: This indicates that the interface is implemented by the implementations of the api and plugins generally shouldn't implement it.
  • @PluginsExtend: This indicates that the interface is implemented by plugins and the implementations of the api generally shouldn't implement it.

Questions

Q: Does this allow mods that only support one viewer to work on both?

A: No. This api just makes it easier for mod developers to support both viewers.

Q: Why is this api client side only?

A: EMIs entire api is client side only. REI has a server side api, but it doesn't contain any features that TLA uses.

Q: Are there any examples?

A: Yes, you can find the test mod here.
It does a few things you wouldn't normally do, but generally does a good job of showing off the api.

Available Versions

v1.2.1 [1.21]release
MC 1.21fabric, quilt
October 19, 2024
v1.2.0 [1.21]release
MC 1.21, 1.21.1fabric, quilt
June 22, 2024
v1.1.1 [1.20.6]release
MC 1.20.6fabric, quilt
June 16, 2024
v1.1.0 [1.20.6]release
MC 1.20.6fabric, quilt
May 9, 2024
v1.0.1 [1.20.4]release
MC 1.20.4fabric, quilt
January 12, 2024

How to Install TLA Api on Your Server

1

Order Server

Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).

2

Set fabric Loader

In the panel under "Egg", select the fabric loader and matching Minecraft version (1.21.1).

3

Install Mod

Open the mod browser in the dashboard and search for "TLA Api". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.

Compatibility

Mod Loaders

fabricquilt

Minecraft Versions

1.21.1, 1.21, 1.20.6 (+1 more)

Server-side

Unsupported

Recommended RAM

4 GB(min. 3 GB)

Frequently Asked Questions

TLA Api server crashes on startup – what to do?

Most common cause: wrong fabric version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (1.21.1). You can switch loaders with one click in the panel.

Is TLA Api compatible with fabric and quilt?

TLA Api officially supports fabric, quilt for Minecraft 1.21.1, 1.21, 1.20.6. The Mado dashboard automatically detects incompatible loader combinations.

Server lagging with TLA Api – how to optimize performance?

Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if TLA Api consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.

Rent Modded Server

Install TLA Api with just one click on your server.

Recommended RAM
4 GBab €8/mo
Min. 3 GB | +1 GB pro 8 Spieler
Create Server Now
1-Click Mod Install
NVMe SSD Storage
DDoS Protection included

Details

License
MIT License
Server-side
Unsupported

Supported Versions

1.21.11.211.20.61.20.4