XServer![]()
I have completely stopped updating XServer here on BukkitDev. Please go to spigotmc.org for updates.
Plugin at spigotmc -> http://www.spigotmc.org/resources/xserver.270/
Snapshot 2.0.1 released.
Renaming packages from "com.mickare..." to "de.mickare..."
Your current plugins may not work with the new Version! Sry guys!
I won't upload any updates for XServer to Bukkit Dev until they change their guidelines regarding project-helper-plugins for e.g. BungeeCord (a minecraft proxy).
Warning! Bukkit Dev Team warns of external download sites, but I'll still give a link here to the Maven Repository.
Current versions can be downloaded from the Maven Repository on your own risk.
http://repo.rennschnitzel.de:8081/nexus/content/repositories/rs-public/de/mickare/xserver/
Description
XServer is a helper for other plugins. It closes the communication gap between servers.
With this plugin it's simple to send byte arrays to other servers and receive them.
It's usefull if you use plugins on multiple servers that you want to communicate via sockets.
You, the developer, no more have to think about creating sockets and keeping the connection open.
XServer handles all complicated stuff and offers a nice solution to send messages.
It automatically queues outgoing messages and handles incoming messages with an own EventHandler.
Your servers are protected via passwords and are managed via MySql.
There are currently 2 Versions of XServer: one for Bukkit and one for BungeeCord.
XServer has a Core-Module and a API, so these are released in the future, so not only on Bukkit and on BungeeCord can be run XServer.
Setup - Preparation / Configuration
On your MySql-Server create a new Table with:
CREATE TABLE IF NOT EXISTS `xserver` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `NAME` varchar(64) COLLATE utf8_bin NOT NULL, `ADRESS` varchar(128) COLLATE utf8_bin NOT NULL, `PW` varchar(20) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `ID` (`ID`), UNIQUE KEY `ADRESS` (`ADRESS`), KEY `ID_2` (`ID`) ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Then add your servers to the table.
"NAME" is your servers name, this name identifies your server and has to be unique!
Remember "ADRESS" is like "host: port" (e.g. "localhost:19999", or "127.0.0.1:19999").
PW is the password you want, that other servers need to connect to this server.
Setup - Bukkit
-> Here starts the config code section, but dev.bukkit.org is broken. So bear with me if there is no line breaking, etc.
<<code>>
useMotdForServername: false
servername: theNameYouCalledThisServer
mysql:
User: myUser
Pass: myPassword
Data: myDatabase
Host: myHost
<</code>>
-> Here stops the config code section.
Setup - BungeeCord
The setup on a BungeeCord Proxy Server is the same as the Bukkit Server.
How to use XServer
See: Your First Plugin]]
Commands
The commands are currently only available in the Bukkit Version.
/xserver <subcommand>
The subcommands are:
Commands permission is "xserver".
Speed
Trying to force XServer to its knees, i fired on one of 43 Bukkit and 2 BungeeCord Servers running all XServer, the stresstest command with the factor 1000 and still got an average response time of 80-90ms. (The servers are distributed on 4 Root-Servers)
These are 45000 Messages of Strings with a lenght of 32, that are sended and then returned.
Meaning an Incoming and Outgoing traffic of > 64MBit/s on this particular Bukkit server.
Changelog
Snapshot 2.0.1
Version 2.0.0
Version 1.0.3
Version 1.0.1
Maven
http://repo.rennschnitzel.de:8081/nexus/content/repositories/rs-public/
Licence
[spoiler]The MIT License (MIT)
Copyright (c) 2013 mickare
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
[/spoiler]