Skip to content

Releases: RenaudRl/Typewriter-OmniGUIExtension

v0.8

Choose a tag to compare

@RenaudRl RenaudRl released this 21 Jul 14:51

Typewriter 0.9.0-beta-175 (Java 21).

New

  • Seamless menu transitions — switching menus (GUI → GUI or from another extension like QuestCodex/Shops) no longer closes and reopens the inventory. Same-size menus are repainted in place (slot diff + live title), size changes swap the window in a single packet: the close/reopen flicker on every transition is gone.

Fixes

  • Menus can no longer be looted when their session is lost. Every inventory the extension creates is now tagged with a marker holder, and click/drag/shift-move protection fails closed: a menu that lost its session (async reopen race, extension reload) stays locked down instead of degrading into an editable container whose items could be dragged into the player's inventory.
  • Real containers are never mistaken for menus. The close handler uses the holder to distinguish our own reopen race (session kept) from a real chest (session dropped, contents untouched), and in-place repaints only ever target inventories the extension owns — a matching real chest open at transition time can no longer be painted over.
  • No more NoClassDefFoundError after extension reloads. The drag service is now unregistered on shutdown (each reload used to leak a stale listener from the old classloader), and holder checks resolve by class name, which Paper can handle during event dispatch.
  • One canonical repetition implementation. GuiSlotBuilder.expandPositions is now the single source of truth for count/direction/gap/repeatY expansion, shared with QuestCodex and Shops — divergent private copies were how tagged markers stopped spreading.

Install: drop the JAR into your server's plugins/Typewriter/extensions/ folder.

Pairs with QuestCodex v2.4: https://github.com/RenaudRl/Typewriter-QuestCodexExtension-Public and Shops v1.0: https://github.com/RenaudRl/AdvancedShopsExtension

v0.7

Choose a tag to compare

@RenaudRl RenaudRl released this 21 Jul 00:20

Typewriter 0.9.0-beta-175 (Java 21).

Fixes

  • Decorative/repeat items no longer collapse to a single slot. A GuiItemData with an empty buttonType (the default for plain decorative items) was being treated as a real button type, and unset repeatY/count (serialized as 0 by the editor) produced an empty 0 until 0 range — both silently dropped repeated items instead of spreading them across the layout.
  • GUI sessions no longer wipe or hijack real containers. The stale-session branch of MenuSessionService.onClose used to clear the player's current inventory unconditionally when a mismatched inventory was detected, which could wipe real chest contents opened right after a menu. It now just removes the stale session and cancels its refresh task, and never touches the inventory.
  • Item text renders upright by default. Item names and lore no longer need an explicit <italic:false>/<!italic> tag to display upright.

Install: drop the JAR into your server's plugins/Typewriter/extensions/ folder.

Pairs with QuestCodex v2.3: https://github.com/RenaudRl/Typewriter-QuestCodexExtension-Public

v0.6

Choose a tag to compare

@RenaudRl RenaudRl released this 16 Jul 13:06

typewriter v0.9 beta 175

Fixes

  • Menus can now be opened from async Typewriter contexts (custom_command triggers, action handlers): MenuSessionService.register hops onto the player's entity scheduler before firing GuiOpenEvent and touching inventories — no more GuiOpenEvent may only be triggered synchronously errors with menus silently failing to open. Folia-safe.

Install: drop the JAR into your server's plugins/Typewriter/extensions/ folder.

Pairs with QuestCodex v2.2: https://github.com/RenaudRl/Typewriter-QuestCodexExtension-Public

v0.5

Choose a tag to compare

@RenaudRl RenaudRl released this 14 Jul 00:07

typewriter v0.9 beta 175

Fixes

  • Clicks now fire everything they should: slot commands, Typewriter triggers and fact modifiers are executed on click — pagination buttons, sliders and scroll buttons were previously unresponsive. One click sound per interaction.
  • Animations actually tick: animated sessions are registered with the ticker, and the scheduler is Folia-safe.
  • Scroll rendering: title shift adjustment no longer compounds per element (single <shift> prefix).
  • Cooldowns follow the button (virtual coordinates), not the physical slot.
  • Focus tracking traverses wrapper layouts (innerLayout).
  • Item safety: merchant trade inputs are returned on disconnect; ghost-mode copies are PDC-tagged and reclaimed on close/quit.
  • Performance: differential repaint — only slots whose item changed are rewritten.

New features

  • Menu states at runtime: _gui_states (conditions + per-layer overrides, with inheritance) are now applied in game via MenuStateService + StateAwareLayout.
  • Public Bukkit events: GuiOpenEvent (cancellable), GuiClickEvent (cancellable), GuiCloseEvent.
  • New internal actions: gui:refresh, gui:state <id> (force/clear a state), gui:sound <key>.
  • autoRefreshTicks on open_gui: periodic re-render for live counters/timers.
  • Menu templates: baseMenuId merges a base menu's layoutPool under yours (same ids override) with mainLayoutId/size fallbacks.
  • Per-slot permissions: viewPermission (hidden without it) and clickPermission (visible but inert).
  • Reactive widgets DSL: toggle, progressBar, tabs built on ReactiveSlot with click callbacks.

v0.4

Choose a tag to compare

@RenaudRl RenaudRl released this 13 Jul 18:31

Recompiled and updated for Typewriter 0.9.0-beta-175 (Java 21).

Install: drop the JAR into your server's plugins/Typewriter/extensions/ folder.

v0.3

Choose a tag to compare

@RenaudRl RenaudRl released this 08 Jul 10:36

Fixes for Trading Villager menu

v0.2

Choose a tag to compare

@RenaudRl RenaudRl released this 24 Jun 01:45

Somes fixes for vanilla guis and storage layout

v0.1

Choose a tag to compare

@RenaudRl RenaudRl released this 18 Jun 04:22

first release