PortableHorses

Logo

Logo

[ Français ]

IMPORTANT: Spigot Builds > #1521 currently have a bug which corrupts PortableHorses! Do *NOT* Use this plugin with spigot > build #1521

Portable Horses allows for players to store their steeds in their inventory. By removing the saddle from a horse or donkey, the animal will vanish, safely stored inside the saddle itself. by clicking the saddle on the ground again, the horse will respawn ready to ride exactly as you left it.

You could even store a donkey in a saddle in a donkey in a saddle (donkey-ception?)

NOTE: This plugin requires ProtocolLib

Features

  • Pickup/Spawn your horse anytime / anywhere just by saddling it.
  • Option to store (or drop) Horses armor, and donkey's inventory.
  • Horse details are displayed on the saddle's lore for easy identification.
  • NO DATABASE - All data is stored in the saddle. There is no database or flatfile to worry about.
  • Can optionally require a special 'portable horse' saddle in order to function. Normal saddles will work as they used to.

Tutorial

Pour les utilisateur Français de ce plugin Voila une Video de "Miodo" (V 1.6.2)

Para los usuarios que hablan Español, aquí hay un tutorial por FeerBreezy.

Для русскоязычных пользователей видео от Rissman

Commands

All commands are under the main /portablehorses or /ph command

  • /portablehorses reloadconfig - reloads the config file.

Permissions

  • portablehorses.saddle: allows players to save a horse to a saddle.
  • portablehorses.unsaddle: allows players to remove a saddle (picking up the horse).
  • portablehorses.spawn: allows players to spawn their horses
  • portablehorses.admin: allows the 'reloadconfig' command.

Configuration

A fully commented config.yml can be found here

Source Code & Development Builds

Source code is available on Github

Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.

Portable Horses Development Builds

Auto Updater

This plugin has a built-in auto-updater, which connects to BukkitDev to check for updates. If you, for some reason, wish to disable this process, you can do so by setting 'auto-update' to 'false' or 'notify-only' in the plugins' settings file.

Other Plugins

  • ToughAnvils - Anvils that never break
  • Scribe - Transfer enchantments from items to books using an anvil
  • DigForDollars - Let's players earn money for mining.
  • PotatoBombs - Allows players to craft poisonous potatoes into devastating and hillarious magical landmines.
  • SalvageSmelter - Allows smelting unwanted tools/armor/anything into raw materials.
  • Autocrafter - Turns droppers into redstone powered crafting tables.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of thinkofdeath thinkofdeath Mar 25, 2015 at 10:23 UTC - 0 likes
  • Avatar of metalhedd metalhedd Mar 23, 2015 at 12:10 UTC - 0 likes

    @thinkofdeath: Go

    that definitely wasn't the case in the past. the whole reason this plugin used ProtocolLib was because both nbt data was being wiped by the server as well as the client during creative mod e. do you have a link to the relevant changes or some discussion about it?

    BFAK:90830465,b573a8e682927677807be51a4e7e753febfd10028aef5bc79975715e3fc5dfe3

  • Avatar of thinkofdeath thinkofdeath Mar 23, 2015 at 11:50 UTC - 0 likes

    @metalhedd: Go

    If it helps both Spigot and CraftBukkit 1.8 will preserve unknown NBT tags on items instead of stripping them.

  • Avatar of Lyanndrus Lyanndrus Mar 16, 2015 at 20:33 UTC - 0 likes

    @metalhedd: Go

    It doens´t work in 1.8 :(

  • Avatar of Bodyash Bodyash Mar 05, 2015 at 01:59 UTC - 0 likes

    Wow, good! I`m happy to see that plugin is not dead!

    http://monitoringminecraft.ru/chart/178.54.192.12%3A25565.png

  • Avatar of MoarPizzaPls MoarPizzaPls Mar 02, 2015 at 14:41 UTC - 0 likes

    @metalhedd: Go

    I'm sorry for posting a link in the comments. I'm new to the community and I didn't know about the rule.

    Both of your points are correct, but I already fixed both issues. Saddles from previous versions no longer break anything and I added even more checks to prevent anything bad from happening. I also changed the storage system to store each horse in an individual file. It's still less scalable than storing all the data in a saddle, but it's good enough for my server.

  • Avatar of metalhedd metalhedd Mar 01, 2015 at 20:10 UTC - 0 likes

    @MoarPizzaPls: Go

    I was not trying to be passive aggressive, it's not my rule, it's bukkitdev's. you're not allowed to post downloads in comments, period. I'm not even allowed to post a download in the comments, the staff will remove it. (edit: apologies for misreading the code the first time around, I see how how the counter is persisted)

    You say you don't want to offer downloads of your plugin because it's not yours... did you consider that I don't want to offer downloads of your plugin, because it's not mine? I don't want this page to become a support thread for your unofficial modifications, nor do I want people to think that your plugin is representative of my work. You can either contribute your changes to the official github repo via pull request, or you can release a fork of PortableHorses, both of which are preferable to posting unofficial binaries in the comments here.

    As for the changes you've made, it appears that your plugin literally trashes any data saved by a previous version of PortableHorses. Have you attempted to spawn a horse that was saved in a saddle on a previous version? Your code no longer even attempts to parse the data in the lore, it just assumes the saddle is storing one of your IDs. That's irresponsible.

    The file based storage is an idea I rejected a long time ago simply because it doesn't scale (especially when you're saving the ENTIRE database on every write). Your 5ms to save the file is based on how many saddles in the database? When that number increases 10 times, then it takes 50ms to save the database, that's an entire server tick. which means you're now producing lag every time you save that file, which is every time a portable horse is saved to a saddle.

    Last edited Mar 01, 2015 by metalhedd
  • Avatar of MoarPizzaPls MoarPizzaPls Mar 01, 2015 at 18:53 UTC - 0 likes

    @metalhedd: Go

    Hello

    I understand the implications of saving the data in a file and that's why I said I'd look into NBT.

    My storage scheme is entirely not broken. The id counter is not reset to zero when the server restart and nothing gets overridden.

    Also, please stop being passive aggressive. I don't want to offer downloads of my plugin, because it's not mine. It's your plugin with some modifications and people have been asking for a fix, so I shared it with them. If you don't want me to share a modified version of your plugin that works in the comments, it's your decision and I can respect it. I just needed this plugin to work on my server and it does, so I thought maybe there were other people who would find it useful.

  • Avatar of metalhedd metalhedd Mar 01, 2015 at 14:01 UTC - 0 likes

    @MoarPizzaPls: Go

    @MoarPizzaPls. the decision to store data in the saddle NBT was a conscious one. There is no way to track the disappearance of an item from the game, so if someone tosses their saddle into the void for example, you won't know about it and you will have to keep that record in your database forever. eventually you'll need to design in a sort of expiry system. I've used that approach with several other plugins, and it doesn't work out well. without the 'packet stuff' the lore will be wiped out by switching to creating mode and clicking around the inventory.

    Please edit your post to remove the download link, its not allowed on bukkitdev. if you want to offer downloads of your plugin, you need to go through the same process as everyone else, set up a page, and have the plugin approved by staff. also please be aware you'll have to post your source code and keep your plugin under the GPL license since it's a derivative work of PortableHorses.

    EDIT: I looked through your code... your storage scheme is entirely broken. the id counter is reset to zero when the server restarts so the next newly saddled horse gets id 0 overwriting whoever previously had id 0 and so on.

    Last edited Mar 01, 2015 by metalhedd
  • Avatar of MoarPizzaPls MoarPizzaPls Mar 01, 2015 at 02:40 UTC - 0 likes

    Took me 5 hours to get it to work. Changes I did: -Got rid of all the packet stuff. (I don't even know what this was for) -Got rid of storing data in the NBT of saddles (the data kept getting corrupted for some reason) -The NBT data from a horse is serialised and stored in a file instead and each horse has an ID in the lore. (5ms to save the file)

    Current bugs: -Can't shift click items to move them to a donkey's chest -Portable saddles still contain the same gibberish in their lore as they used to without the fix. This only seems to happen when the saddle is on a horse though so who cares.

    I believe with the fix, it's perfectly usable on a live server and I'm running it on mine right now. I am going to keep updating my version of the plugin and perhaps even crate a dedicated bukkit/spigot page for it when I find some free time. I'm also going to look into how exactly NBT works to see if I can fix the corruption so that the data doesn't have to be stored in a file.

    {LINK removed by Myrathi}

    Enjoy.

    Last edited Mar 01, 2015 by Myrathi: Removed third party download link

Facts

Date created
Aug 23, 2013
Categories
Last update
Jun 22, 2014
Development stage
Release
Language
  • enUS
  • frFR
License
GNU General Public License version 3 (GPLv3)
Curse link
PortableHorses
Downloads
10,514
Recent files

Authors

Relationships

Required dependency
ProtocolLib