Hello i'm looking to sell ownership (source + resell rights) to my plugin xSync.
If you are interested add me on Discord FlowZz#3904.
(I will not consider offers below 100€)
Here's a brief description of the plugin and what it can do:
xSync
This is a plugin designed for multi-server survival networks. It uses database, cache and a pub/sub system to sync data across multiple server.
(MongoDB/MySQL and Redis)
What Data can be synced?
Zones are section of the map that every server is responsible to handle. Whenever a player walk from a zone to another it will be sended to the corresponding server. This allows for virtually unlimited player counts by dividing the map into multiple servers.
Are Zones configurable?
Yes, you can configure the zone corners and specify which world will they handle. You can also configure the worldborder feature to display within the zone limits. (Worldborder feature needs zone to be perfect square)
Is it safe to sync data?
It works by saving everthing into a database, when a player logout or switches server the data is saved on the disk and after the save is complete the server will notify all others server that the player can now be loaded. That makes the data saving very secure and almost impossible to lose data.
How do I hook with other plugins?
xSync implements a complete API that allows you to fully use its potential.
Where can i find some examples on how to use the API?
You can start by taking a look at xChat repository.
Ownership?
Test Server:
Add me on discord FlowZz#3904 I will provide you one.
If you are interested add me on Discord FlowZz#3904.
(I will not consider offers below 100€)
Here's a brief description of the plugin and what it can do:
xSync
This is a plugin designed for multi-server survival networks. It uses database, cache and a pub/sub system to sync data across multiple server.
(MongoDB/MySQL and Redis)
What Data can be synced?
- Inventory
- Enderchest
- Health
- Food
- Effects
- Experience and Levels
- Everything that you can save on a database
Zones are section of the map that every server is responsible to handle. Whenever a player walk from a zone to another it will be sended to the corresponding server. This allows for virtually unlimited player counts by dividing the map into multiple servers.
Are Zones configurable?
Yes, you can configure the zone corners and specify which world will they handle. You can also configure the worldborder feature to display within the zone limits. (Worldborder feature needs zone to be perfect square)
Code:
settings:
server-id: "over-2"
worldborder: true
database:
#MongoDB or MySQL
type: "MySQL"
hostname: "127.0.0.1"
database: "xsync"
username: "root"
password: "password"
#3306 MySQL
#27017 MongoDB
port: 3306
redis:
hostname: "127.0.0.1"
password: "password"
port: 6379
#Each world can have multiple zones (Each server must have same world names)
#Each zone must be squared to allow worldborder
zones:
north-overworld:
server-id: "over-1"
world: "world"
X-Min: -512
Z-Min: -512
X-Max: 512
Z-Max: 0
south-overworld:
server-id: "over-2"
world: "world"
X-Min: -512
Z-Min: 0
X-Max: 512
Z-Max: 512
nether:
server-id: "nether-1"
world: "world_nether"
X-Min: -512
Z-Min: -512
X-Max: 512
Z-Max: 512
end:
server-id: "end-1"
world: "world_the_end"
X-Min: -512
Z-Min: -512
X-Max: 512
Z-Max: 512
Is it safe to sync data?
It works by saving everthing into a database, when a player logout or switches server the data is saved on the disk and after the save is complete the server will notify all others server that the player can now be loaded. That makes the data saving very secure and almost impossible to lose data.
How do I hook with other plugins?
xSync implements a complete API that allows you to fully use its potential.
- There are events such as PlayerPostSaveEvent and PlayerPostLoadEvent that can be used to implement your custom plugin saving logic.
- There are API methods that allows you to define your custom Message(Packet) to communicate to all the connected servers.
Code:
public interface SyncAPI {
/**
* Sends the message to all connected subscribers.
* You can choose which server will receive the message
* by specifing the receiver-id when you create the message.
* If you want all servers to read the message you can set the
* receiver-id to "Broadcast".
*
* @param message the message that extends AbstractMessage
*/
void sendMessage(AbstractMessage... message);
/**
* Registers the message withing the internal MessageRegistry.
*
* @param clazz the message class.
* @param <T> the message type.
* @return the generated id for the packet.
*/
<T extends AbstractMessage> int registerMessage(Class<T> clazz);
/**
* Registers the message handler using a functional
* interface implementation as handler.
*
* @param clazz the message class.
* @param messageHandler the functional interface.
* @param <T> the message type.
*/
<T extends AbstractMessage> void registerMessageHandler(Class<T> clazz, IMessageHandler<T> messageHandler);
/**
* Return the server-id of the current server
*
* @return the server-id.
*/
String getCurrentServerId();
/**
* Return the server-id of the server that the
* player is connected to else if the player is
* not connected it will return "nil"
*
* @param uuid the user's uuid.
* @return player's server-id if online else "nil"
*/
String getPlayerServerId(UUID uuid);
/**
* Returns true if the player is online on any of the linked servers.
*
* @param uuid the user's uuid.
* @return true if the player is online in any of the linked servers.
*/
boolean isOnline(UUID uuid);
/**
* Returns if the player is currently loading data.
*
* @param uuid the user's uuid.
* @return true if the player is still load its data.
*/
boolean isLoadingData(UUID uuid);
/**
* Returns the API implementation.
*
* @return API implementation.
*/
static SyncAPI getInstance() {
return DefaultImplementation.getImplementation();
}
}
Where can i find some examples on how to use the API?
You can start by taking a look at xChat repository.
Ownership?

Test Server:
Add me on discord FlowZz#3904 I will provide you one.
- Type
- Offering