Spigot ZHorse 1.8.2

Enjoy the advanced horse management and protection features provided by ZHorse !

  1. Juste leave blank the corresponding message in the locale file of your language.
  2. Horses are literally just disappear/go invisible when you try to tp to it or try to make it tp to you.

    Also how do give more people more horse claims, giving the permission I set doesn't work.
    #462 SomeWeirdo, Dec 30, 2018
    Last edited: Dec 31, 2018
  3. zHorses causes high amount of single tick processing and therefore server lag.
    This happens while horses are ported back home.

    Spigot version 1.13.2


    # Set to true to use the location defined by default-stable-location for
    # horses whose stable has not been defined when using /zh stable go or
    # when a player logout and send-to-stable-on-owner-logout is enabled.
    use-default-stable: true

    # Set to true to send horses to stable when their owner logout.
    # This only works if a regular or default stable has been defined.
    # Leashing horses and enabling block-leashed-teleport is recommended.
    send-to-stable-on-owner-logout: true

  4. ZHorse's development was stopped right after releasing 1.7.1 which was made compatible with an early version of Spigot 1.13.0. It is thus possible that some features no longer work well.

    If I find the time I will try to investigate this but only if you submit proper issues on ZHorse's GitHub page.

    In the meantime, I recommend that you either tweak the config to avoid using the problematic features or find a developer to fix it for you.
  5. How would I go about getting all a players horses via API?
  6. There is no API so you must either fork ZHorse's GitHub and make one or fetch the horses from the DB which should work but is the ugly option.
    • Like Like x 1
  7. hey i got this error, anyone know how to fix it?
    Code (Text):
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]: org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (near "I": syntax error)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.core.DB.newSQLException(DB.java:941)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.core.DB.newSQLException(DB.java:953)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.core.DB.throwex(DB.java:918)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.core.NativeDB.prepare_utf8(Native Method)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.core.NativeDB.prepare(NativeDB.java:134)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.core.DB.prepare(DB.java:257)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.core.CorePreparedStatement.<init>(CorePreparedStatement.java:47)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.jdbc3.JDBC3PreparedStatement.<init>(JDBC3PreparedStatement.java:30)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.jdbc4.JDBC4PreparedStatement.<init>(JDBC4PreparedStatement.java:19)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.jdbc4.JDBC4Connection.prepareStatement(JDBC4Connection.java:35)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.jdbc3.JDBC3Connection.prepareStatement(JDBC3Connection.java:241)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.sqlite.jdbc3.JDBC3Connection.prepareStatement(JDBC3Connection.java:205)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at com.github.zedd7.zhorse.database.SQLDatabaseConnector.getPreparedStatement(SQLDatabaseConnector.java:63)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at com.github.zedd7.zhorse.database.SQLDatabaseConnector.executeUpdate(SQLDatabaseConnector.java:72)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at com.github.zedd7.zhorse.database.SQLDatabaseConnector.executeUpdate(SQLDatabaseConnector.java:67)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at com.github.zedd7.zhorse.managers.DataManager.registerHorseInventory(DataManager.java:489)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at com.github.zedd7.zhorse.managers.DataManager.updateHorseInventory(DataManager.java:693)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at com.github.zedd7.zhorse.managers.HorseManager$1.run(HorseManager.java:179)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftTask.run(CraftTask.java:81)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    [03:04:39] [Craft Scheduler Thread - 2959/WARN]:     at java.lang.Thread.run(Thread.java:748)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]: org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (near "Darn": syntax error)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.core.DB.newSQLException(DB.java:941)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.core.DB.newSQLException(DB.java:953)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.core.DB.throwex(DB.java:918)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.core.NativeDB.prepare_utf8(Native Method)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.core.NativeDB.prepare(NativeDB.java:134)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.core.DB.prepare(DB.java:257)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.core.CorePreparedStatement.<init>(CorePreparedStatement.java:47)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.jdbc3.JDBC3PreparedStatement.<init>(JDBC3PreparedStatement.java:30)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.jdbc4.JDBC4PreparedStatement.<init>(JDBC4PreparedStatement.java:19)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.jdbc4.JDBC4Connection.prepareStatement(JDBC4Connection.java:35)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.jdbc3.JDBC3Connection.prepareStatement(JDBC3Connection.java:241)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.sqlite.jdbc3.JDBC3Connection.prepareStatement(JDBC3Connection.java:205)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at com.github.zedd7.zhorse.database.SQLDatabaseConnector.getPreparedStatement(SQLDatabaseConnector.java:63)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at com.github.zedd7.zhorse.database.SQLDatabaseConnector.executeUpdate(SQLDatabaseConnector.java:72)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at com.github.zedd7.zhorse.database.SQLDatabaseConnector.executeUpdate(SQLDatabaseConnector.java:67)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at com.github.zedd7.zhorse.managers.DataManager.registerHorseInventory(DataManager.java:489)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at com.github.zedd7.zhorse.managers.DataManager.updateHorseInventory(DataManager.java:693)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at com.github.zedd7.zhorse.managers.HorseManager$1.run(HorseManager.java:179)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftTask.run(CraftTask.java:81)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    [03:04:41] [Craft Scheduler Thread - 2929/WARN]:     at java.lang.Thread.run(Thread.java:748)
  8. Hi, check the logs when you execute /zh reload and see if any warning is displayed.
  9. nope no errors popped up after i reloaded the plugin
  10. A snapshot for ZHorse 1.8.0 (which focuses on database) will be uploaded here shortly (tomorrow I guess), I will make sure that it catch this exception properly so we can figure out what goes wrong if it happens again.
    #471 Z3dd7, Jan 31, 2019
    Last edited: Feb 2, 2019
  11. ZHorse 1.8.0 snapshot 1 - Asynchronous update

    Short description
    This update focuses on how ZHorse communicates with its database.
    All database updates and heavy-hitting features will now run on a separate thread, which should greatly help with the plugin's performances for large servers.

    Please note that some database updates (such as sharing a horse with /zh share) have little to zero impact on performances but still delay the response time of commands due to running asynchronously. So, depending on your feedback, it is possible that some database updates will be brought back to the main loop to make commands feel less laggy to the detriment of overall performances.

    Also, it would be nice if you could produce a timings report for ZHorse 1.7.1 and another for this snapshot and post them here :)


    • Updated to Spigot 1.13.2.
    • Updated to Vault 1.7.x.
    • Made all database updates asynchronous.
    • Made all heavy-hitting features asynchronous (chunk monitoring, auto-stable, etc.). @Sandukhan
    • Fixed dead horses resurrecting with id 0 when all other registered horses were also dead.
    • Made /zh heal and /zh edit update horse_stats table after execution.
    • Made SQL queries being logged to console in case of SQLException. @Raigna
    • Fixed typos in config.yml.
    • Added comments in config.yml.
    Known bugs
    • None.
    Future improvements
    • Maybe allow to configure what should run asynchronously (all, none, updates only, specific commands, ...).
    • Maybe run trivial update synchronously to reduce the response time of commands.

    Attached Files:

    #472 Z3dd7, Feb 2, 2019
    Last edited: Feb 2, 2019
    • Friendly Friendly x 1
  12. Good news everyone !

    Last summer, I was thinking about retiring from ZHorse's development (and I actually did for a few months) but it turns out that I got back into Minecraft out of the blue several weeks ago and I am now considering opening a brand new server with some friends.
    There is a french expression that says 'You are never as well served as when you serve yourself'. That's why part of our plugins will be homemade and most likely published on Spigot. This of course includes ZHorse which will get a brand new visual interface coming with update 2.0 !
    #473 Z3dd7, Feb 2, 2019
    Last edited: Feb 2, 2019
    • Like Like x 1
    • Winner Winner x 1
    • Friendly Friendly x 1
  13. Schneidertm


    I'm so excited and happy to read this news. Thank you so much!
    • Like Like x 1
  14. I'm so excited of 2.0 ! My friends love this Plugin on My Server
  15. I cant wait I love this plugin, its definatly the best horse plugin out there.....you should totally add a final fantasy 7 style chocobo racing event to the plugin :D jk....unless you want too :p
  16. Thanks :)

    Keep in mind that the best way to speed up the development of ZHorse is to help me test the snapshots ! All the time that I don't spend testing every single command on every single configuration by myself (or worse, fixing insufficiently tested releases such as 1.6.9) is time that I can spend working on new features ;)
    #477 Z3dd7, Feb 4, 2019
    Last edited: Feb 4, 2019
  17. Z3dd7 updated ZHorse with a new update entry:

    Performance update

    Read the rest of this update entry...
  18. ZHorse 1.8.1 snapshot 1

    Short description
    This snapshot brings little tweaks to ZHorse such as an update checker.
    It's not much yet but testing it would help me make sure that it works fine and will inform you when 1.8.1 is fully released in case you forget to check ;)


    • Added update checker.
    • Added config option 'Settings.check-for-update'.
    • Added comments in config.yml.
    • Fixed typos in config.yml.
    Known bugs
    • None.
    Future improvements

    Attached Files:

    #479 Z3dd7, Feb 10, 2019
    Last edited: May 26, 2019
  19. ZHorse 1.8.1 snapshot 2 - Auto-completion update

    Short description
    This snapshot brings auto-completion for ZHorse commands and their sub-commands, if any.
    Auto-completion for (some) command arguments will (maybe) come later.


    • Added tab auto-completer for commands and sub-commands.
    Known bugs
    • None.
    Future improvements

    Attached Files:

    • Like Like x 1