Git Product home page Git Product logo

iosync's Introduction

IOSync

Logo

This Bukkit plugin synchronizes a player's data across multiple Minecraft server instances. This is especially useful in a BungeeCord setting, where players want a continuous experience moving between multiple server instances.

This is done by copying a player's data file (world/playerdata/UUID.dat) to a common directory when they disconnect. On reconnection, on the same server or another, the file is copied in place before the server's processes try to read from it. Effectively, the player's data travels with them.

Multiple groups of synchronization on the same network can be done; for example, all survival servers vs all minigame servers. This is possibly by defining different save directories in the config. All of the servers using the same directory will be put in a common pool to share that data.

One notable exception comes from player positions, which must NOT be shared across servers. As such, these are stored separately in data files.

Setup guide

  1. Download the plugin and place it in the plugins/ directory.
  2. Start and stop the server to generate the configuration file.
  3. Edit config.yml to set storage-path, which is a directory path. Servers with the same storage-path value will share their player data. Make sure that the directory exists and is writable!
  4. Start your server. That's it, you're done!

Current limitations

  • Respawn anchors don't work.
  • All game servers must be in the same file system (multiple hardware or separate Docker instances not supported).
  • On first join after installation, players might be sent to spawn. This can happen only once per player.

Configuration

storage-path: The directory to use to store the players data. Servers with the same storage-path value will share their player data. If left empty, no synchronisation will happen. This can be useful to have the /switch method available.

Commands

/switch: Used by authorized players to change servers. This has to be used instead of BungeeCord's /server to ensure that the player's data is properly saved before the disconnection registers.

Permissions

iosync.switch: Access to the server switch command.

iosync's People

Contributors

doctacosa avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.