Unofficial site, not affiliated with modrinth.com.What is this?
Моды/Ornithe Standard Libraries
Ornithe Standard Libraries

Ornithe Standard Libraries

A set of libraries for modding with Ornithe.

59.4K
20

Ornithe Standard Libraries 0.18.0

beta2 мая 2026 г.

Ornithe Standard Libraries 0.18.0

OSL 0.18.0 supports Minecraft versions between Alpha 1.0.1_01 and Release 1.14.4.

Core 0.7.1

The Core API now provides a transitive injected interface for Vanilla's Identifier class implementing OSL's NamespacedIdentifier.

Branding 0.4.2

Fixes the version string used in Alpha 1.2.1_01 and earlier. The format now matches that used in following versions.

Entrypoints 0.6.0

The init entrypoint is now invoked before client-init and -server-init`. This change was made in order to match behavior from Fabric Loader's entrypoints.

Lifecycle Events

Now supports Beta 1.3.

Executors 0.1.0

This new API provides access to the main game instances as java.util.concurrent.Executors, and supplies a background executor for running tasks off the main game thread.

The Minecraft and MinecraftServer classes are made to implement Executor. Any tasks submitted are guaranteed to run on the main game thread. If called from a different thread, the task will be queued to be run at the start of the next tick. Instances can be acquired using the Lifecycle Events API.

MinecraftInstance.get().execute(
    // this code is guaranteed to be run on the main client thread!
);

The background executor can be acquired through the net.ornithemc.osl.executors.api.BackgroundExecutor class.

BackgroundExecutor.get().execute(
    // this code is guaranteed to be run on a background thread!
);

Networking Implementation 0.1.1

Fixes a crash due to a Mixin injection failure in late 1.7 snapshots.

Text Components 0.1 Alpha 1

This new API provides an alternative to Vanilla's chat component system. This is an Alpha release of this API and changes are very likely, so use with caution!

Text components can be made using factory methods in the net.ornithemc.osl.text.api.TextComponents class. Text components can be converted into legacy formatted strings as well.

TextComponent text = TextComponents.literal("this is a text component")
    .format(Formatting.BOLD)
    .append(" - and this is another one!");

String string = text.buildFormattedString();

Ornithe Standard Libraries 0.17.2

beta17 марта 2026 г.

Ornithe Standard Libraries 0.17.2

OSL 0.17.2 supports Minecraft versions between Alpha 1.0.1_01 and Release 1.14.4.

Resource Loader 0.6.1

  • Fixes crashes when mod resources are accessed before the game is done initializing.
  • Fixes crashes in findResources if the search directory does not exist.

Ornithe Standard Libraries 0.17.1

beta16 февраля 2026 г.

Ornithe Standard Libraries 0.17.1

OSL 0.17.1 supports Minecraft versions between Alpha 1.0.1_01 and Release 1.14.4.

Branding 0.4.1

Fixes crashes in the Snooper screen.

Ornithe Standard Libraries 0.17.0

beta14 февраля 2026 г.

Ornithe Standard Libraries 0.17.0

OSL 0.17.0 supports Minecraft versions between Alpha 1.0.1_01 and Release 1.14.4.

OSL is now on Gen2!

From this point forward, all OSL releases will be for Gen2. Information on how to install Gen2 instances can be found on the Wiki.

Core 0.7.0

Namespaced Identifiers

This update brings namespaced identifiers, an OSL alternative for Vanilla's Identifier, available for all supported Minecraft versions. The base of this API is the NamespacedIdentifier interface. It defines the namespace and identifier components, which are equivalent to Identifiers namespace and path respectively.

The valid chars for namespace components are a-zA-Z0-9-_.. The valid chars for identifier components are a-zA-Z0-9-_./.

Factory methods for NamespacedIdentifiers can be found in the NamespacedIdentifiers class, along with validation methods. The NamespacedIdentifiers.from methods will throw exceptions if the constructed identifier is invalid.

For improved interoperability with Vanilla, Identifier is made to implement NamespacedIdentifier. This means you can pass Identifier objects in places in OSL's APIs where NamespacedIdentifier is expected.

Entrypoints 0.5.0

Custom Run Arguments

The API for parsing custom run arguments has been unified across Minecraft versions as well as between the client and server. JOptSimple is now used everywhere.

Keybinds 0.2.0

Minecraft versions below 1.3 are now supported.

Lifecycle Events 0.6.0

Minecraft game instance

Access to the Minecraft game instance is now provided through the MinecraftInstance class. An exception is thrown if the instance is not available (before initialization or after shutddown).

Minecraft server instance

Access to the MinecraftServer instance is now provided through the MinecraftServerInstance class. An exception is thrown if the instance is not available (before initialization or after shutddown).

Networking 0.9.0

The Networking API has been overhauled to be more consistent across Minecraft versions.

Custom payload channels

In previous versions, OSL relied entirely on Vanilla's definitions of custom payload channels. This meant Strings were used before 1.13 and Identifiers were used after 1.13. From this version on, the API uses NamespacedIdentifiers for channels, and OSL will handle the conversion internally.

To create a channel, use the factory methods in ChannelIdentifiers and register it in ChannelRegistry. For example:

NamespacedIdentifier COOKIE_CHANNEL = ChannelRegistry.register(ChannelIdentifiers.from("example", "cookie"))

Packet serialization

In previous versions, OSL relied on serialization methods provided by Vanilla. This meant DataInput and DataOutput were used before 1.7, and PacketByteBuf, a wrapper around Netty's ByteBuf, were used after 1.7. From this version on, the API provides its own ByteBuf implementation: PacketBuffer. It contains many of the same convenience methods PacketByteBuf does, but is used for every Minecraft version supported by the Networking API.

Packet listener context

Packet listeners are no longer given direct access to the game instance, network handler, or player instance. Instead, a context is provided though which these can be accessed. The context is also used to control asynchronous packet handling. For example:

ServerPlayNetworking.register(CookiePayload.CHANNEL, CookiePayload::new, (ctx, payload) -> {
    // ensure following code is only executed from the main thread
    ctx.ensureOnMainThread();

    // access the current server, network handler, and player through the context
    MinecraftServer server = ctx.server();
    ServerPlayNetworkHandler networkHandler = ctx.networkHandler();
    ServerPlayerEntity player = ctx.player();
})

Ornithe Standard Libraries 0.16.3

beta15 февраля 2025 г.

Ornithe Standard Libraries 0.16.3

Fixes

Lifecycle Events API

  • Fixes a crash in server versions prior to a0.2.0.

Совместимость

Minecraft: Java Edition

b1.8.11.14.x1.13.x1.12.x1.11.x1.10.x1.9.x1.8.x1.7.x1.6.x1.5.x1.4.x1.3.x1.2.x1.1.x1.0.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Детали

Лицензия:Apache-2.0
Опубликован:2 года назад
Обновлён:1 день назад
Главная