Inactive [INACTIVE][INFO] HeroicDeath v1.11.2: Customizable server broadcasts on player death [1185]

Discussion in 'Inactive/Unsupported Plugins' started by SquallSeeD31, Feb 2, 2011.

  1. Offline

    SquallSeeD31

    HeroicDeath - Player Death Notification Plugin (v1.11.2)
    Download HeroicDeath v1.11.2 [CraftBukkit 1174+]
    Download HeroicDeath v1.9.1 [CraftBukkit 1035~1173]
    Download HeroicDeath v1.8.2 [CraftBukkit 561~1034]
    Download HeroicDeath v1.6.1 [CraftBukkit 349~560]
    Download HeroicDeath v1.3.1 [CraftBukkit 348-]
    Latest Jar Only | In Development Jar

    COMPATIBILITY WARNING
    Due to API changes, if you are not using the latest Recommended Build of CraftBukkit, DO NOT download the latest build of HeroicDeath. I have provided links to all legacy versions of HeroicDeath based on which CraftBukkit versions they support.

    CraftIRC Integration
    Do you use CraftIRC? Do you want HeroicDeath to send its death messages to your IRC channel? Xon has developed a helper plugin to do just that! I do not maintain or test this plugin, but I am happy to endorse it and link it for any CraftIRC/HeroicDeath users who want to use both together.

    https://github.com/Xon/HeroicDeathToCraftIRC/downloads

    JSONAPI Integration
    Xon has ALSO developed a helper plugin that pushes HeroicDeath messages to JSONAPI, allowing server admins to easily procure deaths via anything capable of reading a JSON string. Thanks, Xon!

    https://github.com/downloads/Xon/HeroicDeathToJSONAPI/HeroicDeathToJSONAPI.jar

    Features
    • Broadcast cause of death when a player dies
    • Shows who killed whom in PvP and with what item
    • Shows which kind of monster was responsible for eating a player
    • Optionally shows which world they were killed in!
    • Define an unlimited (within reason) number of custom messages based on cause of death, and a random message will be chosen
    • Log deaths to a configurable file, including timestamp and location of death!
    • Send messages on a per-world basis or to the whole server, configure which worlds should get messages and which shouldn't!
    • Define the text color to be used for the message, the player(s) involved, and the "murder weapon" (for PvP deaths)
    • Customize item names to be displayed for PvP deaths (Ex. "Excalibur" instead of "Gold Sword")
    • Supports items with durability! (wood, coal, dye, wool)
    • Item list doesn't need to be updated for future Minecraft patches! (If an item is not defined in the items file, the name of its Material will be prettified and used by default)
    • Supports following causes of death (all lines below the :Tag will be treated as messages for that type of death):
      Code:
      :Drown
                          :Cactus
                          :Fire
                          :Explosion
                          :Creeper
                          :Ghast
                          :Slime
                          :Zombie
                          :PigZombie
                          :Spider
                          :Skeleton
                          :Giant
                          :Wolf
                          :Enderman
                          :CaveSpider
                          :Silverfish
                          :Chicken
                          :Cow
                          :Pig
                          :Sheep
                          :Squid
                          :Fall
                          :PVP
                          :Void
                          :Lava
                          :Other
                          :Suffocation
                          :Dispenser
                          :Lightning
                          :Suicide
                          :Starvation
    Screenshot






    [​IMG]

    Installation
    1. FAST INSTALL: Drop the JAR in your plugins directory and reload plugins; HeroicDeath will automatically create default files. If you want to edit them before your first run:
    2. Download latest .ZIP archive from the link at the top
    3. Extract the archive into your main server directory (archive contains directory mapping)
    4. Open /plugins/HeroicDeath/config.yml and configure to taste
    5. Open /plugins/HeroicDeath/heroicdeath.messages and add/remove/edit death messages
    6. Open /plugins/HeroicDeath/heroicdeath.items and add/remove/edit item names
    7. Save all configuration files and reload your server
    Configuration


    config.yml
    The config file contains default text colors and logging preferences. You can specify the chat colors that will be used for broadcasting a death message, displaying the name of the dead (and their killer if applicable), and displaying the name of the item used to kill the player (for PvP deaths). You can now also choose whether or not to log death data, death messages, and a few formatting choices for your logs.

    This file is saved in the YAML format, so please be sure to maintain the formatting and change only the element values.
    Default configuration:

    Show Spoiler
    Code:
    # HeroicDeath Configuration
    # Messages are defined in heroicdeath.messages
    # Items (for PvP kills) are defined in heroicdeath.items
    # This file is for configuration of colors, log preferences and localized mob names
    ## Color options
    ## message: Text color of death notifications, wrapped around names/item.
    ## name: Color for the name of victim and killer.
    ## item: Color for the name of the item used in a PvP death.
    #Color is defined according to the Bukkit enum ChatColor
    #Acceptable entries:
    ##BLACK
    ##DARK_BLUE
    ##DARK_GREEN
    ##DARK_AQUA
    ##DARK_RED
    ##DARK_PURPLE
    ##GOLD
    ##GRAY
    ##DARK_GRAY
    ##BLUE
    ##GREEN
    ##AQUA
    ##RED
    ##LIGHT_PURPLE
    ##YELLOW
    ##WHITE
    #
    #If color entered is inappropriate, HeroicDeath will default to the following values:
    ##message: RED
    ##name: DARK_AQUA
    ##item: GOLD
    colors:
        message: RED
        name: DARK_AQUA
        item: GOLD
    
    #Logging Preferences:
    ##data: true to log a serialized object representing all the relevant information associated with a death
    ##messages: true to log death messages (as output to the server) to a separate file
    ##time: Whether or not to timestamp messages (if logging messages), and what timestamp format to use for data/messages
    ###stamp: true to timestamp messages
    ###format: Uses format strings from Java SimpleDateFormat.  Read all here: http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html
    ##files: Filenames to store data/messages in.  A server admin could ostensibly change this value daily/weekly/monthly for collection of timed logs
    ###data: Data storage filename
    ###messages: Messages storage filename
    log:
        data: true
        messages: true
        time:
            stamp: true
            format: MM/dd/yyyy HH:mm:ss z
        files:
            data: death_data.log
            messages: death_messages.log
    
    #Event Support:
    ##If you only want HeroicDeath to send its custom event for other plugins to pick up, and NOT send the death message, set this to true.
    events:
        only: false
    
    #Localized monster names:
    ##If you would like to specify custom localization for the mob names, edit the defaults below
    monsters:
        ghast: Ghast
        slime: Slime
        monster: Monster
        zombie: Zombie
        pigzombie: PigZombie
        spider: Spider
        creeper: Creeper
        skeleton: Skeleton
        wolf: Wolf
        unknown: Unknown
        giant: Giant
    #Options
    ##useDisplayName: Set to true if you want HeroicDeath to display the player's display name instead of their fixed character name.
    ##serverBroadcast: Set to FALSE if you want HeroicDeath to only broadcast its messages in the world they belong to.
    ##worlds: Lists of quiet/loud worlds for broadcast targeting. NOTE: World names are case-sensitive.
    ###quiet: Worlds listed here will NEVER receive ANY HeroicDeath broadcasts.
    ###loud: Worlds listed here will ALWAYS receive ALL HeroicDeath broadcasts.
    options:
        useDisplayName: false
        serverBroadcast: true
        worlds:
            quiet: [peacefulworld, noobworld]
            loud: [pvpworld, nether]
    



    heroicdeath.messages
    Contains all the possible messages that can be displayed, sorted by type of death. Every line under a death type label is treated as a message for that death type, until the next label is reached. Labels are prefixed with the colon ":" and are self-explanatory.
    Variables accepted in messages:

    Code:
    %d holds the name of the dead player.
    %a holds the name of the attacking entity (player or monster) for PVP and Monster deaths.
    %i holds the name of the attacking player's current item for PVP deaths.
    %w holds the world the death occurred in
    heroicdeath.items
    This file contains custom names for the item a PvP killer is holding. The names here will be replaced in the %i marker for PvP deaths. If a mapping is not provided for an item in this file, a default name will be used automatically.
    Item Format: NAME:ID:<Optional>DATA
    Item IDs and Data Values may be found on the Minecraft Wiki
    Optional DATA parameter uses hex notation, so purple wool would be "purple wool:35:0xa"

    Localization
    If you have translated heroicdeath.messages into another language and would like to share your translation with the community, let me know! I'd be happy to share it here in the OP for those looking.

    German - By Keav - http://dl.dropbox.com/u/40701071/heroicdeath.messages

    Changelog (Download Full Changelog)
    Version 1.11.2
    • Added 1.8 mobs Enderman, Cave Spider, Silverfish
    • Added passive mobs Chicken, Cow, Pig, Sheep, Squid
    Version 1.11.1
    • Fixed an exception that would occur if the player dies without being damaged first (such as by a rogue plugin)
    Version 1.11.0
    • Added support for MC 1.8.1 death messages (by removing them)
    • Added new MC 1.8.1 items
    • Added support for STARVATION DamageCause
    Version 1.10.0
    • Added support for SUICIDE DamageCause, mainly for the /suicide and /kill default commands.
     
    kahlilnc, Chike, SmartyGeek and 20 others like this.
  2. Offline

    Hunter1638

    Necrolog? This is good thing in Minecraft :D
    Good Plugin!
     
  3. Offline

    Kainzo

    Tested this against 252
     
  4. Offline

    Foolscap

    Thought I'd share my obits as well

    Code:
    :Drown
    
    %d drowned. I have nothing else witty to say, so I instead present you a childish picture of a penis 8==D
    
    %d is sleeping with the fishies
    
    %d took a long walk off a short pier
    
    Oh noes! %d was too stupid to bother and swim :(
    
    :Cactus
    
    %d couldn't avoid the terrifying.. cactus. A stationary object. You should be ashamed of yourself.
    
    %d was killed by a level 90 ninja-cactus. (Trust me, it sounds more awesome than the truth.)
    
    Shame how that cactus killed you %d. I'm sure it was unavoidable, what with it being inanimate and all..
    
    %d poked a cactus, but the cactus poked back
    
    :Fire
    
    %d got burnt to a crisp. Toasty!
    
    %d forgot how to stop, drop and roll.
    
    %d.. %d.. %d is on fire. We don't need no water let the motherf*cker burn!
    
    :Explosion
    
    %d apparently has an explosive personality. Dyn-o-Mite!
    
    Might want to double check the fuse length next time %d. KA-BOOM!
    
    TNT, once again helping along natural selection. Sorry %d.
    
    :Creeper
    
    %d failed to hear the hissssssssssssssssssss.
    
    %d hugged a creeper. Creepers don't like hugsssssss.
    
    %d <3's creepers!
    
    :Fall
    
    %d fell to their death
    
    %d just discovered they cannot fly like Superman. *splat*
    
    %d, meet gravity. Gravity, meet %d.
    
    You do know the shift key prevents you from falling off blocks and dying, right %d?
    
    :PVP
    
    %a killed %d wielding %i. By the time you read this %a is most likely banned.
    
    :Monsters
    
    %d was killed by an angry %a.
    
    :Lava
    
    %d got into a wicked brawl with lava. Lava 1 - %d 0
    
    %d became obsidian.
    
    %d did their best Terminator impression and dissolved themselves in lava.
    
    %d just helped to reaffirm that lava is indeed hot.
    
    :Other
    
    %d was killed by Herobrine. Wait, what?
    
    :Suffocation
    
    %d has suffocated. Seriously? Killed by suffocation? LOL
    
    %d broke the first rule and mined above them.. gravel was their reward.
    Should note, haven't tested them all yet. I've also tried to make them gender neutral, so forgive any improper grammar. :p
     
  5. Offline

    8e8

    @SquallSeeD31
    Why can't you detect who shot the arrow? With my testin getDamager() worked fine. Although, I remember only testing that with Skeletons.
     
  6. Offline

    SquallSeeD31

    Well, for cases where an /entity/ has instantiated the projectile, it works fine, and in fact is how I do it for Skeletons (among an instanceof check as well of course).

    A Dispenser is not an Entity though, and if you look in the EntityArrow class of net.minecraft.server you can even see where the Bukkit team has commented that handling non-entity shooters is "TODO", and returns null.
     
  7. Offline

    Kainzo

    *flex* best death message plugin, ever.
     
  8. Offline

    HotelErotica

    Works as advertised, Does what is needed with no extra bells and whistles. Love it! [​IMG]
     
  9. Offline

    Mhalkyer

    @SquallSeeD31 Can you add a complete list of all supported deaths to the OP please? As someone who's updating this plugin I don't know what the new :death's are. Here's an example of what I mean:

    Supported :death Messages
    Code:
    :Drown
    :Cactus
    :Fire
    :Explosion
    :Creeper
    :Fall
    :PVP
    :Lava
    :Other
    :Suffocation
    :Dispenser
     
  10. Offline

    SquallSeeD31

    A fair concern! Thanks and added. Only the :dispenser tag has been added since I released it, but I absolutely agree that it's good to keep an updated list, especially if more conditions are added in the future. =)
     
  11. Offline

    Mhalkyer

    =) Thanks!
     
  12. Offline

    lawina

    Good job!
     
  13. Offline

    NobodyOfNaught

    Feature Request:
    Could you add a way to log the location of the death to a file? I don't want to broadcast the location info, but my server has a no killing in peoples homes rule, which is hard to enforce. However if there was a log that showed who killed the person and where we could check if the death actually occurred in someone's home.
     
  14. Offline

    SquallSeeD31

    Added in version 1.3.0, updated the OP and changelog with config instructions.
     
  15. Offline

    fffizzz

    craftbukkit 300

    Code:
    Feb 10, 2011 7:17:26 PM org.bukkit.plugin.SimplePluginManager callEvent
    SEVERE: Could not pass event ENTITY_DEATH to HeroicDeath
    java.lang.NullPointerException
            at com.bukkit.squallseed31.heroicdeath.HeroicDeathListener.onEntityDeath(HeroicDeathListener.java:249)
            at org.bukkit.plugin.java.JavaPluginLoader$40.execute(JavaPluginLoader.java:328)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:60)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:214)
            at net.minecraft.server.EntityPlayer.f(EntityPlayer.java:99)
            at net.minecraft.server.EntityLiving.a(EntityLiving.java:387)
            at net.minecraft.server.EntityHuman.a(EntityHuman.java:288)
            at net.minecraft.server.EntityPlayer.a(EntityPlayer.java:125)
            at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:616)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:575)
            at net.minecraft.server.Packet3Chat.a(SourceFile:24)
            at net.minecraft.server.NetworkManager.a(SourceFile:232)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:104)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:317)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:232)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    
    if its a change, ill wait, no big deal, just reporting..
     
  16. Offline

    SquallSeeD31

    Thanks for the bug report! This has been fixed and tested, download the latest JAR to update.

    The issue was caused when I added death logging, because I changed the storage of deaths from a simple string to a complex object. So if a user dies under mysterious conditions, and there's accordingly no record of their death, the program throws the null pointer exception you saw when it attempts to call a method of an object that doesn't exist.

    So hopefully a rare situation to encounter anyway, but it's fixed in 1.3.1. Thanks again!
     
  17. Offline

    Mr.Frog

    So umm... I installed it correctly and everything, latest version.
    Yet when I run bukkit I'm getting this...

    Code:
    2011-02-11 11:51:48 [INFO] Preparing level "world"
    2011-02-11 11:51:48 [INFO] Preparing start region
    Preparing spawn area: 28%
    Preparing spawn area: 48%
    Preparing spawn area: 77%
    Feb 11, 2011 11:51:52 AM org.bukkit.craftbukkit.CraftServer loadPlugins
    SEVERE: ENTITY_DAMAGEDBY_PROJECTILE (Is it up to date?)
    java.lang.NoSuchFieldError: ENTITY_DAMAGEDBY_PROJECTILE
            at com.bukkit.squallseed31.heroicdeath.HeroicDeath.onEnable(HeroicDeath.
    java:58)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:133)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
    .java:269)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
    r.java:173)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:41)
            at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:153)
            at net.minecraft.server.MinecraftServer.c(MinecraftServer.java:140)
            at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:104)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:177)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    2011-02-11 11:51:52 [INFO] Done! For help, type "help" or "?"
     
  18. Offline

    SquallSeeD31

    That's interesting; which version of CraftBukkit are you running?
     
  19. Offline

    Mr.Frog

    302 I believe.
    ...Just running the server again actually i didn't get that error... maybe it was something I did wrong before.
     
  20. Offline

    SquallSeeD31

    Well, if it happens again let me know, but based on the error message it's as if it's implying that your server doesn't recognize the "ENTITY_DAMAGEBY_PROJECTILE" event, which would be highly unusual for any newer build of bukkit.
     
  21. Does it support iChat? So it doesn't display the [tag], but displays the correct colors of players :)
     
  22. Offline

    SquallSeeD31

    Not presently, but I can look into that for a future update if there's demand for it. If there's a specific implementation you're looking for, feel free to describe it. My server doesn't use iChat, so I'm not personally familiar with what you're talking about.
     
  23. Offline

    TJ8

    I get this error when I try and die to see if a message pops up which it doesn't

    12/02/2011 2:42:48 PM org.bukkit.plugin.SimplePluginManager callEvent
    SEVERE: Could not pass event ENTITY_DAMAGEDBY_ENTITY to HeroicDeath
    java.lang.NoClassDefFoundError: org/bukkit/entity/PigZombie
    at com.bukkit.squallseed31.heroicdeath.HeroicDeathListener.getAttackerNa
    me(HeroicDeathListener.java:81)
    at com.bukkit.squallseed31.heroicdeath.HeroicDeathListener.onEntityDamag
    eByEntity(HeroicDeathListener.java:167)
    at org.bukkit.plugin.java.JavaPluginLoader.callEvent(JavaPluginLoader.ja
    va:217)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:199)
    at net.minecraft.server.Explosion.a(Explosion.java:138)
    at net.minecraft.server.World.a(SourceFile:1302)
    at net.minecraft.server.WorldServer.a(WorldServer.java:99)
    at net.minecraft.server.World.a(SourceFile:1296)
    at net.minecraft.server.EntityCreeper.a(SourceFile:77)
    at net.minecraft.server.EntityCreature.d(SourceFile:34)
    at net.minecraft.server.EntityLiving.o(SourceFile:567)
    at net.minecraft.server.EntityMobs.o(EntityMobs.java:30)
    at net.minecraft.server.EntityLiving.b_(SourceFile:205)
    at net.minecraft.server.EntityMobs.b_(EntityMobs.java:34)
    at net.minecraft.server.EntityCreeper.b_(SourceFile:48)
    at net.minecraft.server.World.a(SourceFile:1116)
    at net.minecraft.server.WorldServer.a(WorldServer.java:41)
    at net.minecraft.server.World.f(SourceFile:1092)
    at net.minecraft.server.World.c(SourceFile:1071)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:260)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:197)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    Caused by: java.lang.ClassNotFoundException: org.bukkit.entity.PigZombie
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.
    java:29)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 22 more

    Could this be because I am putting caps in my Messages???
     
  24. Offline

    SquallSeeD31

    What build of CraftBukkit are you using? I just tested Pig Zombies in bamboo build numbers 211 and 302 without issue. The stack trace you posted is saying that it can't find the Pig Zombie class, which suggests to me that whatever version of CraftBukkit you're using either hasn't implemented it yet, or subsequently broke it.
     
  25. Offline

    Daveyo

    can you set an option to overwrite other death messages. Right now i have another addon that's attempting to say 'user has died from __' and usually it says null, or the wrong source. Basically it's playing 2, and i cant figure out for the life of me which one it is
     
  26. Offline

    SquallSeeD31

    Unfortunately the ENTITY_DEATH event can't be "cancelled", and even if it could you'd be at the mercy of other plugin developers to choose whether or not to respect the event's cancellation. The Bukkit philosophy for events is that EVERY plugin that is listening for them gets to hear them, so there's really no good universal way to write a plugin that *forces* something to not happen.

    With that being said, the method by which HeroicDeath collects information about a death shouldn't interfere with another plugin, so I think the other one may be having an issue. If you know which plugin it is, I may be able to at least take a look at it for you and see if I can recommend a fix. What you're asking is not plausible within the Bukkit framework right now though, sorry. =(
     
  27. Offline

    Dharkk

    Had the same issue with Stats + Achievements but luckily you can disable the death messages those try to do.

    Btw, love the plugin :D Unfortunately I've been the one to die the most since I installed it so I'm getting heckled a bit :p
     
  28. Offline

    Daveyo

    omg thank you for locating it. the stats plugin has a death notify, what a wierd thing to have for that addon. THANKS
     
  29. Offline

    Thonixx

    Important information:

    For any reason HeroicDeath doesn't work with the plugin HomeLite, so I used SimpleHome instead of HomeLite.
    Great work dude, I love this one :)
     
  30. Offline

    wilsonc91

    Cant seem to get this plugin to load :(
     
  31. Offline

    Kainzo

    We fully support HeroChat - also - this works against build 325.
     

Share This Page