PortableHorses
[ 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.
@Zilacon
Thanks! Fixed in the next release (0.1.7) developments builds are currently available.
@metalhedd
Getting this error:
18:26:55 [SEVERE] Could not pass event EntityDeathEvent to PortableHorses v0.1.6 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463) at org.bukkit.craftbukkit.v1_6_R2.event.CraftEventFactory.callEntityDeathEvent(CraftEventFactory.java:344) at net.minecraft.server.v1_6_R2.EntityInsentient.dropDeathLoot(EntityInsentient.java:202) at net.minecraft.server.v1_6_R2.EntityLiving.die(EntityLiving.java:764) at net.minecraft.server.v1_6_R2.EntityHorse.die(EntityHorse.java:701) at net.minecraft.server.v1_6_R2.EntityLiving.damageEntity(EntityLiving.java:716) at net.minecraft.server.v1_6_R2.EntityAnimal.damageEntity(SourceFile:128) at net.minecraft.server.v1_6_R2.EntityHorse.damageEntity(EntityHorse.java:251) at net.minecraft.server.v1_6_R2.EntityLiving.x(EntityLiving.java:155) at net.minecraft.server.v1_6_R2.EntityInsentient.x(EntityInsentient.java:111) at net.minecraft.server.v1_6_R2.Entity.l_(Entity.java:245) at net.minecraft.server.v1_6_R2.EntityLiving.l_(EntityLiving.java:1249) at net.minecraft.server.v1_6_R2.EntityInsentient.l_(EntityInsentient.java:150) at net.minecraft.server.v1_6_R2.EntityHorse.l_(EntityHorse.java:740) at net.minecraft.server.v1_6_R2.World.entityJoinedWorld(World.java:1492) at net.minecraft.server.v1_6_R2.World.playerJoinedWorld(World.java:1467) at net.minecraft.server.v1_6_R2.World.tickEntities(World.java:1336) at net.minecraft.server.v1_6_R2.WorldServer.tickEntities(WorldServer.java:517) at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:571) at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239) at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) Caused by: java.lang.NullPointerException at com.norcode.bukkit.portablehorses.PortableHorses.isPortableHorseSaddle(PortableHorses.java:310) at com.norcode.bukkit.portablehorses.PortableHorses.onEntityDeath(PortableHorses.java:327) at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 26 more
@metalhedd
Only sometimes :c
@Bodyash
only sometimes? Is there an error in the logs when it happens? I've been running this plugin since I wrote it and haven't seen that problem happen before.
Shift + Ckick on saddle - sometimes horse despawn and no saddle in inventory and no saddle drop (Shift + Click must move saddle from horse to player inventroy)
@sigler
Permissions are given by default to all users, if you want to revoke the permission you have to revoke the permission by setting it to false, or using the negated permission nodes (^ or -) this is dependent on your permissions plugin.,
I added the plugin and now everyone can freely use it. None of the permissions were even added yet. Any ideas?
Using permissionsbukkit
PS: Nice plugin by the way. Makes me think of the old school ethys from UO
@GumbyDammit
Darn, Sorry about that. Fixed in the latest dev builds and uploaded 0.1.6
Getting tons of console spam:
@Bodyash
I'm not sure what you mean by that... is it a bug you're experiencing? I'm not having that problem. I've been carrying all sorts of enchanted and and renamed items and the names are still fine.
Try to put any item to horse inventroy
Item will be renamed :D
@CommodoreAlpha
yeah it's definitely possible, i've been meaning to attempt it for the next version actually. stay tuned.
I just wanted to point out about the "donkey-ception" thing, technically you could have "infinite inventories" with that (though a great deal of hassle too when opening up those inventories). Is there any way you could (optionally) prevent this?
@Kino876
The permissions are given to all users by default, if you want non-VIP's to not be able to use it, you'll need to give them the negated permission node. (usually just prefixing it with a - or a ^ depending on your permissions plugin.
There is a problem with permissions?, On my server I want to put the plugin only for VIP and everyone can use it.
http://www.spigotmc.org/threads/spigot-only-issue-portablehorses-protocollib-spigot.4826/
@Bodyash
I actually tested a little further and DID reproduce the crash, but only by selecting items out of the creative inventory.. I have to believe this is a spigot issue as it works fine under normal craftbukkit. I'll test some older spigot builds and see if it's something new, but it's likely a bug for either spigot or protocolLib to deal with
@Kino876
2nd time I've heard that... I've actually NEVER played wow.. I had no idea that's how the mounts worked :P
Awesome plugin, this remember me the wow mounts, hehe. Thank you.
@Bodyash
Just tested with the exact setup you describe. can't reproduce the issue. what other plugins are you running? what's the FULL error message in your server.log?