[TP/CHAT] DeathTpPlus v1.86 - DeathNotify + DeathTP + Streaks + DeathLog [740]

Discussion in 'Inactive/Unsupported Plugins' started by lonelydime, Jan 31, 2011.

  1. Offline

    lonelydime

    DeathTpPlus

    Version: v1.86

    Features:

    Works with Permissions 2.5+ or GroupManager!

    DeathTP
    • Use /deathtp to teleport back to where you died.
    • Optional: Charge a player an item to teleport (must be in the player's hand).
    • Optional iConomy support.
    DeathNotify
    • Customizable messages for every kind of death.
    • Supports multiple messages per kind of death, chosen randomly when someone dies.
    • Custom colors per message.
    • PvP messages that show the attacker as well as what they killed with. Item names have been cleaned up to look pretty.
    • Optional: Show tombstones where someone died and how they died.
    • Optional CraftIRC support
    Streaks
    • Show a custom message when someone has killed a custom set of people or died a custom amount of times.
    • Custom colors per streak message.
    DeathLogs
    • /deaths - shows the total number of times you've died.
    • /deaths <username> - shows how many times <username> has died.
    • /deaths <username> <method> - shows how many times <username> has died by fall, lava, creeper, etc. <method> can also be a user name.
    • /kills - shows the total number of times you've killed someone (another player).
    • /kills <username> - shows how many times <username> has killed anyone.
    • /kills <username> <username2> - shows how many times<username> has killed <username2>.
    Don't want one of the features? No worries! Just disable it in the config file and it'll be like that feature isn't in the plugin at all! The file IOs aren't called and neither are the methods used for those features. Worried about performance? Don't be!

    Quick Links:
    Install:
    • Upload the DeathTpPlus.jar file into your plugins directory.
    • Upload the config.yml file to plugins/DeathTpPlus/
    • If you do not upload config.yml, the server will create it for you, but you must populate it.
    Permissions:

    Code:
    deathtpplus.deathtp - this is for the /deathtp command
    deathtpplus.streak - this is for the /streak command
    deathtpplus.deaths - this is for the /deaths command
    deathtpplus.kills - this is for the /kills command
    
    Todo:
    • Implement banning on death for a specific amount of time.
    • Add option for admin only destruction of RIP signs.
    • Waiting for bukkit to add owner methods to wolves to add wolves to pvp messages.
    • Make death signs show on the next available air block.
    Changelog:
    Version 1.86
    • Added support for lightning
    • Added support for iConomy 5
    Version 1.85
    • Fixed the nagging warning so iConomy works properly again.
    • Added support for wolves.
    Show Spoiler

    Version 1.84
    • Replaced depreciated methods to work with CB602.
    Version 1.83
    • Allow the config.yml to use & instead of §
    Version 1.82
    • Added VOID type damage.
    Version 1.81
    • Removed debug code.
    • Changed teleport to find the next highest AIR block for save deathtp'ing
    • Removed /suicide since it's worthless.
    Version 1.8
    • Fixed slime death detection.
    • Added deathlog.txt, keeps a record of how many times a player dies or kills and how they died/who they killed. (Can be turned off or on in the config)
    • Added a message for iConomy users to let the user know how much deathtp just cost them.
    • Fixed turning deathnotify off didn't really turn it off.
    Version 1.77
    • CraftIRC support (tested against beta 2.0)
    Version 1.76
    • iConomy support (tested against iConomy 4.4)
    Version 1.75
    • Fixed the suffocation handle.
    Version 1.74
    • Converted to onCommand from playerCommand.
    Version 1.73
    • Added optional support for GroupManager
    Version 1.72
    • Updated the damage hook to work with newer versions of bukkit.
    • Got rid of the stupidly long constructor.
    Version 1.71
    • Removed reference to com.bukkit* and replaced with com.lonelydime*
    • Added additional death notify message for bare fists only (in response to the reddit post), "a bare fist" didn't make much sense.
    Version 1.7
    • Fixed renaming of file creating/looking in wrong folder. (Note, you still have to populate config.yml)
    • Added tombstone signs with death messages.
    Version 1.6
    • Added permissions support
    • Plugin initialization now prints in server.log
    Version 1.5
    • Removed properties file in favor of config.yml.
    • Removed the need for killstreak.txt, deathstreak.txt and deathtpplus.properties.
    • Removed Properties.java from the package.
    • Numerous performance enhancements.
    • Added support for multiple messages.
    • Added support for custom colors per message.
    • Changed item names to prettier names for PvP kills.
    • Disabled file IO if the plugin feature is disabled in the config file (performance).
    Version 1.4
    • Fixed instances of Ghasts, Pig Zombies and Suffocate triggers not firing.
    • Added /streak and /streak <player> to check killing streaks.
    • Added an optional charge for teleporting (item has to be in user's hand to teleport. The item code is set up in the properties file).
    Version 1.3
    • Added Killing/Death sprees.
    • Converted large amounts of strings to hashmaps (performance)
    • Rearranged file loads to /reload will reload the config files.
    Version 1.2
    • Added ability to turn off /deathtp command or deathnotify messages via properties file.
    Version 1.1
    • Added properties file to customize the text displayed when someone dies.
    • Added types of death instead of just showing someone died.
    Version 1.0
    • Public Release

    Example config.yml (Borrowed from @Etalyx)
    Show Spoiler

    # ----- Standard plugin features
    # Show the death messages on the server
    show-deathnotify: 'true'

    # Allow players to access the deathtp command
    allow-deathtp: 'true'

    # Show kill or death streaks read in from killstreak.txt and deathstreak.txt
    show-streaks: 'true'

    # Item ID of the item you must have in your hand to teleport. Will remove 1 of these when the command is given. Leave 0 for free teleports.
    charge-item: 0

    # Show sign tombstones upon death
    show-sign: 'false'

    # iConomy
    deathtp-cost: 10

    # CraftIRC
    deathtp-tag: 'all'

    #Deathlogs
    allow-deathlog: 'true'

    # ----- Death Messages

    # Must contain at least 1 line. If there are more, it will appear randomly when a person dies.
    # %n for player who died
    # %a name of player who attacked in pvp deaths
    # %i for item a player was using to kill someone else
    #
    # Colors
    #
    # §0 Black
    # §1 Navy
    # §2 Green
    # §3 Blue
    # §4 Red
    # §5 Purple
    # §6 Gold
    # §7 LightGray
    # §8 Gray
    # §9 DarkPurple
    # §a LightGreen
    # §b LightBlue
    # §c Rose
    # §d LightPurple
    # §e Yellow
    # §f White

    fall:
    - '§4%n tripped and fell...down a cliff.'
    - '§4%n leapt before looking.'
    - '§4%n forgot to bring a parachute!'
    - '§4%n learned to fly...briefly...'
    - '§4%n felt the full effect of gravity.'
    - '§4%n just experienced physics in action.'
    - '§4%n fell to his death.'
    - '§4%n forgot to look out below!'
    - '§4%n got a little too close to the edge!'
    - '§4%n, gravity is calling your name!'
    - '§4%n faceplanted into the ground!'
    - '§4%n yells, "Geronimo!"....*thud*'
    - '§4What goes up must come down, right %n?'

    drowning:
    - '§4%n has drowned.'
    - '§4%n has become one with the ocean!'
    - '§4%n sunk to the bottom of the ocean.'
    - '§4%n went diving but forgot the diving gear!'
    - '§4%n needs swimming lessons.'
    - '§4%n''s lungs have been replaced with H20.'
    - '§4%n forgot to come up for air!'
    - '§4%n is swimming with the fishes!'
    - '§4%n had a surfing accident!'
    - '§4%n tried to walk on water.'
    - '§4%n set a record for holding breath underwater.'

    fire:
    - '§4%n burned to death.'
    - '§4%n has been set on fire!'
    - '§4%n is toast! Literally...'
    - '§4%n just got barbequed!'
    - '§4%n forgot to stop, drop, and roll!'
    - '§4%n is extra-crispy!'
    - '§4%n spontaneously combusted!'
    - '§4%n put his hands in the toaster!'
    - '§4%n just got burned!'

    fire_tick:
    - '§4%n burned to death.'
    - '§4%n has been set on fire!'
    - '§4%n is toast! Literally...'
    - '§4%n just got barbequed!'
    - '§4%n forgot to stop, drop, and roll!'
    - '§4%n likes it extra-crispy!'
    - '§4%n spontaneously combusted!'
    - '§4%n put his hands in the toaster!'
    - '§4%n just got burned!'

    lava:
    - '§4%n became obsidian.'
    - '§4%n was caught in an active volanic eruption!'
    - '§4%n tried to swim in a pool of lava.'
    - '§4%n was killed by a lava eruption!'
    - '§4%n was forged into obsidian by molten lava.'
    - '§4%n took a dip in the wrong kind of pool!'
    - '§4%n found out how to encase himself in carbonite.'
    - '§4%n, the floor is lava! The floor is lava!'

    creeper:
    - '§4%n was creeper bombed!'
    - '§4A creeper exploded on %n!'
    - '§4A creeper snuck up on %n!'
    - '§4A creeper tried to make love with %n...mmm.'
    - '§4%n just got the KiSSssss of death!'
    - '§4%n tried to hug a creeper!'
    - '§4%n is frowning like a creeper now!'

    skeleton:
    - '§4A skeleton shot %n to death!'
    - '§4A%n was on the wrong end of the bow. '
    - '§4A%n has a skeleton in the closet...'
    - '§4%n, strafe the arrows! Strafe the arrows!'
    - '§4A skeleton just got a headshot on %n!'

    spider:
    - '§4%n is all webbed up.'
    - '§4%n got trampled by arachnids!'
    - '§4%n got jumped by a spidah!'
    - '§4Spiders just climbed all over %n!'
    - '§4%n forgot spiders could climb!'

    zombie:
    - '§4%n was punched to death by zombies!'
    - '§4%n was bitten by a zombie!'
    - '§4%n fell to the hunger of the horde!'
    - '§4%n Hasn''t played enough L4D2!'
    - '§4%n couldn''t run faster than the zombie!'

    pvp:
    - '§4%a killed %n using a(n) %i!'
    - '§4%a slays %n with a %i!'
    - '§4%a hunts %n down with a %i!'
    - '§4%n was killed by a %i wielding %a!'
    - '§4%a leaves %n a bloody mess!'
    - '§4%a uses a %i to end %n''s life!'
    - '§4%n collapses due to %i attacks from %a!'
    - '§4%n is now a bloody mess thanks to %a''s %i!'
    - '§4%a beats %n with a %i!'
    - '§4%n was killed by %a''s %i attack!'
    - '§4%a defeats %n with a %i attack!'
    - '§4%a raises a %i and puts and end to %n''s life!'
    - '§4%a took out %n with a %i!'
    - '§4%n was victimised by %a''s %i!'
    - '§4%n was eliminated by %a''s %i!'
    - '§4%a executes %n with a %i!'
    - '§4%a finishes %n with a %i!'
    - '§4%a''s %i has claimed %n as another victim!'
    - '§4%n lost a savage duel to %a!'
    - '§4%a has beaten %n to a pulp!'
    - '§4%a pwns %n in a vicious duel!'
    - '§4Score %a 1 - %n 0!'
    - '§4%a has defeated %n in battle!'
    - '§4%n has been slain by %a!'
    - '§4%a emerges victorious in a duel with %n!'
    - '§4%n has been pwned by %a!'
    - '§4%n was killed by %a!'
    - '§4%n was dominated by %a!'
    - '§4%n was fragged by %a!'
    - '§4%n needs more practice and was killed by %a!'
    - '§4%n was beheaded by %a!'

    pvp-fists:
    - '§4%a pummeled %n to death'
    - '§4%a crusted %n with their bare hands'

    block_explosion:
    - '§4Careful %n, TNT goes boom!'
    - '§4%n was last seen playing with dynamite.'
    - '§4%n exploded into a million pieces!'
    - '§4%n cut the wrong wire!'
    - '§4%n has left his (bloody) mark on the world.'
    - '§4%n was attempting to exterminate gophers with dynamite!'
    - '§4%n was playing landmine hopscotch!'
    - '§4%n stuck his head in a microwave!'

    contact:
    - '§4%n got a little too close to a cactus!'
    - '§4%n tried to hug a cactus!'
    - '§4%n needs to be more careful around cactuses!'
    - '§4%n feels the wrath of cactusjack!'
    - '§4%n learns the results of rubbing a cactus!'
    - '§4%n died from cactus injuries!'
    - '§4%n poked himself with a cactus...and died.'
    - '§4%n ran into some pointy green stuff that wasn''t grass.'
    - '§4%n was distracted by a tumbleweed and died by cactus.'

    ghast:
    - '§4%n was blown to bits by a ghast.'
    - '§4 Those aren''t babies you hear, %n!'
    - '§4%n was killed by a ghostly hadouken!'
    - '§4%n just got exploded by a fireball!'
    - '§4%n got too comfy in the Nether!'

    slime:
    - '§4A slime found %n. The slime won.'
    - '§4%n just was playing with slime. The slime ain''t happy.'

    suffocation:
    - '§4%n suffocated.'
    - '§4%n was looking up while digging!'
    - '§4%n choked to death on earth!'
    - '§4%n choked on a ham sandwich'

    pigzombie:
    - '§4%n lost a fight against a zombie pig.'
    - '§4%n, touching a zombie pig is never a good idea.'
    - '§4%n, looked at a pigzombie the wrong way.'

    void:
    - '§4%n fell into The Void, never to be heard from again.'

    wolf:
    - '&4%n became a wolf''s lunch.'

    lightning:
    - '&4%n was struck down by Zeus'' bolt.'

    unknown:
    - '§4%n died from unknown causes.'
    - '§4%n has imploded into nothingness'
    - '§4%n has been vaporized'
    - '§4%n died from explosive diarrhea'
    - '§4%n was killed by Chuck Norris'
    - '§4%n was running with scissors...now he runs no more'
    - '§4%n was hit by a falling piano'
    - '§4%n was assasinated by a shuriken headshot from the shadow'
    - '§4%n was barrel rolling...and died'
    - '§4%n was killed by Cthulhu'
    - '§4%n forgot to wear his spacesuit'
    - '§4%n choked on a ham sandwich'
    - '§4%n died at the hands of ninja assassins'
    # ----- Streaks

    # format <#of kills> <text to display> %n = player getting the message (in this case, the one on a killstreak).

    killstreak:
    - '5:§2[%n] 5 enemies killed! You''re thinning the numbers!'
    - '10:§2[%n] 10 killed! Rampage!'
    - '15:§2[%n] 15 kills! Dominating all kinds of mobs!'
    - '20:§2[%n] 20 kills! Here is your gift card for a killing spree!'
    - '25:§2[%n] So many kills in a row! God Like!'

    # format <#of kills> <text to display> %n = player getting the message (in this case, the one on a deathstreak).

    deathstreak:
    - '5:§b%n has died, like 5 times.'
    - '10:§b%n, craft a sword or something.'
    - '15:§b%n is dead more than alive.'
    - '20:§b%n is just pathetic.'
    - '30:§b%n is clearly playing Minecraft to see what it says when he dies.'

    Reporting Bugs

    If you are reporting a bug, please help me help you. Paste in your config.yml file (in code tags please) and any errors in your console. Also the version of DeathTpPlus you are running (Only the newest version is supported) and your craftbukkit version. Thank you!
     
    Feew, TheDeejay, harakiwi and 3 others like this.
  2. Offline

    WindedDragon

    It worked, but I use Notepad ++ for every thing else so why would it no work for this?
     
  3. Offline

    lonelydime

    I know the § character has been causing problems with some people, that's why I replaced it with &. I'm guessing that was the problem here since there was the
    Code:
    Caused by: unacceptable character #FFFD special characters are not allowed
    error. From my understanding notepad++ was fine to use, personally I use smultron, but that's MacOS :)
     
  4. Offline

    Cool12309

    I looked inside the jar, and inside the plugin.yml, and it says version 1.85

    Code:
    [SEVERE] Nag author: 'lonelydime' of 'DeathTpPlus' about the following: onPluginEnable has been replaced with a new signature, (PluginEnableEvent)
    
    EDIT: However, I do seem to have this in the server log:

    Code:
    [INFO] [DeathTpPlus] version 1.84 by lonelydime is enabled!
    
     
  5. Offline

    snouz

    Could you please develop to 670? everybody seems to upgrade, and I will miss this plugin a lot if I upgrade without it.
     
  6. Offline

    snouz

    Just to let you know: the plugin seems to work fine on 670. death messages show correctly, and /deathtp works fine :)
     
  7. Offline

    Sany_CZ

    Can you fix tombstone position. If someone die in lava, it will spawn there and remov lava, same works for stairs, doors and cactus.
     
  8. Offline

    lonelydime

    I'll look into it, should be easy.
     
  9. Offline

    davcenmt2

    multiworld support would be nice :)
     
  10. Offline

    kahlilnc

    This goes perfectly with the Bounty plugin.
     
  11. Offline

    Kainzo

    Is this updated for 677?

    Feedback:
    Basic cooldown on the /deathtp use
    Also - a way to /deathtp PLAYER as admin/etc
     
  12. Offline

    Skirmisher

    Works fine on 677 for me.
     
  13. Offline

    sintrix

    deathtp caused an eternal error. no idea what that means. everything else is flawless.
     
  14. Offline

    jeffreylec

    Code:
    # ----- Standard plugin features
    # Show the death messages on the server
    show-deathnotify: 'true'
    
    # Allow players to access the deathtp command
    allow-deathtp: 'true'
    
    # Death Logs
    allow-deathlog: 'true'
    
    # Show kill or death streaks read in from killstreak.txt and deathstreak.txt
    show-streaks: 'true'
    
    # Item ID of the item you must have in your hand to teleport. Will remove 1 of these when the command is given. Leave 0 for free teleports.
    charge-item: 0
    
    # Show sign tombstones upon death
    show-sign: 'false'
    
    # iConomy
    deathtp-cost: 5000
    
    # CraftIRC
    deathtp-tag: 'all'
    
    #Deathlogs
    allow-deathlog: 'true'
    Not sure if you knew sir, but there are two entities of 'allow-deathlog'
    Anyway, I don't if you or anyone complained about changing the value to false and it not working.
     
  15. Offline

    Revenger

    Is there a way to output the deaths etc to a webpage?

    Be cool to get a statistics thing showing to users.
     
  16. Offline

    Maxis010

    If your server has FTP then you can write a script to take the death logs and process it
    If anyone wants to explain what the number on the end of the death logs is (I'm guessing number of times player died from this event) then I could sort out a php script for direct processing, it wouldn't have much in the way of formatting though
     
    Revenger likes this.
  17. Offline

    lonelydime

    Code:
    writeline = playername+":"+logtype+":"+deathtype+":"+newrecord;
    
    The log will print out the player name, either kill/death, how they died and the number of times they died that way, or the number of times they killed a person in pvp. So you were right in your assumption :)
     
    Revenger likes this.
  18. Offline

    Revenger

    I don't know much of php and how to scrape external files, so if you could do this that would be a great start and we could format it from there and integrate it into our website.

    As long as it has a list and can sort by each column then its all good for us.

    I found a very basic start to doing what I want using this code from the php reference site but implementation is a issue with columns and sorting:

    Code:
    <?php
    $row = 1;
    if (($handle = fopen("test.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ":")) !== FALSE) {
            $num = count($data);
            echo "<p> $num fields in line $row: <br /></p>\n";
            $row++;
            for ($c=0; $c < $num; $c++) {
                echo $data[$c] . "<br />\n";
            }
        }
        fclose($handle);
    }
    ?>
    
    Notice the : at 1000 which is the separation value.

    The <br />\n is just the break between values which I will still need to find about adding it to a column.

    Hope you don't mind me making a second post but I made a basic finished php page for showing the output with some help from code I found online.

    Link to our deathstats page the page I coded up

    You can get the sorting script here
    Other scripts can be used for sorting the table if you want.

    Entire deathstats.php file.
    Code:
    <script src="sorttable.js"></script>
    
    <?php
    
    $filename = "test.csv"; //Change to your deathtp log's path and filename
    
    $id = fopen($filename, "r"); //open the file
    while ($data = fgetcsv($id, filesize($filename), ":")) //start a loop
    $table[] = $data; //put each line into its own entry in the $table array
    fclose($id); //close file
    
    echo "
    <table class='sortable' border='1' width='700'>\n
      <tr BGCOLOR=#FFFF00>
        <th>Name</th>
        <th>Type</th>
        <th>Death By</th>
        <th>Amount</th>
      </tr>
    ";
    
    foreach($table as $row)
    {
    echo "<tr>";
       foreach($row as $data)
       echo "<td><center>$data</center></td>";
    echo "</tr>\n";
    }
    
    echo "</table>\n";
    
    ?>
    
    Feel free to make it better and if anyone does make it better with player grouping etc please share with us all :D

    @ lonelydime Feel free to add this stats php page to your github if you want so the page can be expanded upon by others etc.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 8, 2016
  19. Offline

    Maxis010

    Nice, this works of off a local file so I'll pinch this and extend it with FTP support as well as php sorting
    If you want I can add a second page which runs through an individual player's deaths

    I'll stick this work on my github from now on
     
  20. Offline

    Revenger

    Sure no problem the more stuff the better :D

    Was thinking of adding it to my github which is empty but I don't know proper coding and this is kinda my extent of php doing little things and small modifications like this.

    Yea its good its on a local file as it works on our system well.

    Eventually I'll implement the page into our site I created with help from another person.

    Send a link to it once its up :D

    Edit: Just updated the link above as Ive integrated it into our site theme.
     
  21. Offline

    Maxis010

    DeathStats

    Well there is the link, I extended your stats.php (thanks for that), moved the $filename = "test.csv"; to config.php along with a load of other crap, added ftp.php so DeathStats can check for and fetch an up to date copy whenever stats.php is loaded


    Planned changes include
    • Add show/hide for pvp kill - Right now they are hidden as kill events always match death events, PVP deaths are still shown
    • Player Specific Pages - Click on a player name and see their PVP kills and all of their deaths
    • Kill Specific Pages - Click on a death type and see how many lives it has claimed
    • Sorting - I'm working on it, just thought I would push this out first
    • Error Busting - Right now there is at least 1 easy way to break the script so that needs to be fixed
    That is about all for now, if anyone has requests then post it here

    @ lonelydime
    Sorry bout this semi-hyjack on your thread
     
  22. Offline

    Revenger

    Great to see what you have done and planned I'm happy the stats file is in good hands now.

    Keep it basic but featured so it can still be used in a template like ours and on other sites :D

    But great work.
     
  23. Offline

    Maxis010

    AFAIK you can use this nugget of code to insert stats.php anywhere, aside from the header row this would make the table follow any CSS formatting rules the page define
    PHP:
    <?php
    include("stats.php");
    ?>
    I will test this out later to be sure as I've had php give me some funny responses with echo and formatting

    EDIT: DeathStats has been updated
    Sorting has been added, To-Do list has been moved in to readme.txt
     
  24. Offline

    _knot_

    Absolutely love this plugin. I would like to request a feature though.
    We use /deathtp with iconomy and when people die I would like a message for them saying: 'You can return to your death point with /deathtp for [x coins]'
     
  25. Testing / tested on :
    709
    714

    Both, without issues.

    Although:

    Suggestion!: Update it so that people can type /leader or another command, which is defined by another permission node, so it can count the top 5 Total Kills by players and print it. :D!
     
  26. Offline

    yourock129

    I duno where to look for everything you asked for but i just dowloaded ur mod, and i have best minecraft.exe and craftbukkit. but it doesnt work. deaths dont change (stays at 0) same for kills, etc... in the config file, i have it all to true that i need. and when i die, it doesnt have a drowning or burning saying being posted and tombstones wont pop up? got a fix for it?
     
  27. Offline

    Samuel Greaves

    This works on 733
     
  28. Offline

    hofec

    Broken with new iConomy v6 API .. throwing few exciptions at start into the my console ..

    RB#740 | DeathTpPlus v.1.85 | iConomy v6
     
  29. Offline

    lonelydime

    Wonderful, I'll take a look later.
     
  30. Offline

    hofec

    Ok thank you :)

    And sorry, i wrote wrong iCo version .. it's actually v5 :D
     
  31. Offline

    Kahl

    When placing tombstones, can you check if the block it is going to be placed in is air? And if not, don't place it. This would be a simple way to make these tombstones stop showing up where they shouldnt :p
     

Share This Page