Inactive [GEN] SpawnControl v0.8.3 - Per-Player/Group Spawns (Now on DevBukkit) [1060]

Discussion in 'Inactive/Unsupported Plugins' started by Timberjaw, Jan 21, 2011.

  1. Offline

    Timberjaw

    SpawnControl v0.8.3

    Announcement:
    SpawnControl is being superseded by HomeSpawnPlus, a more advanced plugin that supports all of SC's features, and many more. Your homes and spawns can be imported directly from SpawnControl into HomeSpawnPlus.
    Feel free to contact me with questions/concerns/complaints.




    Tested with CraftBukkit 1060.

    DevBukkit Page: SpawnControl
    Bug Reports: SpawnControl Issue Tracker

    Features:
    • Per-player /home and /sethome
    • Per-group /groupspawn
    • Precise /spawn and /setspawn override
    • Per-world global, group, and player spawns
    • [NEW] Cooldowns for /home, /sethome, /groupspawn, and /spawn
    • Optional respawn on death
    • Optional respawn on join
    • Toggles for home, groupspawn, and globalspawn features
    • Imports player homes from spawncontrol-players.properties
    • Imports group spawns from spawncontrol-groups.properties
    Details:

    This is a more full-featured release by far. Group spawns and global spawn are now supported. I'm detecting 'new' players (for global spawn) by checking their group (new players will be in Default) and looking for an existing home entry. If no home entry is found, the player will be teleported to the global spawn and their home will be set to the global spawn location. If someone has a better method for detecting this, I'd love to hear it.

    The following permissions are available:
    • SpawnControl.sethome.basic
    • SpawnControl.sethome.proxy
    • SpawnControl.home.basic
    • SpawnControl.spawn.use
    • SpawnControl.spawn.set
    • SpawnControl.groupspawn.use
    • SpawnControl.groupspawn.set
    • SpawnControl.CooldownExempt.* (Sub-nodes: *, home, sethome, groupspawn, spawn)
    • SpawnControl.config (for /sc_config [setting] [value])
    • SpawnControl.import (for /scimportconfig and /scimportgroupconfig)
    Dependencies:
    Installation:
    1. Download SpawnControl.jar and place it in your bukkit plugins folder
    Optional Installation Steps (for Permissions support):
    1. Download the Permissions plugin and install it
    2. Add SpawnControl entries to your Permissions config as desired
    Commands:
    • /spawn - go to global spawn
    • /setspawn - set the global spawn to your current location
    • /home - go home
    • /sethome - set your home to your current location
    • /groupspawn - go to your group spawn
    • /setgroupspawn [group] - set the group spawn for the specified group to your current location
    • /sc_config [setting] [value] - alter a configuration setting
    Settings:
    • enable_home - Enables or disables /home and /sethome (0 = disabled; 1 = enabled) [Default: 1]
    • enable_groupspawn - Enables or disables /setgroupspawn and /groupspawn (0 = disabled; 1= enabled) [Default: 1]
    • enable_globalspawn - Enables or disables /setspawn, /spawn, and /globalspawn (0 = disabled; 1 = enabled) [Default: 1]
    • behavior_death - Specifies the behavior when a player dies (0 = disabled - user returns to vanilla spawn; 1 = home; 2 = group spawn; 3 = global spawn) [Default: 3]
    • behavior_join - Specifies the behavior when a player joins the server (0 = disabled - user spawns at last position; 1 = home; 2 = group spawn; 3 = global spawn) [Default: 0]
    • behavior_spawn - Specifies the behavior of the /spawn command (0 = global spawn; 1 = group spawn; 2 = home)
    • behavior_globalspawn - EXPERIMENTAL - Specifies the behavior when setting spawn (0 = does not override map spawn, 1 = overrides map spawn)
    • cooldown_home [seconds] - Sets a cooldown in seconds for the /home command
    • cooldown_sethome [seconds] - Sets a cooldown in seconds for the /sethome command
    • cooldown_groupspawn [seconds] - Sets a cooldown in seconds for the /groupspawn command
    • cooldown_spawn [seconds] - Sets a cooldown in seconds for the /spawn and /globalspawn commands
    Downloads:

    Known Issues:

    • None?
    Changelog:

    • 0.1 - First Bukkit release. Basic /home and /sethome support
    • 0.2 - Group and global spawns, Permissions integration
    • 0.3 - Working respawn on death; respawn on join (optional); configuration options
    • 0.4 - Updated to use new OnCommand system
    • 0.5 - Now uses PLAYER_RESPAWN; added basic multiworld support; added experimental (optional) globalspawn behavior; added missing /globalspawn command
    • 0.6 - Proper multi-world support with per-world spawns
    • 0.7 - Added command cooldowns; Permissions is now optional
    • 0.8 - Fixed multiworld spawns; recompiled against CB #617; removed deprecated method calls
    • 0.8.1 - Updated deprecated world loading method; tweaked spawn log message
    • 0.8.2 - Switched cooldown time handling from server time to system time
    • 0.8.3 - Added Hidendra's pull to support Bukkit's native permissions
    • Full changelog
     
    Michonne, Huddl, BadgerLove and 5 others like this.
  2. Offline

    Timberjaw

    No, not dead. I've been using it with 440 since 440 came out. 493 was just recommended; have some patience please ;)
    --- merged: Mar 4, 2011 9:56 AM ---
    Dev Notice
    I'm working on 0.7 right now. I'll be building for CraftBukkit 493 and Permissions (Phoenix) 2.5.

    If you're having issues that are not on the list below, I'm not aware of them!

    Reported issues:
    • Multi-world respawn issue
    • ??? 493 issue (no one has reported specifics on this)
    --- merged: Mar 4, 2011 10:00 AM ---
    @OkinKun Which Nether plugin are you using, by the way?
     
  3. Offline

    Daveyo


    main issue is conflicting with myhome. I like to have a spawn, groupspawn, deathespawn, and then have /home on a 10 minute cooldown. If you added a cooldown (and maybe warmup haha) then this would be all i would need for sure. Let me know if you have any plans for that. Right now if i use myhome then /home doesnt work for either. Before your programs /home and /sethome would shut down so i could use it.
     
  4. Offline

    Timberjaw

    Unfortunately there's no way that I'm aware of via the API to disable commands that have been specified in plugin.yml, due to the newer onCommand setup. Whichever plugin loaded last gets the commands, period.

    I do plan on adding command cooldowns since so many people have requested it. Maybe everyone will stop bugging me about MyHome compatibility then. [​IMG]
     
  5. Offline

    Poinball

    Ok thx ! i wait for the next update :)
     
  6. Offline

    phaed

    Great glad to hear:D
     
  7. Offline

    Poinball

    What is the permission code for the original /tp Player1 player2 command ?
    please !!
     
  8. Offline

    Timberjaw

    I think you're in the wrong thread. [​IMG]
     
  9. I'm running CB #493, and when a user joins the world (first time, as well as sequential times), the console outputs the server message that Cannot pass PLAYER_JOIN to SpawnControl
     
  10. Offline

    Timberjaw

    What Permissions plugin and version? So far every time this issue has been reported, it's been a Permissions configuration issue.
     
  11. Well, i was using permissions 2.5.2, but now i'm using the Essentials Groupmanager (latest as of right now), and its gone :)

    Thanks anyways
     
  12. I really enjoy this plugin! Thx for developing it however Im experiencing the same issue as stargateanubis14 in regards to CB 493 and PLAYER_JOIN. Im using group manager as well due to its multi-world permissions support ( I have different permissions per world ) And thnk that may be the reason for the messup. I can post Console errors if needed.
     
  13. Offline

    Timberjaw

    Console errors would be much appreciated.
    --- merged: Mar 4, 2011 7:40 PM ---
    Updated! v0.7 adds command cooldowns for /home, /sethome, /groupspawn, and /spawn. Permissions is now optional; it will default to isOp if Permissions is unavailable. Tested with CB 493 and Permissions (Phoenix) 2.5.

    New cooldown settings (with /sc_config)
    cooldown_home, cooldown_sethome, cooldown_groupspawn, cooldown_spawn

    Cooldown values are in seconds. You can exempt users/groups from cooldown with the SpawnControl.CooldownExempt.* flags (home, sethome, groupspawn, spawn).

    Without permissions, ops have access to everything and are exempt from cooldown. Non-ops have access to sethome, home, and spawn.
     
  14. Code:
    15:42:37 [INFO] [SpawnControl]: Table 'players' not found, creating.
    15:42:37 [INFO] [SpawnControl]: Table 'players' created.
    15:42:37 [INFO] [SpawnControl]: Table 'groups' not found, creating.
    15:42:37 [INFO] [SpawnControl]: Table 'groups' created.
    15:42:38 [INFO] [SpawnControl]: Table 'settings' not found, creating.
    15:42:38 [INFO] [SpawnControl]: Table 'settings' created.
    15:42:39 [INFO] [SpawnControl]: No global spawn found, setting global spawn to world(0) spawn.
    15:42:39 [INFO] [SpawnControl] version [0.7] loaded
    15:42:39 [INFO] VoxelDoop version 1.5 is enabled!
    15:42:39 [INFO] Done (0.445s)! For help, type "help" or "?"
    15:43:17 [INFO] 143 recipes
    15:43:17 [INFO] jj509 [/206.209.103.29:26866] logged in with entity id 203
    15:43:17 [INFO] [SpawnControl] Sending new player jj509 to global spawn.
    15:43:17 [SEVERE] java.lang.NullPointerException
    15:43:17 [SEVERE]       at com.earth2me.essentials.chat.EssentialsChatWorker.updateDisplayName(EssentialsChatWorker.java:33)
    15:43:17 [SEVERE]       at com.earth2me.essentials.chat.EssentialsChatWorker.onPlayerJoin(EssentialsChatWorker.java:28)
    15:43:17 [SEVERE]       at com.earth2me.essentials.chat.EssentialsChatPlayerListener.onPlayerJoin(EssentialsChatPlayerListener.java:27)
    15:43:17 [SEVERE]       at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:125)
    15:43:17 [SEVERE]       at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
    15:43:17 [SEVERE]       at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:225)
    15:43:17 [SEVERE]       at net.minecraft.server.ServerConfigurationManager.a(ServerConfigurationManager.java:98)
    15:43:17 [SEVERE]       at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:87)
    15:43:17 [SEVERE]       at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:68)
    15:43:17 [SEVERE]       at net.minecraft.server.Packet1Login.a(SourceFile:46)
    15:43:17 [SEVERE]       at net.minecraft.server.NetworkManager.a(SourceFile:230)
    15:43:17 [SEVERE]       at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:34)
    15:43:17 [SEVERE]       at net.minecraft.server.NetworkListenThread.a(SourceFile:87)
    15:43:17 [SEVERE]       at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:357)
    15:43:17 [SEVERE]       at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    15:43:17 [SEVERE]       at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    15:43:17 [INFO] Forcing MCServerlist update.
    15:43:48 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'setspawn' in plugin SpawnControl v0.7
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:33)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:183)
            at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:619)
            at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:582)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:576)
            at net.minecraft.server.Packet3Chat.a(SourceFile:24)
            at net.minecraft.server.NetworkManager.a(SourceFile:230)
            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:357)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NullPointerException
            at com.aranai.spawncontrol.SCPlayerListener.canUseSetSpawn(SCPlayerListener.java:442)
            at com.aranai.spawncontrol.SCPlayerListener.onCommand(SCPlayerListener.java:146)
            at com.aranai.spawncontrol.SpawnControl.onCommand(SpawnControl.java:288)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:31)
            ... 12 more
    I was receiving different errors before, and i think its because im using group manager. I prefer it though since I plan to seperate permissions between worlds which doesn't seem to be supported by permissions. Thanks for looking into it and being so fast! Your spawn plugin is by far a great tool. Thanks!
     
  15. Offline

    Timberjaw

    Are you using the Permissions.jar interface for GroupManager? Without it, I don't think SpawnControl will work with GM. As indicated in the OP, I've been doing my testing with Permissions (Phoenix), which is a more direct successor to Permissions.
     
  16. sorry to come back and annoy again...
    I had a bit too much trouble with essentials, so now i'm just not using essentials-required plugins.
    But now that i'm back to using Permissions, i am getting the error that i cannot pass PLAYER_JOIN to SpawnControl (i'm using the default config file with permissions.... haven't edited it yet)
    using CB 493
    --- merged: Mar 4, 2011 10:03 PM ---
    ok... just updated to 0.7, and i'm not gettin the error any more; )
     
  17. Offline

    Timberjaw

    Planned for 0.8:
    • behavior_spawn - control the behavior of the /spawn command (global, group, home)
    • Fallback improvement (suggestions welcome!)
    • Return of global spawn override (setSpawnLocation showed up in a recent build)
    What else would you like to see in SpawnControl?
     
  18. Offline

    OkinKun

    Ah, I was away for a couple days.
    I currently have to use MultiVerse, since it matches what my users were asking for, and it's compatible with other stuff I use.

    Also, I hope your latest version will work for me, since I'm using GroupManager instead of Permissions. (Although, they should be generally compatible)
    I switched from Permissions, when it forked off into a few different projects. Seems whenever a project stops being dev'd, and forks off like that, I prefer to switch to an alternative for a while. Not sure how compatible Permissions 2.5 is with other stuff I use, but I may have to switch back if it's necessary. =/

    I'll test it with GroupManager first, to see if it works ok, and let you know.
     
  19. Offline

    Timberjaw

    @OkinKun Thanks; it'd be nice to know if GroupManager works with SC. I've been using Permissions 2.5 and it seems great. Let me know how SC 0.7 works out for you.
     
  20. Offline

    OkinKun

    Ok, seems to work fine enough with GroupManager. So despite the rest of my post, I'm actually very happy everything's working enough to keep everyone playing. =D

    However, even after manually setting the spawns I wanted, on both worlds, using both SpawnControl's setspawn, and MultiVerse's setspawn.. When I die on the Secondary world, I still get sent back to the Main world. Ontop of that, it doesn't even send me to the actual spawn in the Main world, but rather something like 50 blocks below it. Which is very odd. I've never set any spawn to that location, ever. lol
    These are the only plugins I have now, which attempt to do anything to the spawn, as I recently switched from General to sk89q's CommandBook, and customized it without any spawn/setspawn commands. Oddly enough around the time I switched that, was also around the time when this new weird behavior started happening. But I've also been updated Bukkit too, not to mention practically everything else..

    You may want to talk with the maker of MultiVerse, Rigby90, to see if maybe there's a compatibility issue going on here.. But from what I'm reading in his OP for MV, it seems like an issue similar to this MAY be related to something wrong with Bukkit itself, and not really either of these plugins.
    Which could explain the weird location it's sending me to.

    So whatever, this isn't such a problem, that it actually bothers me. It's just an odd behavior for now. No worries.
    I just hope I've helped in some way, by describing all this. I'm not complaining. ^_^;
     
  21. Offline

    yottabyte

    Seems like this interferes with CommandBook's /setspawn :/ I just want an exact global spawn point. Do you know how this works with Towny's town specific spawns?
     
  22. Offline

    Timberjaw

    I haven't used Towny or CommandBook. :( Generally speaking, anything else that implements /spawn, /setspawn, /home, or /sethome is going to either interfere with or be interfered with by SpawnControl. You can get around this with some manual editing of the plugin.yml files in one of the plugins in some cases (the only way I'm aware of to disable specific commands in a plugin).
    --- merged: Mar 6, 2011 12:46 PM ---
    Meaning you removed those commands from the plugin.yml?

    Other plugins that implement spawn functionality may be modifying certain spawn behaviors regardless of whether their spawn commands are enabled. In particular, respawn-on-death would probably be caught by most spawn plugins even if they aren't receiving /spawn commands.

    If you can, try disabling CommandBook and seeing if that solves the issue. If MV also implements /spawn and /setspawn though, I'm not sure what (if anything) can be done. There are a lot of plugins implementing those commands and related behaviors, unfortunately.
     
  23. Offline

    DerET

    Home cooldown does not work. It teleports player at home everytime except if they hadn't move after the last teleport...
     
  24. Offline

    Timberjaw

    What did you set the cooldown to? What Permissions plugin are you using?
     
  25. Offline

    DerET

    Permissions 2.5.2 and I set it to 180.
     
  26. Offline

    Timberjaw

    @DerET Can you link to your permissions config? What other plugins are you running?
     
  27. Offline

    DerET

  28. Offline

    Timberjaw

  29. Offline

    DerET

    It works without propertime... But my players want propertime more than a /home. Is there a way to use both at the same time?
     
  30. Offline

    Timberjaw

    Maybe. I'll check it out. I'm guessing because properTime is manipulating the server time, and SpawnControl uses the server time for the cooldown, that's the issue.
     
  31. Offline

    OkinKun

    No no, sk89q actually made CommandBook with a customizable website utility. You can choose what features to completely leave OUT of CommandBook, all together. Not simply disable them, I believe they don't even exist in the plugin if you disable them. It builds a custom version for you.
    http://sk89q.com/projects/commandbook/customize
     

Share This Page