CommandSync 2.5.3

Unofficial update

  1. glavrak
    Tested Minecraft Versions:
    • 1.12
    • 1.13
    Source Code:
    https://github.com/Mr-Krab/CommandSync
    Contributors:
    YoFuzzy3
    Languages Supported:
    RU_ru, EN_us
    I just got tired of waiting for the official support of PaperSpigot core and I decided to do it myself.
    After the changes I made, I decided to put it in open access.
    Original plugin ---> Link.

    Please tell me on which versions you have successfully launched this plugin.

    Installation
    1. Read this entire post before installing.
    2. Download the jar file.
    3. Stop your BungeeCord server, if it isn't already.
    4. Put the CommandSync.jar file in your BungeeCord's plugin folder.
    5. Start your BungeeCord server.
    6. Stop your BungeeCord server.
    7. Set the pass in the <BungeeCord>/plugins/CommandSync/config.txt.
    8. Start your BungeeCord server.
    9. Stop your Minecraft servers, if they aren't already.
    10. Put the CommandSync.jar file in your plugin/mods folder on your Minecraft servers. Magically, they don't need to be under the same BungeeCord instance.
    11. Start your Minecraft servers.
    12. Stop your Minecraft servers.
    13. In each <BukkitServer>/plugins/CommandSync/config.txt or <SpongeServer>/config/commandsync/config.txt put a UNIQUE name for identification. Example: survival, creative or whatever. Also put the pass that you set in CommandSyncServer's config.txt.
    14. Start your Minecraft servers.
    15. Woo, you're done!
    Usage
    Here are some example uses.
    1. /sync console all broadcast Hi there people! would make the console on all servers run the command broadcast Hi there people!
    2. /sync console survival broadcast Hey there! would make the console on the server identified as survival run the command broadcast Hey there!
    3. /sync console bungee alert Wassup! would make the console of the BungeeCord server run the command alert Wassup!
    4. /sync player all me Hey would make every online player under the BungeeCord instance the CommandSyncServer is running off run the command /me Hey
    5. /sync player md_5 give YoFuzzy3 cookie 1337 would make the player md_5 run the command /give YoFuzzy3 cookie 1337
    (Of course when you make a player perform a command they must have the permission to use it)

    Commands (Only Minecraft Servers)
    • /sync - view the help menu.
    • /sync console - Send a command to run on all Minecraft servers, a single Minecraft server, or the BungeeCord server.
    • /sync player - Send a command to run for all players, or a single player.
    Permissions
    • sync.use - Access to the command /sync. Default: OP.
    Configuration
    CommandSyncServer:
    ip=localhost
    port=9190
    heartbeat=1000
    pass=UNSET
    debug=false
    removedata=false
    lang=en_US
    • ip - The IP that the CommandSyncServer tries to bind to.
    • port - The port that the CommandSyncServer tries to bind to.
    • heartbeat - In milliseconds, how often should the CommandSyncServer process data.
    • pass - A password that all clients must authorize through. (UNSET means the plugin will not operate.)
    • debug - If true all debug will be saved to a log.txt file.
    • removedata - If true, will delete the file data.txt.
    • lang - Select the language used by the plugin. You can create your own language file based on the available ones.
    CommandSyncClient:
    ip=localhost
    port=9190
    heartbeat=1000
    name=UNSET
    pass=UNSET
    debug=false
    removedata=false
    lang=en_US
    • ip - The IP that the CommandSyncClient tries to connect to.
    • port - The port that the CommandSyncClient tries to connect to.
    • heartbeat - In milliseconds, how often should the CommandSyncClient process data.
    • name - A UNIQUE identifier for the CommandSyncClient, used for the /sync console single command. (UNSET means the plugin will not operate.)
    • pass - A password that the client uses to authorize with the server. (UNSET means the plugin will not operate.)
    • debug - If true all debug will be saved to a log.txt file.
    • removedata - If true, will delete the file data.txt.
    • lang - Select the language used by the plugin. You can create your own language file based on the available ones.
    Awesome Features
    • This plugin now uses Java networking, making it much more reliable than the Plugin Messaging System. This means that silly bugs no longer exist. It also means you can synchronize commands across Minecraft servers under different BungeeCord server instances!
    • If you try sync a command and the CommandSyncServer is down, it will be kept in a queue for when it comes back online!
    • If a Minecraft server is down the CommandSyncServer will wait until it comes back online before it tells it to run a command!
    • If you try sync a command for a player that is offline, the command will not be attempted to run until they come back online!
    • All command queues are saved to a file on shutdown, meaning you can have downtimes across many servers but every command will be stored and run as soon as possible!
    • Authorization for secure cross-network links!
    • Debug file logging!
    Internals
    Here's my very bad diagram of how it works made in Paint, you're welcome to make me a better one. http://imgur.com/llIbkia

    If that diagram made no sense to you here it is in most basic text form.
    • /sync console all /sync -> Single CSC -> CSS -> All CSCs -> MC Console -> Run
    • /sync console <server> /sync -> Single CSC -> CSS -> Defined CSC -> MC Console -> Run
    • /sync console bungee /sync -> Single CSC -> CSS -> Bungee Console -> Run
    • /sync player all /sync -> Single CSC -> CSS -> All Players -> Run
    • /sync player <name> /sync -> Single CSC -> CSC -> Defined Player -> Run
    Because of how it all works data has to be saved. So here's that explained.

    CommandSyncClient (CSC) saves:
    • All the string commands that have been sent. These are never cleared.
    • An int value representing where the CSC is up to in sending commands to the CSS. This is not cleared.
      • This allows the CSC to queue up commands if the CSS goes down.
    CommandSyncServer (CSS) saves:
    • All the string commands that have been received. These are never cleared.
    • An int value for every CSC representing where it is up to in sending commands to that CSC. These are never cleared.
      • This allows the CSS to queue up commands so when a CSC goes down commands will be run when it comes back online, or when a new CSC is added to the setup the stored commands can be run for it.
    • All the commands that have been queued up for offline players. These are cleared after being run.
      • These are run when the player comes online.
    Deleting any piece of data (excluding the queued commands for offline players) will cause the CSS and the CSCs to go out of sync (wow such pun) potentially causing commands to be run duplicate times.

    If the CSS or a CSC crashes and prevents its data from saving then the same effect as described above may occur.

    If you are confident that all commands have been processed successfully and would like to reset the saves then you must:
    1. Shut down the Bungee server running CSS and all MC servers running CSC.
    2. Delete all the data.txt files located at:
      1. Bungee/plugins/CommandSync/data.txt
      2. Bukkit Server/plugins/CommandSync/data.txt
      3. Sponge Server/config/CommandSync/data.txt
    3. Start up all the servers.
    Changelog

    Version 2.5 ►
    Now one single file!
    The id of the plugin on the Sponge API is changed.
    Fixed incorrect permissions in the Sponge API version.
    Fixed a small localization error on the Bukkit API.
    In language files, the symbol § is replaced by &.
    The SelectLocalization.yml file in the Bukkit API version was deleted. Now the parameter for changing the language in the main config.
    Now localization files are available on the Bungee and Sponge API. ◄

    Version 2.4 + Sponge 0.9 - Creation of commands for the server on Sponge API is completed.

    Version 2.4 + Sponge 0.5.9 - Added config option to remove data.txt. Added localization option for Bukkit version.

    Version Bukkit 2.3-Fix + Sponge 0.5 - Fix errors on PaperSpigot servers. Added support Sponge servers(Not full. I have not yet been able to make the plugin commands on this core.)


    ========== Old ==========

    Version 2.3 - Added support for spaces in the /sync command. Added version to internal checking. Fix null password bug.

    Version 2.2 - Fix config file generation.

    Version 2.1 - The config.txt will be updated on startup with some new options for auth and debug file logging.

    Version 2.0b - Complete rewrite! Now uses Java networking making it a lot more flexible, reliable and secure.

    Version 1.0 - Initial release. Not feature complete.
    tomikcz987 likes this.

Recent Updates

  1. Update 2.5.3
  2. 2.5
  3. Sponge 0.9 + Bungee/Bukkit 2.4

Recent Reviews

  1. Olzie-12
    Olzie-12
    5/5,
    Version: 2.5.3
    Meh, seen some problems with the plugin. With the server being on for a very long time and you do loads of sync commands. Then you reboot one of your servers. It loaded all the plugins but then does not load commandsync it just says Enabled commandsync. To fix this is you have to reboot the bungee then it fixes it. Please fix this!! Thanks
    1. glavrak
      Author's Response
      What core are you using? Accidentally not TacoSpigot? Write in the discussion.
      During testing, I had no such problem. Checked on a bunch of these servers - WaterFall 1.14(proxy), Spigot 1.13.2, SpongeForge 1.12.2.
  2. omermarvel
    omermarvel
    5/5,
    Version: 2.5
    You are mega mega hero marvelous man i love you i very very love your plugin thank you for all and can u add discord server for your plugin?
    1. glavrak
      Author's Response
      Thank you. Maybe I will make a Discord server, but this is not accurate.
  3. Olzie-12
    Olzie-12
    5/5,
    Version: 2.5
    I have changed my star rating, because you helped me on how to sync it on different servers. Best plugin better than the old version, the main bit i like about the newest version is that you can remove the data
    1. glavrak
      Author's Response
      Thanks for the feedback.
  4. Tinkot
    Tinkot
    5/5,
    Version: 2.5
    good job merging client and server into the same jar :) works great
    -----------------------------------------------------------------------------------------------
    I saw some users needed to hide the messages so i compiled a version which hides input/ran/received/sent. https://www.mediafire.com/file/a4rx7udmf55c1kn/SyncServer_Tinkot_messagehidePatch.jar/file

    ps: let me know if you want me to delete this review, Hope the feature will be added correctly in the official release! :)
    1. glavrak
      Author's Response
      Thanks for the feedback. The plugin is in free distribution and you can modify and upload your own version at any time.
  5. KitsuneSakul
    KitsuneSakul
    5/5,
    Version: 2.5
    Awesome plugin for everyone who owns Bungee server!
    Pretty simple installation and works exactly like it should.
    1. glavrak
      Author's Response
      Thanks for your feedback.
  6. gerber11
    gerber11
    5/5,
    Version: 2.5
    This does exactly what I need. I can not find a SINGLE plugin out on Spigot that does this. I personally thought this plugin was now abandoned but I found the new resource in the old CommandSync discussion.

    Now I can give a new staff member their rank right away on all my servers (I use PermissionsEX and I do not want a MySQL based permission system)

    Does everything I need and do not have any complaints so far.

    I do suggest making it so only authorized users can use any commands with this plugin and get authorized you should HAVE to put a users UUID in a config. Just in case an operator goes rogue or is compromised (Someone got forced op or secretly opped without the owners' knowledge.)
    1. glavrak
      Author's Response
      Thank you for your feedback. The functionality you offer is available in other plugins specifically designed for this protection. Such plugins monitor everything related to administration.
  7. TrollC
    TrollC
    5/5,
    Version: 2.5
    Awesome plugin. Love it a lot. Great support as well :)
    Huge well done to the author.
    Привет из СНГ)
    1. glavrak
      Author's Response
      Благодарю за отзыв.
      И тебе не хворать )
  8. sergservis
    sergservis
    5/5,
    Version: 2.5
    Great job! Very good. Continue in the same spirit
    Will it work on 1.8? Or is it only for 1.12?
    1. glavrak
      Author's Response
      Thanks for the feedback.
      I did not check, but it's possible that the plugin will work on older versions of the game. Just do not use the TacoSpigot core.
  9. Gibb.SE
    Gibb.SE
    5/5,
    Version: 2.4 + Sponge 0.9
    Supereasy to use! Would be nice to toggle the console-info on/off as well; it can get a bit "spammy" in console.
    1. glavrak
      Author's Response
      Thanks for your feedback. Hiding the plugin messages is inappropriate. I do not think that this function should be present in this plugin. You can use the console message filter, if necessary.
  10. Cisnet
    Cisnet
    5/5,
    Version: 2.4 + Sponge 0.9
    Works perfectly, is there any way to have multiple instances? For example: Bungeeserver port 9001 server1 port 9001 and Bungeeserver port 9002 server3 port 9002 ect
    1. glavrak
      Author's Response
      Thanks for your feedback.
      With regard to your question. By itself this plugin can not do this. In the very idea of this plugin there was no idea to do the synchronization function in the form that interests you. Perhaps you can do this with other plugins. If there is no urgent need, then on all gaming servers this plugin can be connected to one common proxy.