Skip to main content

Extension Update

· 3 min read
Gabber235
TypeWriter Maintainer

This release brings a foundational shift in Typewriter’s core structure and a major update to the item system, along with new features and important usability improvements. Below are the highlights:

Critical Changes

From Adapters to Extensions

Typewriter has transitioned from using Adapters to Extensions, marking a significant evolution in how custom functionality is integrated. Key improvements with this change include:

  • Gradle Plugin for Extensions: A new Gradle plugin simplifies the process of developing Extensions, making setup and management easier for developers.
  • Compile-Time Discovery: Discovery of Extension internals, such as entries, now occurs at compile-time instead of runtime. This not only future-proofs Typewriter but also lays the groundwork for the upcoming marketplace, where entries in each Extension will be viewable without running the Extension.
  • Hot Reloading: Extensions can now be reloaded on-the-fly using /tw reload, enabling real-time updates without the need for a server restart.
  • Optimized Loading: Only the necessary classes are loaded from Extensions. For example, if an Extension contains thousands of entries but only one is used, Typewriter loads only that specific entry, enhancing memory and processing efficiency.
  • Extension Validators: Built-in validators now check Extensions against Typewriter’s standards, helping to ensure reliability and consistency across user-created Extensions.

New Item System

Typewriter introduces a completely new item system, which is incompatible with previously defined items. Users will need to recreate items to align with the new structure. Based on user feedback, no migrator will be provided, as the majority found it unnecessary. Please test this update on a development server before upgrading your production environment.

Important Features

  1. Skip Cinematic Segments
    A new SkipCinematicEntry gives players the option to skip sections of cinematics by pressing a configured key, offering more control over in-game cinematic experiences.

  2. UI and Web Panel Upgrades
    Improvements to the web panel and UI components provide a smoother experience. These upgrades include the ability to unselect Sound IDs, layout enhancements, compatibility improvements behind reverse proxies, and visual indicators for empty fields, all of which contribute to a more intuitive and flexible panel.

New Entries

  • Cinematic Entries: GameTimeCinematicEntry, WeatherCinematicEntry, SkipCinematicEntry, BlockCommandCinematicEntry
  • Dialogue: ActionbarDialogueEntry, SimpleMessageActionEntry
  • Entity and Activity Entries: MythicMobKillPlayerEventEntry, RemovePotionEffectActionEntry, LookAtBlockActivity, LookAtPitchYawActivity, RandomPatrolActivity, AmbientSoundActivity, ScaleData, InteractionEntity, PillagerEntity, VindicatorEntity, Llama Entity
  • Miscellaneous: WeatherAudienceEntry, FireworkActionEntry (with flight duration setting)

If you consider Typewriter to be valuable to your server, please consider Sponsoring the Project