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

    /setspawn
    You need to be an admin or otherwise have permission to access SpawnControl.spawn.set
    --- merged: Jan 22, 2011 8:48 PM ---
    Try 777 and see if that sorts it out. I don't have a *nix box to test on, unfortunately.
     
  3. Offline

    cnx4mia123

    I also have groupusers do i have to take this off?
     
  4. Offline

    majorcyto

    Yeah it didnt really change anything... lol

    also what the hell is the home.proxy one or whatever for?
     
  5. Offline

    Timberjaw

    I honestly don't know. I haven't used groupusers. I don't know of any reason it would conflict though, provided Permissions still returns correct group names via groupusers.
    --- merged: Jan 22, 2011 8:58 PM ---
    home.proxy is for setting someone else's home.

    I'm stumped on this database issue. I'll do some research and try to turn something up. It seems like it must be a *nix permissions/ownership issue.
    --- merged: Jan 22, 2011 9:03 PM ---
    Anyone having the SQL logic error: can you send me your spawncontrol.db file?
     
  6. Offline

    cnx4mia123

    Admins:
    default: false
    info:
    prefix: Epix 0Wn3r
    suffix:
    build: true
    inheritance:
    - Moderator
    permissions:
    - '*.SpawnControl.spawn.set.SpawnControl.groupspawn.set'

    ##
    # DarkGrave has control over all commands.
    # sk89q can use /spawn & /time
    ##
    users:
    cnx4mia123:
    group: Admins
    permissions:
    cnx4mi123:
    group: Admins
    permissions:
    - '*'


    Thats my permissions but after/setspawn only the general one works how do i fix this. and i still get the error?
     
  7. Offline

    Timberjaw

    This:
    - '*.SpawnControl.spawn.set.SpawnControl.groupspawn.set'

    Should be this:
    - 'SpawnControl.spawn.set'
    - 'SpawnControl.groupspawn.set'
     
  8. Offline

    Incendia

    Can I get a version that is only the exact spawn stuff (/spawn and /setspawn)? I already have MyHome for home.
     
  9. Offline

    Timberjaw

    Updated! v0.2.1 is a small update, but important! My inexperience with SQLite meant that the v0.1 and v0.2 database schemas were bad, bad, bad. Indices weren't created properly, rows were getting duplicated, etc.

    Unfortunately, this means the quickest upgrade route is to delete your spawncontrol.db file and start over. Since many people seem to be having trouble getting data in at all, this may not be much of an inconvenience. If you do have new data in your spawncontrol.db and need to get it ported to the updated schema, let me know and I'll be happy to help.

    This may or may not be related to the "SQL logic error or missing database" problem. Again, if anyone having this problem can send me their spawncontrol.db file or otherwise help me diagnose the issue, it would be much appreciated.
     
  10. Offline

    Desereck

    @Timberjaw What's the use of this plugin if spawn's don't set correctly/respawn on that. I have a structure made of bedrock for my spawn, yet I keep respawning above it.
     
  11. Offline

    Timberjaw

    Have you used /setspawn AFTER installing 0.2.1?

    And by respawn, do you mean respawn after dying? Or respawn on /spawn? Respawn after dying isn't supported until Bukkit has a player death event.
     
  12. Offline

    Incendia

     
  13. Offline

    Timberjaw

    /spawn and /setspawn are only partially functional right now due to the lack of a player death hook; splitting them off into their own plugin at this point would be more or less pointless.

    I will say that I'm planning on allowing more detailed configuration of SpawnControl. Specifically, I'd like server admins to be able to enable/disable global spawn, group spawn, and homes independently. This would (I believe) accomplish your goal.

    It will be a little while though. I'm still trying to stabilize the basic features right now and bring things up to the level of functionality present in the hMod SpawnControl plugin.
    --- merged: Jan 23, 2011 4:44 AM ---
    Updated! v0.2.2 fixes a bad group spawn condition responsible for the error-on-login issue.
     
  14. Offline

    ledhead900

    ah thanks I thought it would be something simple yea I never set nothing up Im just throwing plugins in and see if the server starts with out errors before I try and configure anything.
     
  15. Offline

    SirScotalot

    The DB issues under Linux still persist, I'm afraid.
    Here's my spawncontrol.db file:
    http://dl.dropbox.com/u/13125597/spawncontrol.db
    It was created with SpawnControl 2.2 under Linux; I tried to set the spawn and my home, and returning to both. Kept getting the same error I already mentioned.
    Oh, and I also granted read & write access for all users, just to be sure: Didn't work.
     
  16. Offline

    Timberjaw

    Looks like one home and the global spawn are set correctly in that .db file, so it's getting that far at least. What's the very first console error you see when starting the server up fresh and connecting/spawning?
     
  17. Offline

    cnx4mia123

    i get this error: DB ERROR - database is locked
     
  18. Offline

    Timberjaw

    Ok. I had the same issue actually. I won't be able to fix it until late tonight, but I did find a workaround. I had to do this once before anyone else joined the server, and it was fine after that. Note that I'm running Permissions with the default group config, not the groupusers plugin.
    1. Add yourself as an admin in your Permissions config.
    2. Start the server. You shouldn't get any console errors.
    3. Use /setspawn wherever you like.
    4. Done! As additional players join, they should be directed to the global spawn.
    The reason for the lock issue is that when a player joins before the global spawn is set, if they're a member of the Default group and don't have a home set yet, it assumes they're a new player and tries to send them to global spawn. This causes a NPE, locks the database, and causes all further database reads/writes to fail until the server is restarted. By logging in to a freshly started server as a member with non-Default group, you bypass that piece of bad code long enough to set a global spawn. After that, things should proceed as normal.
     
  19. Offline

    SirScotalot

    I don't get any errors on starting my server at all. However, as soon as I try using any of SpawnControl's commands, I receive the error I already mentioned before. Hmm. I'm still curious why it doesn't work under Linux only, while Windows takes the same configuration just fine... If you need any more help investigating the issue, let me know.
     
  20. Offline

    MIKUiqnw0

    CentOS, same issue here. R+W permissions on spawncontrol.db.

    Code:
    2011-01-25 08:36:02 [INFO] MIKUiqnw0 [---] logged in with enti
    ty id 198
    Player count: 1
    2011-01-25 08:36:08 [INFO] [SpawnControl] Attempting to set global spawn.
    DB ERROR - SQL logic error or missing database
    2011-01-25 08:36:08 [INFO] MIKUiqnw0 tried command: setspawn
    2011-01-25 08:36:16 [INFO] [SpawnControl] Attempting to send player MIKUiqnw0 to
     spawn.
    DB ERROR - SQL logic error or missing database
    2011-01-25 08:36:16 [INFO] MIKUiqnw0 tried command: spawn
    
    Code:
    2011-01-25 08:37:27 [INFO] [SpawnControl] Sending new player GTIxFITZYxGTI to global spawn.
    DB ERROR - SQL logic error or missing database
    DB ERROR - SQL logic error or missing database
    Error: null
    java.lang.NullPointerException
            at com.bukkit.timberjaw.spawncontrol.SpawnControl.setHome(SpawnControl.java:266)
            at com.bukkit.timberjaw.spawncontrol.SCPlayerListener.onPlayerJoin(SCPlayerListener.java:202)
            at org.bukkit.plugin.java.JavaPluginLoader.callEvent(JavaPluginLoader.java:129)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:201)
            at net.minecraft.server.ServerConfigurationManager.a(ServerConfigurationManager.java:75)
            at net.minecraft.server.NetLoginHandler.b(SourceFile:121)
            at net.minecraft.server.NetLoginHandler.a(SourceFile:47)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:91)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:261)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:197)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    
     
  21. Offline

    SeeD419

    Oh...it requires permissions....

    Poop.
     
  22. Offline

    ledhead900

    Hmm I think you posted a new versions since I last checked but for some reason in the daily build of craftbukkit every time I use any any "Set" commands like /setspawn it reply back "Could not set set spawn" I think I had craftbukkit version 135 at the time.

    Also before It started doing this it also took me to global even tho I had an Admin group spawn set.

    Don't worry about it just yet I'll go grab any new releases over the night and grab the new versions of your plugin and see how we go.
     
  23. Offline

    Varthx

    I am on Windows and I am honestly Javascript mute. Don't know...well, any...so this SQL thing confuses me, could you help me out Timber? What do I do with that. I have the .jar in the same folder with craftbukkit.jar, but I am getting this error when I attempt to use a command:

    DB ERROR - SQL logic error or missing database

    Others were getting this on Linux? I'm on Win7 x64. So I thought I'd post and see if you guys could help me out. :D Thanks
    -Varthx
     
  24. Offline

    Timberjaw

    Hi everybody. Sorry for the delay. I got stranded about 200 miles from home for 2 days and just got back.

    I should have SpawnControl updated for the current CraftBukkit build tomorrow.

    Apologies for the Linux issues. I do need some more information to help diagnose the issue:

    1. If you're having the "database locked" issue, have you tried the workaround I posted previously?
    2. If you're having the permissions issue, please send me your SpawnControl.db file, AND
    3. Make sure you're using the latest version of SpawnControl, and allow it to create the database from scratch (delete the existing SpawnControl.db file if it doesn't have real data in it), as the schema has changed.

    Will hopefully have more info tomorrow.
     
  25. Offline

    ledhead900

    Confirmed working for Niji permission ver 1.9 tested and works for me.

    SpawnControl version 0.2.2 seems to be working fine on later build of craftbukkit as well, Just updated craftbukkit will test it again shortly.
    --- merged: Jan 26, 2011 3:27 PM ---
    My moderators dont seem to be able to use /spawn or any ohter spawn , I added

    - 'spawncontrol.groupspawn.use'
    - 'spawncontrol.spawn.use'

    To Permissions 1.9 and moderators cane use my other commands ind default and other ranks but this one.

    Tho as admin it works fine this is probably a permisison thing but im not sure why it would not pass these commands along if it passes the rest thru the group hirachial struture.
     
  26. Offline

    Mournful

    Im running the latest version of Bukkit, operating on win7 x64, I've done the setspawn thing and what not and this is what im seeing...

    Code:
    2011-01-26 18:50:29 [INFO] [SpawnControl] Attempting to import player configurat
    ion file.
    2011-01-26 18:50:53 [INFO] [SpawnControl] Attempting to set global spawn.
    DB ERROR - SQL logic error or missing database
    2011-01-26 18:51:35 [INFO] [SpawnControl] Attempting to set global spawn.
    DB ERROR - SQL logic error or missing database
    DB ERROR - database is locked
    DB ERROR - SQL logic error or missing database
    2011-01-26 18:52:34 [INFO] [SpawnControl] Attempting to send player Mournful to
    home.
    DB ERROR - SQL logic error or missing database
     
  27. Offline

    Binaryclock

    I'm asked craftbukkit on twitter to create the death hooks and i got a response back 'Okay!' so hopefully we'll see them death hooks shortly. You can already see the baseline work being done on the entities.
     
  28. Offline

    ledhead900

    You did not download and install the SQLite database called sqlitejdbc-v056.jar some plugins need it :)
    --- merged: Jan 27, 2011 5:06 PM ---
    Anyone esle having an issue with oversized spawn protecton radius's, I'm talking over 400 blocks worth of No build space.

    I posted a thing on the support area for help regading this but Im also posting it here just to make sure.

    Using Craftbukkit Build 150+
     
  29. Offline

    eagledude4

    flatfile support in the future? Judging by these errors and the extra file you need, this is sql only am I right?
     
  30. Offline

    Timberjaw

    The lukegb bamboo site is down; I haven't been able to pull the latest bukkit/craftbukkit artifacts today. :(
    --- merged: Jan 28, 2011 7:01 AM ---
    It's currently SQLite only, yes. I don't know that flatfile support would help with these errors, however, since it seems to be a problem with Java on Linux doing something dumb with file permissions. I may add optional flatfile support for users who prefer it, however.
     
  31. Offline

    Mournful

    I did exactly what it says, downloaded the SQLite jar and placed it where it needed to be..
     

Share This Page