[MECH][TP] Graveyard v0.4.4 - Multiple player respawn locations. [1317]

Discussion in 'Inactive/Unsupported Plugins' started by McSpazzy, Apr 7, 2011.

  1. Offline

    McSpazzy

    Graveyard - Allows server operators to define multiple respawn points.
    Version: v0.4.4

    Just put in plugins directory and off you go. Config files generated on the fly.
    Built and tested with Craftbukkit 1317.

    New development site =D
    http://dev.bukkit.org/server-mods/graveyard/

    Features:
    • Allows admins to define names and coordinates in config files.
    • Players respawn at closest point.
    • Permissions support for commands.
    Note: This currently overrides many other plugins spawn management.



    Commands:

    /gy add SpawnName​
    /gy delete SpawnName​
    /gy list​
    /gy list world​
    /gy closest​
    /gy tp SpawnName​
    /gy tp closest​
    /gy tp random​
    /gy info​
    /gy reload​
    /gy version​

    Feel free to add as many words in the name as you want. Such as 'Super happy fun spawn point of doom' or something equally as awesome.

    Permissions:
    graveyard.command.tp​
    graveyard.command.add​
    graveyard.command.list​
    graveyard.command.closest​
    graveyard.command.delete​
    graveyard.command.message​
    graveyard.command.reload​
    graveyard.command.info​
    graveyard.spawn.[groupname]​
    graveyard.respawn.closest​
    graveyard.respawn.random​
    graveyard.respawn.bed​
    graveyard.respawn.invincible​

    Download v0.4.4
    Download v0.4.3
    Download v0.4.2
    Download v0.4.1
    Download v0.4

    To Do:
    • Point discovery.
    • Proper documentation.
    Coming in next version (Probably):

    Change log:
    Version 0.4.4 - Some pretty big changes.
    • No longer requires permissions to work. If no permissions plugin installed it will automatically let all players spawn at all points.
    • Supports PEX and PermissionsBukkit
    • Took the bed support out for now till I can find a better way to implement it.
    • New points are automatically in the 'default' group which needs no permissions to spawn at, just the graveyard.respawn.closest or random.
    • Updated the configuration code to reflect changes in the new RB.
    Version 0.4.3
    • Option to enable an invincible timer on respawn.
    • Threaded file IO
    • Added commands '/gy tp random' and '/gy tp closest'
    Version 0.4.2

    • Configurable option to check/auto notify if there is a new version
    • Permission to change between closest or random spawn point.
    • Allow beds to be used. If set to true in config, will attempt to spawn player at their bed, if that fails, will default to the random/closest permission.
    Version 0.4.1

    • Added a '/gy reload' command to reload all points.
    Version 0.4

    • Changed permissions to PermissionsBukkit
    • Added per point permissions
    • Added more commands
    • Rewrote some of the code
    Older Versions (open)


    Version 0.3.9pre
    • Support for PermissionsEX.
    Version 0.3.8


    • Custom respawn strings. Change the closest point's by using '/gy message message here'. You can set it to '/gy message none' for no message.
    • Multiworld support.
    • Took out permissions for now...I know, I'm a terrible person.
    Version 0.3.7


    • Fixed the bug caused by the new CB preventing the multiple spawns from working.
    Version 0.3.6


    • Some general code cleanups
    Version 0.3.5


    • Removed support for Towny, will re-add soon.
    • Fixed null when trying to TP to a non existant point.
    • Updated command list
    Version 0.3.2


    • Added support for Towny.
    Version 0.3.1


    • Fixed not creating folders on first load bug. Thanks to @spowney for pointing out my stupid mistake. =D (I forgot to put it back in after the code rewrite)
    Version 0.3


    • Changes to the commands.
    • Changes to the storing of spawn points.
    • Better permissions support.
    Version 0.3pre


    • Basic permissions support.
    • Additional fixes and updates.
    Version 0.2.1


    • This is only an intermediate release to address important bugs and compatibility issues.
    • New add coordinate command that works in game as well as from the console.
    • Fixed a few of the command catch errors. So there should be no more console error spamming.
    • The graveyard points now supersedes beds and other plugins. (The ones I tested) Except those plugins which have their priority set to highest.
    Version 0.2


    • Added in game add point command. (Remove and list still coming)
    Version 0.1


    • Initial Release


    I'm still working on it. Just wanted to get a base version out to feedback/bug reports/feature demands. I'll be adding the commands in as soon as I've finished typing this.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 13, 2016
    AS1LV3RN1NJA and kahlilnc like this.
  2. Offline

    lastmikoi

    Great plugin, very usefull in my small server.

    However it would be just like perfect if it keep the same filename (i.e. GraveYard.jar).
    Indeed, the fact that three or even four graveyard-*.*.*.jar exists in my plugin folder is pretty weird and messy =).
     
  3. Offline

    Don Redhorse

    well kinda.... a graveyard is normally a place where you find the tombstones because that's where your dead bodies are buried...
    so I would like to have a tombstone but not where they died but where they spawned (in the graveyard)..

    which brings up another idea...

    the sign could read
    DRedhorse
    died by fire
    time
    date

    and there should be a max number of tombstones per player to keep a little history.. placing all the signs would be problematic though I would think..
     
  4. Eagerly awaiting support for graveyard assignment/access control. My server has a few 'hidden' areas tucked away, and the goal is for players to only be able to find it by accident -- I want my moderators to be able to spawn there, but nobody else. With the current system, all people have to do is die halfway there, which isn't quite what I'm looking for. So far the progress is looking good though -- keep up the good work!
     
  5. Offline

    McSpazzy

    @Don Redhorse Yeh, placing signs where they spawn would be an issue, especially on larger servers where a lot of people die close to the same spot. I guess the possibility to add support for actual graveyards is a possibility but still some time off. (I don't have the time to do plugins full time)

    @lastmikoi I understand...but you could rename the file? The filename of the plugins don't matter anymore. They are named as such for sorting reasons on the hosting server.

    @planetarian The requirement to have discovered points is in progress. Can't really give you an eta though. But hopefully in 0.4
     
  6. Offline

    Hakaslak

    The Graveyard dir seems to be empty.
     
  7. Offline

    lastmikoi

    Sure i'll do. It was just for optimisation =)

    However, since I updated to b733, I get theses errors :


    Code:
    (Player called 'Sam' just died, then :)
    2011-05-01 15:22:34 [SEVERE] java.io.FileNotFoundException: plugins/Towny/data/residents/Sam.txt (No such file or directory)
    2011-05-01 15:22:34 [SEVERE]    at java.io.FileInputStream.open(Native Method)
    2011-05-01 15:22:34 [SEVERE]    at java.io.FileInputStream.<init>(Unknown Source)
    2011-05-01 15:22:34 [SEVERE]    at java.io.FileInputStream.<init>(Unknown Source)
    2011-05-01 15:22:34 [SEVERE]    at java.io.FileReader.<init>(Unknown Source)
    2011-05-01 15:22:34 [SEVERE]    at com.McSpazzy.Graveyard.Towny.TownyHook.hasTown(TownyHook.java:16)
    2011-05-01 15:22:34 [SEVERE]    at com.McSpazzy.Graveyard.GraveyardPlayerListener.onPlayerRespawn(GraveyardPlayerListener.java:17)
    2011-05-01 15:22:34 [SEVERE]    at org.bukkit.plugin.java.JavaPluginLoader$3.execute(JavaPluginLoader.java:218)
    2011-05-01 15:22:34 [SEVERE]    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
    2011-05-01 15:22:34 [SEVERE]    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:257)
    2011-05-01 15:22:34 [SEVERE]    at net.minecraft.server.ServerConfigurationManager.d(ServerConfigurationManager.java:208)
    2011-05-01 15:22:34 [SEVERE]    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:808)
    2011-05-01 15:22:34 [SEVERE]    at net.minecraft.server.Packet9Respawn.a(SourceFile:10)
    2011-05-01 15:22:34 [SEVERE]    at net.minecraft.server.NetworkManager.a(NetworkManager.java:195)
    2011-05-01 15:22:34 [SEVERE]    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:74)
    2011-05-01 15:22:34 [SEVERE]    at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    2011-05-01 15:22:34 [SEVERE]    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:370)
    2011-05-01 15:22:34 [SEVERE]    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:285)
    2011-05-01 15:22:34 [SEVERE]    at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    I don't use Towny since it is totally useless for my server.
     
  8. Offline

    peaced

    @McSpazzy Another feature suggestion : Have an invicibility timer on respawn, for n seconds.
    Can be usefull for PVP, or in case of mobs cluster around spawn point.
     
  9. Offline

    McSpazzy

    @lastmikoi Ah! That shouldn't happen! I probably missed something again. That code shouldn't be called unless towny is installed.
     
  10. Offline

    Dalton Just

    So, how do I make a global spawn point? Apparently when i use /gy add, it only does it for me when I die but not other players?
     
  11. Offline

    McSpazzy

    I been pretty busy the last few days/weeks. I'll see what I can do to fix them this week/weekend. Sorry about the delays D=

    @Dalton Just Are you using permissions? If you are, default permissions only admin/ops use it.
     
  12. Offline

    BioRage

    /gy tp BioRage


    17:03:32 [INFO] BioRage tried command: graveyard tp
    17:03:34 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'gy'
    in plugin Graveyard v0.3.2
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:85
    )
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:2
    55)
    at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.
    java:677)
    at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:640)

    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:634)
    at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:32)
    at net.minecraft.server.NetworkManager.a(NetworkManager.java:195)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:74)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:370)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:285)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    Caused by: java.lang.NullPointerException
    at com.McSpazzy.Graveyard.GraveyardCommands.onCommand(GraveyardCommands.
    java:66)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
    ... 12 more
    >
     
  13. Offline

    McSpazzy

    @BioRage Lol...people just have to put weird things into the commands. Fine...I'll add more safeguards =p
     
  14. Offline

    BioRage

    Ah you must, because than the server can use this plugin with more pride! Once we launch our rpg thingy. :)
     
  15. Offline

    peaced

    I made a python script to generate spawn points
    Usefull for big maps (mine is 10k x 10k, more that 300 respawn points.)
    So far all generated spawn points have Y=128, i'm working on a version that will put the spawn at surface block.
    But it does its job as it is anyway.
    If anyone is interested, i'll clean the code and post it.
     
  16. Offline

    BioRage

    Sounds usefull!
     
  17. Offline

    peaced

    Here it is then :
    Code:
    #Made under python 3.2
    #Not compliant with 2.X versions
    
    #The map must be square. Enter the side lenth of the map (not the max coodinates)
    #for exemple, for a map that goes from -500 to +500, the size is 1000
    MAPSIZE = 1000
    
    #Enter the distance you want between each spawn points (in blocks)
    #Thiss distance will apply in each directions.
    BLOCKSBETWEENPOINTS = 100
    
    #the name of your world folder
    world = 'world'
    
    #the path where you want the spawn point files to be created.
    OUTPUTPATH = 'i:/mypath/spawntest/'
    
    ### Do not edit from here unless you know what you do.
    minsize = MAPSIZE - (MAPSIZE * 1.5) + (BLOCKSBETWEENPOINTS/2)
    x = minsize
    z = minsize
    maxsize=abs(x) - (BLOCKSBETWEENPOINTS/2)
    while z < maxsize:
        while x < maxsize:
            name = 'Name=x%sz%s\n' % (int(x) , int(z))
            namefname = 'x%sz%s.cfg' % (int(x) , int(z))
            fname = '%s%s.cfg' % (OUTPUTPATH, namefname)
            name = name+'xpos=%s\n' % (int(x))
            name = name+'World=%s\n' % (world)
            name = name+'zpos=%s\n' % (int(z))
            name = name+'ypos=128'
            zpos= 'zpos=%s\n' % (z)
            f = open(fname, 'a', encoding='utf-8')
            f.write(name)
            f.close()
            x = x + BLOCKSBETWEENPOINTS
        x = minsize
        z=z+BLOCKSBETWEENPOINTS
     
  18. Offline

    MacVaultDweller

  19. Offline

    hofec

    Latest RB #766 .. having this exceptions ..

    Code:
    21:00:53 [SEVERE] java.io.FileNotFoundException: plugins\Towny\data\residents\
    AND

    Code:
    21:00:53 [SEVERE] Could not pass event PLAYER_RESPAWN to Graveyard
    java.lang.NullPointerException
            at com.McSpazzy.Graveyard.GraveyardPlayerListener.onPlayerRespawn(GraveyardPlayerListener.java:21)
            at org.bukkit.plugin.java.JavaPluginLoader$3.execute(JavaPluginLoader.java:244)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:289)
            at net.minecraft.server.ServerConfigurationManager.d(ServerConfigurationManager.java:208)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:822)
            at net.minecraft.server.Packet9Respawn.a(SourceFile:10)
            at net.minecraft.server.NetworkManager.a(NetworkManager.java:196)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:372)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:287)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    Thank you for fix in advence. Awesome plug ! [diamond]
     
  20. Offline

    Sleaker

    Issues:
    /gy tp GyName - results in NPE if GyName does not exist
    /gy remove GyName - no result at all even though the command list shows to use remove.

    Command list for /gy does not show accurate/all command useage
    Many many NPEs when using commands (it seems like there is no garbage collection of mistyped information)

    Source - Any chance of releasing the Source?
     
  21. Offline

    peaced

    Hey there. I dont know if this plugin is still active.
    I'll go with my couple suggestions anyway :

    Could we have a command for TP to a random point ?

    Also, less likely, but I need it : New players gets TP to random point when they join, then get assigned to another permissions group.

    Thx

    PS : updated my point generator script to detect Y location of surface block, no more spawning in the sky.
    Anyone needs it, msg me.
     
  22. Offline

    BioRage

    Please don't let this plugin die!
     
  23. Offline

    McSpazzy

    *flails* I been busy!
    @Sleaker I can release the source if you want. The reason why there is still so many npe's is that people *cough*@BioRage *cough* were pressuring me to release a new version. Then my free time disappeared.

    Sorry for the lateness of my reply D=
     
  24. Offline

    Sleaker

    It'd be cool if you put it up on github so others (like myself) can fork and submit fixes via pull requests :)
     
  25. Offline

    McSpazzy

    @Sleaker Upped to github. Anyone who wants to contribute is free to.
    https://github.com/McSpazzy/Graveyard

    Also I'm spending this morning on it. Fixing the bugs I should have some time ago.
    Updates that will be coming soon.
    • Support for nether/multiworld spawn points.
    • Discovery of points.
     
  26. Offline

    Johniver

    Hi,
    i use bukkit 816 (so i dont expect anything to be done yet, just want to inform) and Graveyard do not work right. (I do not use towny.)
    On event death,

    Code:
    [SEVERE] java.io.FileNotFoundException: plugins/Towny/data/residents/PLAYER.txt (No such file or directory)
    
    .
    Funny enough Graveyard works when going through a portal from nether... I spawn at a Graveyard, and not the portal.
     
  27. Offline

    McSpazzy

    @Johniver

    I have fixed a few bugs, was just waiting for a recommended. Now that 818 is out, I'll have a release in a couple days.
     
  28. Offline

    Johniver

    Perfect :)
    Your plugin is an awesome addition to our server. Tanks.
     
  29. Offline

    McSpazzy

    @Johniver @lastmikoi @BioRage @peaced @hofec

    New minor version! Fixed the towny thing...by removing it, fixed a few of the null errors it was throwing. Keep me updated on any new bugs that pop up.
     
  30. Offline

    hofec

    @McSpazzy

    Thank you man ! Now, can u please make custom strings ? I'd like to translate it for my players. :)

    Thank you again [diamond]
     
  31. Offline

    Kuun

    I got a problem since the 1.6 . I try your last version of Graveyard (0.3.6) but when i die , all players are spawning at one spot only (i got 4 spots saved) ...I try to kill myself near a second spot but i respawn to the first one. Any idea?
     

Share This Page