▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/PaperTS
PaperTS

PaperTS

PaperTS is a Paper Minecraft plugin that enables you to write Minecraft server plugins in TypeScript.

102
1

PaperTS 1.6.0

release16 января 2026 г.

:rocket: PaperTS 1.6.0 Released

In this new release we included the Java Bridge API, a new interface that bridges the gap between TypeScript and the underlying Java Virtual Machine. It was a contribution from @sirio_03 .

:tools: Setup & Type Definitions To use the Java Bridge with full TypeScript support, create a javaBridge.ts file in your project and add the following type declarations:

declare const Java: {
   /**
    * Get an enum value by class name and value name.
    */
   enumValue<T = unknown>(className: string, valueName: string): T;

   /**
    * Get all values of an enum.
    */
   enumValues<T = unknown>(className: string): T[];

   /**
    * Create a new instance of a Java class.
    */
   newInstance<T = unknown>(className: string, ...args: unknown[]): T;

   /**
    * Call a static method on a Java class.
    */
   callStatic<T = unknown>(
           className: string,
           methodName: string,
           ...args: unknown[]
   ): T;

   /**
    * Get a static field value from a Java class.
    */
   getStatic<T = unknown>(className: string, fieldName: string): T;

   /**
    * Check if a Java class exists.
    */
   classExists(className: string): boolean;
};

:bulb: Usage Examples

1. Managing Enums Access any Bukkit enum without needing a wrapper.

const gameModes = Java.enumValues("org.bukkit.GameMode");
player.sendMessage(`Available modes: ${gameModes.join(", ")}`);

2. Instantiating Java Classes Perfect for creating objects like Location.

// Create a new Location
const world = Java.callStatic("org.bukkit.Bukkit", "getWorld", "world");
const location = Java.newInstance("org.bukkit.Location", world, 100, 64, 100);
player.teleport(location);

3. Static Methods & Fields Interact with the Server constants directly.

// Call a static method
Java.callStatic("org.bukkit.Bukkit", "broadcastMessage", "Hello from PaperTS!");

const onlinePlayer: any[] = Java.callStatic(
        "org.bukkit.Bukkit",
        "getOnlinePlayers"
);
onlinePlayer.forEach((player) => player.sendMessage("Hi everyone"));

// Get a static constant
const legacyPrefix = Java.getStatic("org.bukkit.Material", "LEGACY_PREFIX");;
player.sendMessage(legacyPrefix);

4. Conditional Integration Check if a plugin (like Vault or WorldEdit) is installed before attempting to use it.

// Check if a class exists before using it
if (Java.classExists("com.example.CustomPlugin")) {
   const customValue = Java.callStatic("com.example.CustomPlugin", "getValue");
   player.sendMessage(`Custom plugin value: ${customValue}`);
} else {
   player.sendMessage("Custom plugin not found");
}

// Useful for optional integrations
const hasVault = Java.classExists("net.milkbowl.vault.economy.Economy");
if (hasVault) {
   // Initialize Vault integration
}

PaperTS 1.5.0

release5 января 2026 г.
  • Added runType for setting the method of running the script in package.json
  • Added a way to cleanup resources before script exiting

PaperTS 1.3.0

release7 ноября 2025 г.
  • Update Javet to 5.0.1 (Node.JS is now at v24.10.0)
  • Added a method in the PaperTS globals to create a callable from a JS function
  • Added a method to get the the JavaPlugin

PaperTS 1.2.0

release25 июля 2025 г.
  • Decrease JAR size, it nows downloads Node.JS Engine at runtime
  • Include method for setting and getting data from persistent data container

PaperTS 1.1.3

release25 июля 2025 г.
  • Improve load and unload of modules
  • Improve information about registering events and commands

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

Minecraft: Java Edition

1.21.x1.20.x

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

Сервер

Детали

Лицензия:MIT
Опубликован:8 месяцев назад
Обновлён:2 месяца назад
Главная