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

Kyanite Portals

A library to easily create portals

Загрузки
157
Подписчики
1
Обновлён
31 июля 2026 г.
Лицензия
MIT

Опубликован 5 января 2026 г.

Kyanite Portals is a library that allows you to easily create custom portals.

WARNING: Library is in beta and currently only made for Deeper and Darker. It will receive updates in the future to improve JSON integration, refactor certain methods, and add new features. I recommend instead using a different library until Kyanite Portals is completely stable.

However, if you do choose to use this library and find any bugs, please report them in the Discord server: https://discord.gg/GDNRd5yvxa

Why use Kyanite Portals?

You can make the portal have pretty much any behavior you want easily, and it can later be modified with data packs by modpack creators.

Kyanite Portals was made as an alternative to Custom Portal API specifically for Deeper and Darker. The reason why is that Custom Portal API didn't have everything Deeper and Darker needed (e.g., multiple ignition sources, correctly checking inner portal contents, executing custom code on travel rather than just setting the travel sound, generating the portal inside the dimension's bounds, correctly showing the client-side nausea effect), so I developed Kyanite Portals to suit our needs.

However, even though this library was made for Deeper and Darker, it functions in a modular system where you can register and set each part that makes a portal: generator and triggers, tester, actions, and client-side effects.

Usage

Visit the wiki for information on how to use the library.

Ченджлог

0.1.8+1.21.11Бета1.21.11 · 31 июля 2026 г.

Add AgnosticPredicate

  • Replaces BlockPredicate
  • Should work identically server-side, and works most of the time client-side
  • Used to allow portal testers to be used client-side
0.1.8+1.21.10Бета1.21.9, 1.21.10 · 31 июля 2026 г.

Add AgnosticPredicate

  • Replaces BlockPredicate
  • Should work identically server-side, and works most of the time client-side
  • Used to allow portal testers to be used client-side
0.1.8+1.21.1Бета1.21, 1.21.1 · 31 июля 2026 г.

Add AgnosticPredicate

  • Replaces BlockPredicate
  • Should work identically server-side, and works most of the time client-side
  • Used to allow portal testers to be used client-side
0.1.8+1.20.1Бета1.20.1, 1.20.2 · 31 июля 2026 г.

Add AgnosticPredicate

  • Replaces BlockPredicate
  • Should work identically server-side, and works most of the time client-side
  • Used to allow portal testers to be used client-side
0.1.7+1.21.11Бета1.21.11 · 20 июля 2026 г.
  • Add spectators_can_use to portal definition
    • When true, reflects changes made in 26.3 Snapshot 4, where right-clicking a portal in Spectator mode triggers travel actions
  • Change portal actions to use ContextAwarePredicate instead of EntityPredicate
    • ContextAwarePredicate is used in advancements
    • This should allow predicates to be combined, negated etc.
  • Fix portal travel between different axes of portals, i.e., the entity position should now match between the two sides
  • Remove custom BlockPredicate from the mod, which now uses the vanilla block predicate class
    • To match block entity NBT, Kyanite Portals adds the kyanite_portals:matching_nbt predicate type
  • Make kyanite_portals:block_change trigger use a block predicate instead of a block state definition
    • This change also means triggers now function only server-side
  • Change SimplePortalBuilder#ignition(Block) to SimplePortalBuilder#ignition(Block...)
0.1.7+1.21.10Бета1.21.9, 1.21.10 · 20 июля 2026 г.
  • Add spectators_can_use to portal definition
    • When true, reflects changes made in 26.3 Snapshot 4, where right-clicking a portal in Spectator mode triggers travel actions
  • Change portal actions to use ContextAwarePredicate instead of EntityPredicate
    • ContextAwarePredicate is used in advancements
    • This should allow predicates to be combined, negated etc.
  • Fix portal travel between different axes of portals, i.e., the entity position should now match between the two sides
  • Remove custom BlockPredicate from the mod, which now uses the vanilla block predicate class
    • To match block entity NBT, Kyanite Portals adds the kyanite_portals:matching_nbt predicate type
  • Make kyanite_portals:block_change trigger use a block predicate instead of a block state definition
    • This change also means triggers now function only server-side
  • Change SimplePortalBuilder#ignition(Block) to SimplePortalBuilder#ignition(Block...)
0.1.7+1.21.1Бета1.21, 1.21.1 · 20 июля 2026 г.
  • Add spectators_can_use to portal definition
    • When true, reflects changes made in 26.3 Snapshot 4, where right-clicking a portal in Spectator mode triggers travel actions
  • Change portal actions to use ContextAwarePredicate instead of EntityPredicate
    • ContextAwarePredicate is used in advancements
    • This should allow predicates to be combined, negated etc.
  • Fix portal travel between different axes of portals, i.e., the entity position should now match between the two sides
  • Remove custom BlockPredicate from the mod, which now uses the vanilla block predicate class
    • To match block entity NBT, Kyanite Portals adds the kyanite_portals:matching_nbt predicate type
  • Make kyanite_portals:block_change trigger use a block predicate instead of a block state definition
    • This change also means triggers now function only server-side
  • Change SimplePortalBuilder#ignition(Block) to SimplePortalBuilder#ignition(Block...)
0.1.7+1.20.1Бета1.20.1, 1.20.2 · 20 июля 2026 г.
  • Add spectators_can_use to portal definition
    • When true, reflects changes made in 26.3 Snapshot 4, where right-clicking a portal in Spectator mode triggers travel actions
  • Change portal actions to use ContextAwarePredicate instead of EntityPredicate
    • ContextAwarePredicate is used in advancements
    • This should allow predicates to be combined, negated etc.
  • Fix portal travel between different axes of portals, i.e., the entity position should now match between the two sides
  • Remove custom BlockPredicate from the mod, which now uses the vanilla block predicate class
    • To match block entity NBT, Kyanite Portals adds the kyanite_portals:matching_nbt predicate type
  • Make kyanite_portals:block_change trigger use a block predicate instead of a block state definition
    • This change also means triggers now function only server-side
  • Change SimplePortalBuilder#ignition(Block) to SimplePortalBuilder#ignition(Block...)

Комментарии

Загружаем…