Sueta

PaperTS

1.6.0

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

·Script
  1. 1.6.0latestPaperTS 1.6.0Jan 16, 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
    }
    76 downloads
  2. 1.5.0PaperTS 1.5.0Jan 4, 2026
    - Added runType for setting the method of running the script in package.json - Added a way to cleanup resources before script exiting
    18 downloads
  3. 1.3.0PaperTS 1.3.0Nov 7, 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
    24 downloads
  4. 1.2.0PaperTS 1.2.0Jul 25, 2025
    - Decrease JAR size, it nows downloads Node.JS Engine at runtime - Include method for setting and getting data from persistent data container
    31 downloads
  5. 1.1.3PaperTS 1.1.3Jul 25, 2025
    - Improve load and unload of modules - Improve information about registering events and commands
    41 downloads
  6. 1.1.2PaperTS 1.1.2Jul 22, 2025
    44 downloads

Similar projects

Script →