• Welcome to MCME!

    Minecraft Middle Earth is a Minecraft community that recreates the world described by JRR Tolkien and his writings. Everyone can participate in organized events in which we collaborate to create major landmarks, terrain, caves, castles, towns, farms and more.

    To get started, visit The New Player Guide

    Joining the server

    Joining the server can be done straight away, but you will have to pass the New Player Quiz. Use the The New Player Guide to get acquainted with our community.

    IP: build.mcmiddleearth.com

Resource icon

MCME-Connect plugin

MCME-Connect
Plugin Manual

The MCME-Connect plugin helps linking the mc servers in the MCME BungeeCord network. The goal is to give players the feeling of just one server with several worlds.

MCME-Connect consists of a Spigot plugin and a BungeeCord plugin. Both are compiled in one single .jar file which should be put in /plugins folder on the BungeeCord proxy and on all Spigot server in the network.


Command Interception
MCME-Connect interceps several commands to simulate a single server experience. Many features require that server names configured in BungeeCord's config.yml are equal to the world names on the spigot server.
All Cross server teleportation can be disabled for a server in the configuration (see below). This can be overrideen for specific players by giving them permission "mcmeconnect.ignoreDisabledMVTP".

/tp [player] <toPlayer>
If the teleportation requires a server change the command will be intercepted (not send to the spigot server) and handled by MCME-Connect instead.
Required Permissions:
Command Sender: mcmeconnect.tp (with optional argument [player] also mcmeconnect.tp.other)​
Teleported Player: mcmeconnect.world.<targetWorld>​

/tphere <player>
If the teleportation requires a server change the command will be intercepted (not send to the spigot server) and handled by MCME-Connect instead.
Required Permissions:
Command Sender: mcmeconnect.tphere​
Teleported Player: mcmeconnect.world.<targetWorld>​

/theme ...
If the command sender is not at the Themed-build server (key "themedbuildWorld" in config.yml) the command will be intercepted and the player connected to the server instead. Subcommands like "toplot" and "warp" are not handled. The player gets notified that he has to execute the command again (command might be executed by plugin in the future).
Required Permission: mcmeconnect.world.<themedbuildWorld>​

/mvtp <world> (alias /world <world>)
If the command sender is not at the server <world> the command will be intercepted and the player connected to the server instead.
Required Permission: mcmeconnect.world.<world>​

/warp <place>
If <place> is at another server than the command sender (and the sender has permission to use that warp) the command will be ntercepted and handled by MCME-Connect instead. This feature requires access to the MyWarp database (MySQL required) which must also be used on all servers in the network. Configuration in config.yml see below. As the MyWarp database contains world UUIDs only and no world names the plugin requires a mapping for that. Whenever a player enters a world in the Bungee network a mapping is stored in file world.uuid by MCME-connect automatically. So using warps of a world requires that any player has connected to that world before.

Join / Quit Handling with PremiumVanish support
Join/Quit Messages
When a player joins or leaves the Bungee network MCME-Connect sends join/quit messages to players on all servers and disables the server configured join/quit messages.

Vanished Players
For vanished players using PremiumVanish join/quit messages are send to players with permission "pv.see". Players with permission "pv.joinvanished" always join in vanish state. UUIDs of currently vanished players are stored in file "vanished.uid".

Fake Join/Quit Messages
When a player un-/vanishs a fake join/quit message is send to players on all servers. Players with permission "pv.see" get a message about the un-/vanishing instead.

Legacy Player Support
When a player first joins the Bungee network he will connect to the new player world with the quiz. MCME-Connect can redirect players who finished the quiz before implementation of the Bungee network to another world. This requires file legacyPlayer.uid in the data folder of the plugin at the Bungee proxy. This file must contain one uuid per line in forma "fedf6ee0-8573-4588-89cf-5951e2596795" (This file is created by NewPlayerQuiz plugin and named finishedPlayerList.uid there). Also requires some keys in config.yml (see below).

Server Watchdog
MCME-Connect periodically pings all servers configured in the BungeeCord config.yml. if a server is not responding a warning is send to all player with permission "mcmeconnect.watchdog".

Server Statistics Synchronisation
MCME-Connect synchronises all vanilla statistics on all servers in the Bungee network. To achieve this all general statistics are store in a database (configuration see below). Block, item and entity related statistics are stored in the database instantly when they are increased. All statistics are loaded from this database when a player joins a server. Like this each player takes his statistics with him from server to server. Other servers have outdated statistics. But there is no way to access these statistics using the Spigot/Bukkit API so it should be no problem for most plugins. Even if a plugin has some way to access statistics of a offline player they will not be too outdated, as soon the player joins the server again they are updated.

Spigot Plugin API
MCME-Connect supplies some useful methods for Spigot plugins:
  • teleportPlayer(Player player, String server, String world, Location location)
    ddConnects player player to server server and after he arrived to world world at location location.
  • sendMessage(Player sender, String server, String recipient, String message, int delay)
    Uses player sender to send message message to the player with the name recipient at server server after delay delay in miliseconds. Player sender is technically required to get the message from the server to the bungee proxy. Player sender doesn't see the message in his chat, and player recipient doesn't see that it comes from sender. The delay is useful to allow a player arrive at another server before sending the message.
  • sendTitle(Player sender, String server, String recipient, String title, String subtitle, int intro, int show, int extro, int delay)
    Uses player sender to send a title to the player recipient on server server. See description of sendMessage above for more information. title, subtile, intro, show and extro are same as in Spigot/Bukkit API.

Configuration
Configurations for the Spigot and Bungee plugins are in one common file:
config.yml:
# First Part: Bungee proxy plugin configuration

# Redirect players whose UUIDs are in legacyPlayer.uid.
# When one of these players joins the bungee network and is send to server configured as "from"
# the MCME-Connect plugin will send him to server configures as "to"
legacyRedirect:
    enabled: true
    from: newplayer
    to: world

# Players on servers in this list may not teleport by command
# except they have permission mcmeconnect.ignoreDisabledMVTP
disableMVTP:
- newPlayer

# Delay to wait for player to finish server chaning (no longer in use?)
connectDelay: 50

# PremiumVanish plugin support. If set to "false" vanished players will be treated
# same as unvanished player (e.g. sending join/quit messages)
premiumVanish: true

# Handling of cross server warping. Configuration of myWarp database
myWarp:
  enabled: true
  user: mywarp
  password: mywarp
  dbName: mywarp
  ip: localhost
  port: 3306

# Second Part: Spigot server plugin configuration

# Server with Themed-builds. Players who do /theme command will be send there.
themedbuildWorld: themedbuilds

# Synchronisation of vanilla Statistics on this server.
syncStatistic: true

# Name of Discord channel to send join/quit messages
discordChannel: Global

# Configuration of database for statistic synchronisation
database:
  dbName: development
  user: development
  password: development
  ip: localhost
  port: 3306
  • Like
Reactions: Smaug_Niphredil
Author
Eriol_Eandur
Views
3,641
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from Eriol_Eandur

Top