KeepItems
KeepItems
KeepItems
KeepItems allows players to keep their items and/or experience when they die, whilst allowing fine-grained control via the permissions system.
Quick links
- Downloads
- Source code
- Please donate if you've found this plugin useful, to help support future development.
- Bitcoin address: 16irtnP6a8fv14vdCoAqW5ug7TCUCR6gcg
Quick setup
If you simply want all players to always keep their items and experience when they die, add the following to the permissions.yml
file in the root directory of your Bukkit server:
keep-everything:
description: Allow players to keep their armour, their experience and all of their items when they die.
default: true
children:
"keep-items.armor": true
"keep-items.level": true
"keep-items.progress": true
"keep-items.cause.*": true
"keep-items.entity.*": true
"keep-items.item.*": true
For more information, please refer to the documentation below. If you need any help configuring the plugin, feel free to drop me a comment.
Documentation
Frequently Asked Questions
I have all the correct permissions but when I die I still lose all of my items. Help!
Make sure you don't have any other plugins installed that might interfere with the death/respawn process.
How do I configure this plugin so that players can only keep their items in a single world?
Use a multiworld permissions plugin (e.g. PermissionsBukkit, bPermissions, GroupManager), and only grant the KeepItems permissions in one world.
i have same problem with keep-items and groupmanaer: http://dev.bukkit.org/paste/9750/
@everidge1999
I tried to reproduce the issue on a server running CraftBukkit 1.7.2-R0.3 and GroupManager 2.12.1. I gave the default group the relevant permissions using these commands:
I then logged on as a non-op and killed myself by stepping into a pool of lava. When I respawned, my armour was still equipped, my levels were intact and I kept all of my items.
I'm really not sure why it's not working on your server. Are you certain that no errors appeared in the server logs? Could you give me a list of the plugins you're using so I can check for conflicts? Thanks.
@robinjam
I'm using EssentialsGroupManager, and they are set up just as anyone else would set up their GM perms. An example is as follows...
donator5:
default: false
permissions:
- -ctl.darkgreen
- ctl.green
- echopet.pet.type.sheep.baby
- essentials.back
- essentials.sethome.multiple.D5
- essentials.sethome.multiple.vip
- essentials.teleport.timer.bypass
- idc.group.vet
- keep-items.armor
- keep-items.cause.*
- keep-items.entity.*
- keep-items.item.*
- keep-items.level
- keep-items.progress
- protectionstones.create
- protectionstones.group4
inheritance:
- member
info:
prefix: '&f&l[&r&aPremium&f&l] &r&a'
build: true
suffix: ''
EDIT: Players are losing enchanted items/non-block items even when '/gamerule keepInventory true' is executed. I'd really like to get this plugin working for us, but as of now, I removed the plugin and the gamerule works fine. But, again, I'd like only certain ranks to keep their inventory. Thank you for your efforts.
@everidge1999
That's very strange... Could you let me know which permissions plugin you're using and give me a basic idea of how you set up the permissions? I'd like to try and reproduce the issue on a local server.
Hello. I'm having an issue with your plugin's new permissions system. I want certain ranks to have keep inv. For some reason, the ranks who have the following perms, are only keeping their level+armor. What am i doing wrong? I'm not getting any errors in console or any other signs of issues.
- keep-items.armor
- keep-items.level
- keep-items.progress
- keep-items.cause.*
- keep-items.item.*
- keep-items.entity.*
@mrretrus
How did you test the plugin? Did any errors appear in the server console? What does your permission config look like?
hmmmmm tested out this plugin because i like the idea of being able to keep some items but not others when you die/ levels- would be a great perk for donors as well. however, as an opn with every permission manually added to my group- the plugin does absolutely nothing :\ Using latest version of vault, group manager essentials n craft bukkit 1.7.2
@collller
I think you may have encountered a bug in Essentials. I've opened a bug report, so hopefully it'll be fixed soon.
In the meantime, you can avoid the issue by not using the Essentials /kill and /suicide commands.
when i use /suicide /kill player command
[13:18:19] [Server thread/ERROR]: Could not pass event PlayerDeathEvent to KeepItems v1.0.rc3 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at org.bukkit.craftbukkit.v1_7_R2.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:366) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.EntityPlayer.die(EntityPlayer.java:388) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.EntityLiving.damageEntity(EntityLiving.java:739) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.EntityHuman.damageEntity(EntityHuman.java:751) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.EntityPlayer.damageEntity(EntityPlayer.java:467) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at org.bukkit.craftbukkit.v1_7_R2.entity.CraftLivingEntity.damage(CraftLivingEntity.java:203) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at org.bukkit.craftbukkit.v1_7_R2.entity.CraftLivingEntity.damage(CraftLivingEntity.java:188) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at com.earth2me.essentials.PlayerExtension.damage(PlayerExtension.java:16) [Essentials.jar:?] at com.earth2me.essentials.commands.Commandsuicide.run(Commandsuicide.java:21) [Essentials.jar:?] at com.earth2me.essentials.commands.EssentialsCommand.run(EssentialsCommand.java:149) [Essentials.jar:?] at com.earth2me.essentials.Essentials.onCommandEssentials(Essentials.java:517) [Essentials.jar:?] at com.earth2me.essentials.Essentials.onCommand(Essentials.java:382) [Essentials.jar:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at org.bukkit.craftbukkit.v1_7_R2.CraftServer.dispatchCommand(CraftServer.java:709) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.PlayerConnection.handleCommand(PlayerConnection.java:984) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.PlayerConnection.a(PlayerConnection.java:829) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.PacketPlayInChat.a(PacketPlayInChat.java:28) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.PacketPlayInChat.handle(PacketPlayInChat.java:65) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.NetworkManager.a(NetworkManager.java:148) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.ServerConnection.c(ServerConnection.java:77) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.MinecraftServer.v(MinecraftServer.java:703) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.DedicatedServer.v(DedicatedServer.java:273) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.MinecraftServer.u(MinecraftServer.java:566) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.MinecraftServer.run(MinecraftServer.java:472) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] at net.minecraft.server.v1_7_R2.ThreadServerApplication.run(SourceFile:618) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] Caused by: java.lang.NullPointerException at net.robinjam.bukkit.keepitems.KeepItems.onPlayerDeath(KeepItems.java:101) [?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.8.0] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [?:1.8.0] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.8.0] at java.lang.reflect.Method.invoke(Unknown Source) [?:1.8.0] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) [spigot-1.7.5-R0.1-SNAPSHOT.jar:git-Spigot-1360] ... 30 more
@ThsShadyOneHD
Just use a permissions plugin that's world-specific (for example, bPermissions).
can you make it that it can be world specific
@mindcat
I already released an update yesterday. You can download it here.
@robinjam
Well, I just ask for update, if you didn't, I will.
@mindcat
I'd prefer not to transfer ownership of this project. If you want to help out, I'm accepting pull requests on GitHub (https://github.com/robinjam/keep-items). If your code is good enough, I'd be happy to add you as a collaborator on GitHub and as an author here on BukkitDev.
Can I take your development, let me continue the plugin development?
@SXRWahrheit
How would that help?
@robinjam
Why not use Vault as recommended?
@SXRWahrheit
There's a discussion about the issue here. tl;dr the item ID system in Minecraft is deprecated which means I need to overhaul the KeepItems permission system to use item names instead of IDs for the keep-items.item.<id> permission nodes, while ideally retaining backwards compatibility with the previous permission system. This will probably involve tacking on my own item ID system. Furthermore, every item in the game is going to be renamed when Minecraft 1.8 comes out, so I'll also need to add aliases for every item for backwards compatibility.
To be honest, developing for Minecraft is a bit of a PITA at the moment. They've changed so much stuff under the hood recently it's kinda difficult to keep up-to-date.
@robinjam
It doesn't seem like this should be something terribly difficult to get updated. It's been 18 days since your last post, can we please have a status update?
@MrDracoHD
I'm afraid I can't give you a date. I'm completely swamped with RL work at the moment and that will always take priority over maintaining my plugins. All I can promise is that I'll get a fix out as soon as I have time.
You might consider using the keepInventory game rule instead in the meantime, although the coarse-grained control it provides may not be suitable for your purposes.
I apologise for the inconvenience, but I hope you understand.