DeathCraft 2
DeathCraft
DeathCraft is a plugin to make dying fun!
Not really. Dying always sucks - But DeathCraft will make it more fun for everyone else.
Features
- Unlimited, customized death messages for every type of death, or per item!
- Differentiates between PVE and PVP deaths!
- Option to use true account names, or display names (/nick, etc)
- Player optional ignoring of either type of death (PVE or PVP) messages
- Head drops! Fully configurable drops of player and mob heads!
- Permission based configurable 'Death Chests' that will store items upon an untimely demise - or be the prize of the PVP victor!
- /kill and /suicide, as well as the option to override these commands from other plugins to continue the DC Experience
- Permission based configurable 'Keep Xp on death
Installation
- 1) Download
- 2) Put deathcraft.jar in your /plugins folder
- 3) /reload your server, or restart.
- 4) ???
- 5) DEATH!
Known Conflicts
- CreeperHeal You must disable chests in one of the two plugins, or you will end with a looping chest creation.
Commands, Configuration & Permissions
Please see the new Commands, Configuration & Permissions Page!
Bug Reporting and Suggestions
If you find a bug, or have a suggestion, PLEASE open a ticket! I can't fix what I don't know is broken, and I can't add what I don't know is wanted. :)
ToDo
- Togglable allowance of locked chests for popular protection plugins (LWC, Locket)
- Allow Keep item on death permissions, completely bypassing Chests
Tutorials
Portuguese:
Thank you thank you thank you for this latest update :D I was about to lose hope with all these empty piling up chests :( sometimes they'd glitch out and create invisible chests if they died in the same place and the chests stacked within each other.
The timer fixes all of this. Thank you! :D
@bounce_raff
If you want to drop every time, You could set it to 100. Whatever it's set to is the % of the drop. Then you can modify it with the loot bonus settings.
@raum
I suppose I should clarify a little bit, what is a good maximum value to ensure a head drop every time?
@bounce_raff
Whatever you set them to in the config. Min value is 0. Max is what you set.
@Icefang23
What is killing the players with this occurs? The only time it pops up is when the plugin can't find the actual cause of death. The only reason it shouldn't be able to find the cause of death is if an outside plugin is doing the killing.
Also, in the future, create a ticket of bug reports, as to not spam the comments with info that most folks won't need. ;) Thanks!
I'm wondering, what is the scale for the head drop values? like min and max?
i noticed for a wile that my custom death messages stopped appearing as well and every time someone dies this error appears: 20:57:35 [SEVERE] Could not pass event PlayerDeathEvent to deathcraft v1.9 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.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_6_R2.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:344) at net.minecraft.server.v1_6_R2.EntityPlayer.die(EntityPlayer.java:307) at org.bukkit.craftbukkit.v1_6_R2.entity.CraftLivingEntity.setHealth(CraftLivingEntity.java:79) at org.bukkit.craftbukkit.v1_6_R2.entity.CraftLivingEntity.setHealth(CraftLivingEntity.java:476) at com.gmail.matthewkeating007.Troll.Troll.onCommand(Troll.java:280) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:191) at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:523) at com.sk89q.worldedit.bukkit.WorldEditListener.onPlayerCommandPreprocess(WorldEditListener.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.v1_6_R2.PlayerConnection.handleCommand(PlayerConnection.java:954) at net.minecraft.server.v1_6_R2.PlayerConnection.chat(PlayerConnection.java:880) at org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer.chat(CraftPlayer.java:240) at de.czymm.ServerSigns.tasks.CommandTask.run(CommandTask.java:75) at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:522) at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226) at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) Caused by: java.lang.NullPointerException at com.ivalicemud.deathcraft.Listeners.DeathMessage(Listeners.java:200) at com.ivalicemud.deathcraft.Listeners.onPlayerDeath(Listeners.java:137) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 31 more 20:57:35 [SEVERE] Could not pass event PlayerDeathEvent to deathcraft v1.9 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.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_6_R2.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:344) at net.minecraft.server.v1_6_R2.EntityPlayer.die(EntityPlayer.java:307) at org.bukkit.craftbukkit.v1_6_R2.entity.CraftLivingEntity.setHealth(CraftLivingEntity.java:79) at org.bukkit.craftbukkit.v1_6_R2.entity.CraftLivingEntity.setHealth(CraftLivingEntity.java:476) at com.gmail.matthewkeating007.Troll.Troll.onCommand(Troll.java:280) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:191) at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:523) at com.sk89q.worldedit.bukkit.WorldEditListener.onPlayerCommandPreprocess(WorldEditListener.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.v1_6_R2.PlayerConnection.handleCommand(PlayerConnection.java:954) at net.minecraft.server.v1_6_R2.PlayerConnection.chat(PlayerConnection.java:880) at org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer.chat(CraftPlayer.java:240) at de.czymm.ServerSigns.tasks.CommandTask.run(CommandTask.java:75) at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:522) at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226) at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) Caused by: java.lang.NullPointerException at com.ivalicemud.deathcraft.Listeners.DeathMessage(Listeners.java:200) at com.ivalicemud.deathcraft.Listeners.onPlayerDeath(Listeners.java:137) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
Can you fix this asap?
@raum
Alrighty! Thank you very much :D I just want to say I'm impressed with how fast you got back to me! I also spent hours trying to find a death plugin that fits my needs, so thank you for also keeping this updated. I think the only things I kinda wish this had was perhaps it's own protection toggle, cause LWC is a bit buggy at the moment. I also really don't need all the bells and whistles that lwc comes with. Just a simple chest lock players can toggle on or off if they want people to be able to loot their chests as well as some sort of return to death chest command so that I don't have to give them perms to /back. That way they can ONLY go back to their chest. However, if this isn't possible no worries, this plugin has still been the best for me :D Thank you!
@Kirstiana
I have not used Demigods - however based on the error, it can theoretically be prevented/worked around ... I would need to install Demigods and see exactly hwo it's killing folks, though. The error message is that it's not finding the cause of damage. ;)
I actually just ran into a bug myself, but I don't think it's your plugins doing, but I was curious if it was possible it could be fixed on your end. I've noticed it with all of the death type plugins I've tried. It seems to conflict with Demigods I think... I dunno. But is it possible that when someone dies due to something involving demigods, that death plugins don't recognize how they're dying? I've already asked the Demigods dev and he said it doesn't seem to be on his end, that there's something calling to a null event. Maybe you might be able to help me understand it? He said it may be a bug with Bukkit itself. Here's the error message:
@Kirstiana @CptnSmonge
Aaaaah, I see I see ..... my bad .... how the hell did I manage to put deathchest instead of deathcraft for all the permissions ... no wonder people kept saying it was broken :P deathcraft.* is indeed correct. I'll update the page.
@raum
I believe what they're saying is that the permission nodes you have listed above say "deathchest. " rather than "deathcraft. " and when he changed it to say deathcraft from deathchest... it started working correctly :)
Edit: And I can confirm this as well. The perms you have listed above should be deathcraft.*
@CptnSmonge
Not quite sure what you're reporting ... When you used deathcraft.chest.large.free, it worked as intended? ... I'm semi confused.
I think I found a typo in the permission nodes. None of them worked as issued here, but when changed to deathcraft.chest.large.free or any of the nodes in the permission file actual deathchests were indeed dropped as opposed to dropping the inventory altogether as it tended to do in the Nether and End.
Excellent death/inventory plugin. Very anxious to see integration with LWC and Lockette down the line.
@oppyu
DeathCraft makes it's own /suicide command so that it can control the messages. It's damage type 'Suicide' . You should be able to add it via /dc add, like any other damage type.
Would it be possible to use this plugin to edit the 'Player took their own life' message that comes up when someone uses /suicide?
Finally, a plugin to replace deathtpplus and which is actually updated
@raum
Thanks, looking forward to it.
@JLLBEE
Negative, there is not currently. I will add it to a new version - howeever, this is only an issue if they have the chest.*.free permission.
@tjjerome
Also not at this time. Todo list. Future version, etc. :)
is there a way to NOT spawn a deathchest if the player has no inventory?
is there a command for admins to just spawn the head of any player?