This repo contains the core library for CustomRealms, the JavaScript runtime for Minecraft server plugins.
npm install --save @customrealms/coreimport{ServerEvents}from'@customrealms/core';// Send a welcome message when a player joins the serverServerEvents.register(org.bukkit.event.player.PlayerJoinEvent,(event)=>{constplayer=event.getPlayer();event.setJoinMessage(`${player.getName()} joined the server!`);});import{ServerCommands}from'@customrealms/core';// Strike lightning where the player is lookingServerCommands.register('/strike',(player)=>{constblock=player.getTargetBlockExact(100);if(!block)return;constlocation=block.getLocation();location.getWorld()?.strikeLightning(location);});import{Menus}from'@customrealms/core';constresult=awaitMenus.create<string>('Difficulty').button(11,easyItem,'easy').button(13,normalItem,'normal').button(15,hardItem,'hard').open(player);switch(result){case'easy':
player.sendMessage('Easy mode selected.');break;case'normal':
player.sendMessage('Normal mode selected.');break;case'hard':
player.sendMessage('Hard mode selected.');break;casenull:
player.sendMessage('Maybe next time.');}By default, without this library, the CustomRealms JavaScript runtime has access to all of the Java and Bukkit classes and functions.
This library serves several important purposes:
- Provides TypeScript type declarations for the native Java / Bukkit types.
- Implements a clean abstraction layer to make certain common tasks easier (such as commands, events, etc.)
- Adds polyfills to support modern ES6+ features.
We need your help to implement new features, fix bugs, and optimize the entire system. If you want to help, please join our Discord and/or check out the Issues tab.