Skip to content
This repository has been archived by the owner on Feb 16, 2023. It is now read-only.
Hitesh edited this page Feb 12, 2023 · 7 revisions

Events

Usage

this code will be runable in start.js. Put it in bottom

server.events.on('event', (args) => {
  # Do something...
})

On Player Join

  • Name: playerJoin
  • Arguments: (player: Player)

On Player Leave

  • Name: playerLeft
  • Arguments: (player: Player)

Plugins

Usage

  1. Create a folder in ./leaf/plugins/${folderName}/index.js
import { Base } from "../../../src/base/BasePlugin.js";

class Example extends Base {
  constructor() {
    super({
      name: "Example",
      version: [1, 0, 0],
      srvVersion: [1, 19, 50],
    });
  }

  onEnable() {
    this.api.getLogger().info("I am enabled");
  }
}

export default Example;
  • name: string;
  • version: [number, number, number];
  • srvVersion: [number, number, number];

On Plugin Enable

  • Name: onEnable
  • Arguments: ()

On Plugin Disable

  • Name: onDisable
  • Arguments: ()

On Player Pre-Join

  • Name: onPlayerPreJoin
  • Arguments: (player: Player)

On Player Join

  • Name: onPlayerJoin
  • Arguments: (player: Player)

On Player Leave

  • Name: onPlayerLeave
  • Arguments: (player: Player)

On Player Having All Rps

  • Name: onPlayerHavingAllRps
  • Arguments: (player: Player)

On Player Refused Rps

  • Name: onPlayerRefusedRps
  • Arguments: (player: Player)

On Player Installed Rps

  • Name: onPlayerInstalledRps
  • Arguments: (player: Player)

Plugin Command

Usage

Importing the Command file, import Command from "../../../src/plugins/Command.js";

on enable function...
const cmd = new Command({
      name: "leave",
      description: "Left message",
      aliases: ["left"],
      args: {
        min: 1,
        max: 1,
      },
      arguments: [
        {
          name: "name",
          type: "wildcard_target",
          optional: false,
        },
      ],
});

cmd.run = () => {
      this.api.getLogger().info("[Command] wOW");
};

cmd.runAsPlayer = () => {
      this.api.getLogger().info("[Command] wOW");
};

cmd.execute();

Full code would be like this:

import { Base } from "../../../src/base/BasePlugin.js";
import Colors from "../../../src/api/Colors.js";
import Command from "../../../src/plugins/Command.js";

class Welcomer extends Base {
  constructor() {
    super({
      name: "Welcomer",
      version: [1, 0, 0],
      srvVersion: [1, 19, 50],
    });
  }

  onEnable() {
    this.api.getLogger().info("The plugin had been enabled");

    const cmd = new Command({
      name: "leave",
      description: "Left message",
      aliases: ["left"],
      args: {
        min: 1,
        max: 1,
      },
      arguments: [
        {
          name: "name",
          type: "wildcard_target",
          optional: false,
        },
      ],
    });

    cmd.run = () => {
      this.api.getLogger().info("[Command] wOW");
    };

    cmd.runAsPlayer = () => {
      this.api.getLogger().info("[Command] wOW");
    };

    cmd.execute();
  }

  /**
   *
   * @param {import('../../../src/api/Player.js').default} player
   */
  onPlayerJoin(player) {
    this.api.getServer().broadcast(Colors.yellow(`${player.username} joined`));
  }

  /**
   *
   * @param {import('../../../src/api/Player.js').default} player
   */
  onPlayerLeave(player) {
    this.api.getServer().broadcast(Colors.yellow(`${player.username} left`));
  }
}

export default Welcomer;

name: string;
type: "int" | "float" | "value" | "wildcard_int" | "wildcard_target" | "operator" | "command_operator" | "target" | "file_path" | "integer_range" | "equipment_slots" | "string" | "block_position" | "position" | "message" | "raw_text" | "json" | "block_states" | "command";
optional?: boolean;

Plugin Command Run (Console)

function(args: string[]) => void

Plugin Command Run As Player

function(args: string[]) => void

  1. getServer: Server
  2. getLogger: Logger