Spigot ZHorse 1.8.2

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

  1. running paper #120 MC 1.15.2 and when I run this command I get this. No big deal for us, just letting ya know as I know your busy irl. This has been a great plugin for the us for since ya created and most thankful for that!!!! Great Work!!!
    [22:24:51 WARN]: java.lang.reflect.InvocationTargetException
    [22:24:51 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [22:24:51 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    [22:24:51 WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    [22:24:51 WARN]: at java.lang.reflect.Constructor.newInstance(Unknown Source)
    [22:24:51 WARN]: at com.github.zedd7.zhorse.managers.CommandManager.onCommand(CommandManager.java:47)
    [22:24:51 WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
    [22:24:51 WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159)
    [22:24:51 WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:742)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.PlayerConnection.handleCommand(PlayerConnection.java:1821)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:1629)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:47)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:5)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:23)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:1038)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:1031)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:1015)
    [22:24:51 WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:938)
    [22:24:51 WARN]: at java.lang.Thread.run(Unknown Source)
    [22:24:51 WARN]: Caused by: java.lang.NullPointerException
    [22:24:51 WARN]: at com.github.zedd7.zhorse.commands.CommandList.buildVariantMessage(CommandList.java:118)
    [22:24:51 WARN]: at com.github.zedd7.zhorse.commands.CommandList.buildAliveHorseList(CommandList.java:74)
    [22:24:51 WARN]: at com.github.zedd7.zhorse.commands.CommandList.execute(CommandList.java:45)
    [22:24:51 WARN]: at com.github.zedd7.zhorse.commands.CommandList.<init>(CommandList.java:31)
    [22:24:51 WARN]: ... 23 more
    • Agree Agree x 1
  2. PawPawDude


    Hi @Z3dd7, an update on the "not appearing" horses on server restart...

    I've just tested this issue several times (restarted server, examined zhorses), and it appears my earlier issue has gone away, perhaps due to other upgrades I've made to the server and its other plugins, dunno. <puzzling>

    The good news, which is hopefully solid and lasting, is that I no longer see the problems of vanished horses on server startup. If I see anything else, will let you know.

    Be well and thanks always.
  3. Well, good news ! To be honest, this:
    has been my perpetual mood when debugging this long-running, yet rare (in some circumstances), bug.
    So, I'm glad that it fixed itself for you :p
    • Agree Agree x 1
  4. Running 1.15.2 I'm running into a problem with setting groups. I can only claim one horse, even when I define a group to have more. It says I've reached my claim limit. I've had this plugin for a good while and I never had problems before when setting up the perms. Even as OP I can only claim one horse.
  5. What's your config look like, and what is the Perm plugin you're using? I use Luckperms and groups are working fine, also on1.15.2 and Paper spigot. FYI!
  6. I'm on regular Spigot 1.15.2 I'm using PermissionsEX (never had a problem before though I know it's oldschool)

    Also Like I said, even when opped it's not letting me claim more than one. It's very strange.

    Code (Text):

      # The list of permission groups with which ZHorse tries to bind.
      # The value of color is applied to the horse name.
      # Following formats are available : "&4", <4>, <dark_red>, <DARKRED>.
      # Set color-bypass to allow color tags in horse names.
      # The value of claims-limit defines how much horses a player can claim.
      # Assign and define the permission only if the group is not defined in a perms plugin.
      # Membership of the (fake) group is simulated for whoever has the permission.

        color: <f>
        color-bypass: false
        claims-limit: 1
        permission: zh.group.1
        color: <dark_aqua>
        color-bypass: false
        claims-limit: 3
        permission: zh.group.3
        color: <3><BOLD>
        color-bypass: false
        claims-limit: 10
        permission: zh.group.10
        color: "&c"
        color-bypass: true
        claims-limit: 1000
        permission: zh.group.1k
  7. I'll run it up on my dev server and see what's up hopefully....
    • Friendly Friendly x 1

  8. Can I see the Permissionex config of the groups? Think I know what's going on.
    • Useful Useful x 1
  9. If you mean the bit it says before the group and permissions in the zh config about not having the groups already be definied in a permissions plugin, then I thought that also which is why I changed them the way I did. They didn't work when I named them after the group or when I changed. And again, like I said... Even opped I can only claim one horse so I don't know what's going on. I do appreciate you trying to help me out though. I just don't believe it's set up improperly.

  10. Thanks for the config. So I use Luckperms and after creating the groups as written in the zh config that didn't work. So I created a group called TEN, and then gave that group the permission zh.group.10 and still no luck? When I renamed the perm from zh.group.10 to zh.group.ten then it did work. Hope this helps, but if that doesn't work I can install pex and see what's up their as I do hang out on thier discord channel so if that's the issue I can ask a dev for support. we do enjoy this plugin, it has been great for our server.
    • Like Like x 1
  11. When using surrogate groups (relying on permissions rather than group name matching), the order matters. If a player's primary permission group has no match in ZHorse's config, ZHorse will place him/her in the first ZHorse group for which the player has the permission that is set for the group. Try swapping your group "one" and "boss" and see if that works.

    FYI: https://github.com/Zedd7/ZHorse/blo.../zhorse/managers/ConfigManager.java#L331-L344
  12. Hey there :)

    A few questions before I install the plugin, if that's alright.

    - I see people using this on 1.15.2, but the overview tab says 1.14. Is it correct that this build from spigotmc runs fine on Spigot 1.15.2 or do I need to get a jenkins or github release or something instead?
    [edit: i got it working, minus the error reported below]

    - I come from another horse plugin that i've had plenty of issues with, I would love to give the players their horse back so to speak. Is it possible as server owner that I use this plugin to make a horse with a name, or a certain type, and give that to them. Or should I just use a spawn egg claim it etc and then give it? I don't know if there's any admin commands to help me speed up this process.

    - One of the features we used was that with multiverse-core we have multiple worlds, and they might find the horse they want from a mining world and would love to teleport them back home. Is it possible they claim a horse in world Mine and go home, and spawn it there (I assume so) and what happens when they teleport to a player or type /home, switching between worlds, or at least teleport between locations within the world. Will their horse teleport with them or do I need another plugin to handle that?

    - Does this come with a /horse command, which is what we're used to. Or do I need to make an alias myself (which is fine, just handy to know upfront)
    [edit: got this sorted out using `/cmi aliaseditor`]

    - Are there any plans to support 1.16 when it comes out, and perhaps get additional features such as claiming the ridable animals in minecraft like a pig, llama, or the new nether zoglins or whatever the lava riding thing is called?
    [edit: llame can already be claimed i think]

    - If I claim a llama can i steer it like a horse?

    - And finally, is it possible to include disabled worlds? We have mini game and event worlds for example where I wouldn't want them to use /zh or teleport to with their horse. I also dont want them to cheat during a drop party by spawning in their horse or teleporting to it with a /back or whatever.

    - Is there a way to rename the title in /zh's help page?
    Screenshot 2020-04-07 at 14.51.58.png

    Tried the plugin, latest spigot 1.15.2 --rev made with buildtools and this plugin, i mount a horse and type /zh buy and i get this:
    Code (Text):

    [14:55:35] [Server thread/INFO]: mrfloris issued server command: /horse buy
    [14:55:35] [Server thread/WARN]: java.lang.reflect.InvocationTargetException
    [14:55:35] [Server thread/WARN]:        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [14:55:35] [Server thread/WARN]:        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    [14:55:35] [Server thread/WARN]:        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    [14:55:35] [Server thread/WARN]:        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    [14:55:35] [Server thread/WARN]:        at com.github.zedd7.zhorse.managers.CommandManager.onCommand(CommandManager.java:47)
    [14:55:35] [Server thread/WARN]:        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
    [14:55:35] [Server thread/WARN]:        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149)
    [14:55:35] [Server thread/WARN]:        at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:723)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.PlayerConnection.handleCommand(PlayerConnection.java:1658)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:1498)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:47)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:1)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(SourceFile:144)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(SourceFile:118)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:918)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:911)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(SourceFile:127)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:895)
    [14:55:35] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:828)
    [14:55:35] [Server thread/WARN]:        at java.base/java.lang.Thread.run(Thread.java:834)
    [14:55:35] [Server thread/WARN]: Caused by: java.lang.NullPointerException
    [14:55:35] [Server thread/WARN]:        at com.github.zedd7.zhorse.utils.MessageConfig.getFlagContentList(MessageConfig.java:153)
    [14:55:35] [Server thread/WARN]:        at com.github.zedd7.zhorse.utils.MessageConfig.getHorseNameList(MessageConfig.java:82)
    [14:55:35] [Server thread/WARN]:        at com.github.zedd7.zhorse.managers.MessageManager.populateFlags(MessageManager.java:142)
    [14:55:35] [Server thread/WARN]:        at com.github.zedd7.zhorse.managers.MessageManager.getMessage(MessageManager.java:96)
    [14:55:35] [Server thread/WARN]:        at com.github.zedd7.zhorse.managers.MessageManager.getMessage(MessageManager.java:91)
    [14:55:35] [Server thread/WARN]:        at com.github.zedd7.zhorse.managers.MessageManager.sendMessage(MessageManager.java:62)
    [14:55:35] [Server thread/WARN]:        at com.github.zedd7.zhorse.managers.MessageManager.sendMessage(MessageManager.java:57)
    [14:55:35] [Server thread/WARN]:        at com.github.zedd7.zhorse.commands.CommandBuy.execute(CommandBuy.java:82)
    [14:55:35] [Server thread/WARN]:        at com.github.zedd7.zhorse.commands.CommandBuy.<init>(CommandBuy.java:19)
    [14:55:35] [Server thread/WARN]:        ... 23 more
    #552 mrfloris, Apr 7, 2020
    Last edited: Apr 7, 2020
  13. It seems that color-bypass: false in the config doesn't prevent players from renaming horses using &6 color codes etc.

    Would it be possible to get a permission for this?
    And would it be possible to regex(); limit the entry? so very tricky unicode isn't used and limited to [a-z,A-Z,0-9]
    • Like Like x 1
  14. Floris, I don't know all the answers to your questions, but:
    Assuming you give them the permission, horses don't tp with players, but players can teleport "horses" to themselves cross world with /zh here, and, if you give the (separate) perm, they can teleport to their horses with /zh tp.They can also send it to a preset stable location.

    You'll need to alias /horse if you want that in addition to /zh

    You can already claim llamas, etc with it. (not pigs)

    Claimed llamas still act like llamas.

    There are admin commands to spawn in horses and/or edit their stats.

    You can control what features are active in what worlds in the config.yml, in this section:
    • Friendly Friendly x 1
  15. Thanks @Momshroom for already answering some questions, I'll answer the rest ;)

    The only currently supported version is 1.14.X but, since ZHorse is usually not prone to breaking with updates, you can give 1.15.X a try and report your issues on GitHub.

    That should be possible with a series of /zh spawn, /zh claim and /zh give:
    - Specify the type/stats that you want with /zh spawn
    - Claim the spawned horse and rename it at once with /zh claim
    - Make the desired player the owner of the horse with /zh give
    Run every command in admin mode (-a) to bypass any limit/protection and, if the number of horses to handle is reasonable, that should work.

    As Momshroom stated, ZHorse works in multi-world by default. So command like /zh here, /zh tp and /zh stable will work as you expect.
    About the horse following the player, you can do it manually with /zh here or with a plugin such as HorseTpWithMe.

    The only two commands that ZHorse provides is /zhorse and its alias /zh. Since it's super easy to configure aliases I didn't bother to add some other (potentially conflicting) commands.

    If it gets me back to playing Minecraft, then it will move ZHorse to the top of my priority list.
    If not, it will still be planned but I won't be able to guarantee any deadline since I'm working on several other projects.

    Nope. Or at least not in the short term. That would require a heavy rewrite of the code that version 2.0 could encompass but I wouldn't count on that.
    Yes, llamas are a variant of horses in Minecraft. Since ZHorse handles all variants of horses, those are supported too.

    No, but you can submit a suggestion for that on GitHub.

    If you mean that you want to disable ZHorse commands in a specific world, Momshroom got you the answer.
    But maybe did you mean something else ? I didn't quite get your first sentence.

    Yes. You're looking for the headerFormat and pluginHeader strings in https://github.com/Zedd7/ZHorse/wiki/Locale-EN

    I use this thread to keep people updated on ZHorse but I don't keep track of the issues across several pages. So the best hope to have your bug fixed is to use GitHub's issue tracker on ZHorse repo.

    Well, that's weird. Bug report :p
    You can submit an enhancement request for the permission but I can't guarantee that it is worth the investment, since it is tightly related to groups.

    In horse names you mean ? Yes that could be a config option -> GitHub ^^

    cc @mrfloris
    • Informative Informative x 1
    • Friendly Friendly x 1
  16. Momschroom and Z3dd7 Thank you both for the awesome follow up, this really helped me a lot.

    There's loads of new stuff in 1.16, like.. loads, I hope it motivates you to come back and play it. Looking forward to the plugin being compiled against it once spigot comes out for it, if the 1.14 version doesn't run out of the box.
  17. Do you plan to add placeholders?
  18. What do you mean ?
  19. Whooo 1.16 is here :) Can't wait to use zhorse in 1.16 Will try to test soon unless someone already knows it works or doesn't work?
    • Like Like x 1
  20. Z3dd7 updated ZHorse with a new update entry:

    MC 1.16.1 update

    Read the rest of this update entry...
    • Winner Winner x 1