Skip to content
This repository has been archived by the owner on Sep 28, 2024. It is now read-only.
/ mirlo Public archive

A simple approach to plugin messaging

License

Notifications You must be signed in to change notification settings

myth-MC/mirlo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

mirlo 🐦‍⬛

Latest release Pull requests Issues License
A simple approach to plugin messaging

Quick navigation
  1. Information
  2. Installation
  3. Usage
  4. API
  5. Credits

📚 Information

mirlo 🐦‍⬛ provides server owners with a simple way of implementing and handling plugin messaging between a proxy and its backends (check Usage).

Warning

mirlo is not ready for production use yet. The project is still missing an important part of its core functions (right now its sole purpose is sending plugin messages to a proxy). You can report any misbehaviours or share any feedback by creating an issue.

Compatibility chart

Compatible? Version
Velocity 3.3.0
BungeeCord
Paper 1.13+
PurpurMC 1.13+
Spigot 1.13+
Bukkit 1.13+
Minestom Latest
Folia

Versions prior to 1.13 might work but you won't receive any support.

📥 Installation

  1. Download the mirlo jar file for your platform. You can find the latest version on our releases page.
  2. Add the mirlo jar file to your server's plugin folder. Make sure to delete any older versions of mirlo.
  3. Fully restart your server. Type /stop and start the server again instead of using /reload.

Repeat the steps for every backend of your network.

🖊️ Usage

When you run mirlo for the very first time it will automatically generate three different configurable files that can be adjusted depending on your server's needs:

  • settings.yml contains general settings
  • channels.yml contains every channel to listen for
  • variables.yml contains every variable

Every file has one or more examples with hints.

Events

Events listen for specific actions that happen in the game. Right now you can use:

  • PLAYER_KILLS_PLAYER (player, targetPlayer): triggered whenever a player kills another player.
  • PLAYER_KILLS_CREATURE (player): triggered whenever a player kills a mob.
  • DEATH (targetPlayer): triggered whenever a player dies.
  • GAMEMODE (targetPlayer, gamemode): triggered whenever a player's game mode is changed.
  • LOCALE (targetPlayer, locale): triggered whenever a player's language settings are changed.
  • XP_CHANGE (targetPlayer, xp, totalXp): triggered whenever a player's experience changes naturally.
  • FLIGHT (targetPlayer, status): triggered whenever a player toggles their flying state.

Values in parentheses are placeholders.

Variables

Variables are temporary fields which can be altered when an event is triggered. Valid types are:

  • count: a whole number. Can be positive or negative.
  • boolean: true/false.

Channels

Channels are the mean of communication where information will be exchanged with other backend servers or the proxy.

Placeholders

You can use placeholders when sending or receiving a plugin message from a specific channel. Valid placeholders are:

  • Pre-defined variables (variables.yml)
  • player
  • targetPlayer

⚙️ API

mirlo exposes a simple API via the Mirlo.get() method.

You can check our guide on using mirlo-api.

📜 Credits

  • Events API and config is taken from Sonar.