A library providing powerful client-server-agnostic predicates with a simple API.
Find a file
sylv256 2d9bd9f6f6
All checks were successful
Test Fabric / build (push) Successful in 1m44s
Build / build (push) Successful in 6m19s
fix(ci): publishGithub -> publishForgejo
2025-11-14 14:33:50 -05:00
.github/workflows fix(ci): publishGithub -> publishForgejo 2025-11-14 14:33:50 -05:00
buildSrc fix(build): disable JPMS fuck off 2025-11-14 00:36:33 -05:00
fabric fix(build): disable JPMS fuck off 2025-11-14 00:36:33 -05:00
gradle/wrapper chore/fix: Port to 1.21.5, fixes for some contents of the mod. 2025-07-27 18:57:41 +10:00
xplat chore: updatei con 2025-11-14 02:29:03 -05:00
.editorconfig [no ci] style: modify .editorconfig to correctly indent JSON files 2025-02-10 15:47:05 -05:00
.gitattributes Initial commit 2024-11-19 15:44:03 -05:00
.gitignore build: Don't include .kotlin directories (annoying). 2025-07-27 19:19:52 +10:00
build.gradle.kts chore: update to 1.21.10 2025-11-12 23:47:25 -05:00
CHANGELOG.md chore: update changelog 2025-11-14 02:33:42 -05:00
gradle.properties Initial commit 2024-11-19 15:44:03 -05:00
gradlew Initial commit 2024-11-19 15:44:03 -05:00
gradlew.bat Initial commit 2024-11-19 15:44:03 -05:00
LICENSE fix: #1 2024-11-22 00:00:44 -05:00
README.md docs(README): make users use xplat for modCompileOnly 2025-11-13 01:12:10 -05:00
settings.gradle.kts refactor!: Rename common module to xplat. 2025-11-10 16:36:09 +11:00

Silicate

A library providing powerful client-server-agnostic predicates with a simple API.

Important

This library is new; use it with caution. The API may change frequently, and not all features have been implemented. Check the issue tracker for updates.

Usage

Add this to your build.gradle(.kts)

repositories {
	exclusiveContent {
		forRepositories(
			maven("https://maven.greenhouse.lgbt/releases") {
				name = "Greenhouse"
			}
		)
		filter { includeGroup("lgbt.greenhouse.silicate") }
	}
}

dependencies {
	// If using multiloader, use each platform as below for silicate in their respective modules
	// Otherwise, use the jar according to your platform and include/jarJar it
	// You will also need to add a compileOnly dependency on "xplat"
	modCompileOnly("lgbt.greenhouse.silicate:silicate-xplat:VERSION")
	modRuntimeOnly("lgbt.greenhouse.silicate:silicate-PLATFORM:VERSION")
	include("lgbt.greenhouse.silicate:silicate-PLATFORM:VERSION")
	// If using multiloader, put this in your "common"/"xplat" module
	// compileOnly("lgbt.greenhouse.silicate:silicate-xplat:VERSION")
}

Goal

The goal of Silicate is to complete a context-aware predicate system on par with Minecraft's Loot Context-aware predicates. Available for Fabric and NeoForge, Silicate provides a common API for interfacing advanced predicates between mods, across platforms. Silicate achieves this by implementing a clean-slate predicate architecture, initially independent of Minecraft.

Features

Silicate provides out-of-the-box Codec and datapack support, enabling developers and modpack designers to more easily implement and configure desired behavior. Silicate also comes with built-in predicates for Minecraft's various game interactions, easing the amount of boilerplate necessary.

Contributing

Before you contribute, please read about Conventional Commits. This repository uses Conventional Commits for all commit messages, and any non-conforming commit messages will be converted.