Skip to content

Bedrock-OSS/stylish

Repository files navigation

stylish

npm version

Stylish is a decorator library aimed at simplifying development for the Minecraft Bedrock Script API. It focuses on automatic registration of custom components and convenience helpers for method binding.

Features

  • @ItemComponent – automatically registers a custom item component.
  • @BlockComponent – automatically registers a custom block component.
  • @BindThis – binds a method to its instance when accessed.
  • @OnStartup – runs decorated methods when the pack starts.
  • @OnWorldLoad – runs decorated methods when the world is loaded.
  • @OnBeforeItemUse – runs decorated methods before item use (typed ItemUseBeforeEvent).
  • @RegisterEvents – auto-registers instance event methods (like @OnStartup) on construction.

Installation

  1. Install the package:
npm install @bedrock-oss/stylish
  1. Enable decorators in your tsconfig.json:
{
  "compilerOptions": {
    "experimentalDecorators": true
  }
}

Usage

Register a custom item component:

ExampleComponent.ts:

import { ItemComponentUseEvent } from '@minecraft/server';
import { ItemComponent, BindThis } from '@bedrock-oss/stylish';

@ItemComponent
class ExampleComponent {
  static componentId = 'example:component';
  message = 'Hello world!';

  @BindThis
  onUse(event: ItemComponentUseEvent) {
    event.source.sendMessage(this.message);
  }
}

main.ts:

import { init } from '@bedrock-oss/stylish';
export * from './ExampleComponent';

init(); // Registers all decorated components and wires events
// Alternatively, you can register your own event handler and call registerAllComponents()

Important

When splitting components into multiple files, remember to import/export the file containing the component class.

Documentation

See the docs folder for details on decorators:

Contributing

Feel free to raise an issue or submit a pull request if you have any improvements or features to suggest.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •