Перейти к содержимому
Mineforgian

Silicate

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

4K загрузок2 подписчиковMPL-2.0fabricneoforge

Обновлён 14 ноября 2025 г. · опубликован 23 ноября 2024 г.

Silicate

Silicate (or "silly predicates") is a library that provides 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
	compileOnly("net.modgarden.silicate:silicate-xplat:VERSION")
	runtimeOnly("net.modgarden.silicate:silicate-PLATFORM:VERSION")
	// If using multiloader, put this in your "common" module
	// compileOnly("net.modgarden.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.

Центр версий

37 версий
  • Бета378 КБ
  • Бета81 КБ
  • Бета80 КБ
  • Бета81 КБ
  • Бета81 КБ
  • Бета90 КБ
  • Бета90 КБ
  • Бета90 КБ
  • Бета90 КБ
  • Бета90 КБ
  • Бета90 КБ
  • Бета91 КБ
  • Бета90 КБ
  • Бета91 КБ
  • Бета91 КБ
  • Бета91 КБ
  • Бета91 КБ
  • Бета85 КБ
  • Бета84 КБ
  • Бета85 КБ

Ченджлог

1.0.0-beta.1+1.21.10-fabricБета1.21.10 · 14 ноября 2025 г.

This changelog will be set in the future. 1.0.0-beta.1 will not have a changelog because I'm lazy lol.

0.9.0+1.21.8-fabricБета1.21.8 · 18 августа 2025 г.

Breaking Changes

  • silicate:entity_vehicle must now use the silicate:vehicle_entity param type to reference the vehicle entity, with other fields remaining the exact same.
  • silicate:entity_passenger must now use the silicate:passenger_entity param type to reference the passenger entity, with other fields remaining the exact same.
  • silicate:entity_tame_owner must now use the silicate:owner_entity param type to reference the owner entity, with other fields remaining the exact same.
  • silicate:entity_projectile_owner must now use the silicate:owner_entity param type to reference the owner entity, with other fields remaining the exact same.
  • The ContextParamType codec will now return a data error if not present within the registry, or if the class of the registered param type is unable to be casted to the specified class. On a success, this will return the original context param type if it is an exact match in class, otherwise, this will create a new param type if the resulting class can be cast to the specified class.

Added

  • Ported to 1.21.5.

Fixed

  • Fixed entity_vehicle, entity_passenger, entity_tame_owner, entity_projectile_owner conditions overriding the original field with the target entity within their inner conditions' context.
  • Fixed issues with registering custom game conditions on NeoForge.
  • Fixed ContextParamType codec creating entirely new param types without checking if a param type of the sort exists already.
  • Fixed ContextParamType codec's entirely new param types not being equal to any param type in the case of casted classes.
0.9.0+1.21.8-neoforgeБета1.21.8 · 18 августа 2025 г.

Breaking Changes

  • silicate:entity_vehicle must now use the silicate:vehicle_entity param type to reference the vehicle entity, with other fields remaining the exact same.
  • silicate:entity_passenger must now use the silicate:passenger_entity param type to reference the passenger entity, with other fields remaining the exact same.
  • silicate:entity_tame_owner must now use the silicate:owner_entity param type to reference the owner entity, with other fields remaining the exact same.
  • silicate:entity_projectile_owner must now use the silicate:owner_entity param type to reference the owner entity, with other fields remaining the exact same.
  • The ContextParamType codec will now return a data error if not present within the registry, or if the class of the registered param type is unable to be casted to the specified class. On a success, this will return the original context param type if it is an exact match in class, otherwise, this will create a new param type if the resulting class can be cast to the specified class.

Added

  • Ported to 1.21.5.

Fixed

  • Fixed entity_vehicle, entity_passenger, entity_tame_owner, entity_projectile_owner conditions overriding the original field with the target entity within their inner conditions' context.
  • Fixed issues with registering custom game conditions on NeoForge.
  • Fixed ContextParamType codec creating entirely new param types without checking if a param type of the sort exists already.
  • Fixed ContextParamType codec's entirely new param types not being equal to any param type in the case of casted classes.
0.9.0+1.21.5-neoforgeБета1.21.5 · 18 августа 2025 г.

Breaking Changes

  • silicate:entity_vehicle must now use the silicate:vehicle_entity param type to reference the vehicle entity, with other fields remaining the exact same.
  • silicate:entity_passenger must now use the silicate:passenger_entity param type to reference the passenger entity, with other fields remaining the exact same.
  • silicate:entity_tame_owner must now use the silicate:owner_entity param type to reference the owner entity, with other fields remaining the exact same.
  • silicate:entity_projectile_owner must now use the silicate:owner_entity param type to reference the owner entity, with other fields remaining the exact same.
  • The ContextParamType codec will now return a data error if not present within the registry, or if the class of the registered param type is unable to be casted to the specified class. On a success, this will return the original context param type if it is an exact match in class, otherwise, this will create a new param type if the resulting class can be cast to the specified class.

Added

  • Ported to 1.21.5.

Fixed

  • Fixed entity_vehicle, entity_passenger, entity_tame_owner, entity_projectile_owner conditions overriding the original field with the target entity within their inner conditions' context.
  • Fixed issues with registering custom game conditions on NeoForge.
  • Fixed ContextParamType codec creating entirely new param types without checking if a param type of the sort exists already.
  • Fixed ContextParamType codec's entirely new param types not being equal to any param type in the case of casted classes.
0.9.0+1.21.5-fabricБета1.21.5 · 18 августа 2025 г.

Breaking Changes

  • silicate:entity_vehicle must now use the silicate:vehicle_entity param type to reference the vehicle entity, with other fields remaining the exact same.
  • silicate:entity_passenger must now use the silicate:passenger_entity param type to reference the passenger entity, with other fields remaining the exact same.
  • silicate:entity_tame_owner must now use the silicate:owner_entity param type to reference the owner entity, with other fields remaining the exact same.
  • silicate:entity_projectile_owner must now use the silicate:owner_entity param type to reference the owner entity, with other fields remaining the exact same.
  • The ContextParamType codec will now return a data error if not present within the registry, or if the class of the registered param type is unable to be casted to the specified class. On a success, this will return the original context param type if it is an exact match in class, otherwise, this will create a new param type if the resulting class can be cast to the specified class.

Added

  • Ported to 1.21.5.

Fixed

  • Fixed entity_vehicle, entity_passenger, entity_tame_owner, entity_projectile_owner conditions overriding the original field with the target entity within their inner conditions' context.
  • Fixed issues with registering custom game conditions on NeoForge.
  • Fixed ContextParamType codec creating entirely new param types without checking if a param type of the sort exists already.
  • Fixed ContextParamType codec's entirely new param types not being equal to any param type in the case of casted classes.
0.8.0+1.21.4-fabricБета1.21.4 · 25 марта 2025 г.

Changed

  • tweak: add GameCondition#getTemplate for ease of access to condition templates

Fixed

  • fix(GameTest): add fake player to player list
0.8.0+1.21.4-neoforgeБета1.21.4 · 25 марта 2025 г.

Changed

  • tweak: add GameCondition#getTemplate for ease of access to condition templates

Fixed

  • fix(GameTest): add fake player to player list
0.8.0+1.21.1-fabricБета1.21.1 · 25 марта 2025 г.

Changed

  • tweak: add GameCondition#getTemplate for ease of access to condition templates

Fixed

  • fix(GameTest): add fake player to player list

Комментарии

Загружаем…