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

    I was able to reproduce the "stupidly long constructor" warning with CraftBukkit 409. I have not, however, been able to reproduce the issue of it not actually loading or working. In any case, v0.6.2 will be out shortly to eliminate the warning (and perhaps address the loading issue).
    --- merged: Feb 22, 2011 4:23 AM ---
    Updated! v0.6.2 fixes the "stupidly long constructor" warning and recompiles against CraftBukkit #409. This may address the loading issues some people have been having.
     
  3. Offline

    jdrez

    No luck. Still not loading. I'll sniff around and see if I can find out why.
     
  4. Offline

    Sol

    Hi Timberjaw... just a heads up that build 423 seems to break SpawnControl (the command /spawn at least...). I need to wait until a noob logs in to see if the actual spawn location is still the same or if it's a broken permissions thing, but you may want to check into it yourself just in case. Cheers!

    Nevermind!

    ~Sol
     
  5. Offline

    Timberjaw

    SpawnControl v0.6.2 appears to be working with CB #423. Let me know if you encounter any issues (aside from the Permissions issues I've been hearing about).
     
  6. Offline

    ShadowDrakken

    Permissions updated to 2.1 for MC1.3/Bukkit423, did you test against this version?
     
  7. Offline

    Timberjaw

    Yes. No known issues.
     
  8. @Timberjaw: Thanks for updating it, however i have found one problem, not entirely sure if it is plugin related, or just how server handles spawns.

    When a new player that hasn't been on the server before joins, he does get spawned at the location i set via spawncontrol, however, since it is inside a house he spawns on the roof. This doesn't happen for anyone who has been on the server before, and if the new player dies he will spawn inside the house at the correct spawn.
    My question is, what should i set behavior_join to, to make sure my current players spawn at their last location when they join, but new players spawn at spawn, inside the house? (if it's even possible)

    Some addition info: I only run Essentials (essentials, tele, ban and warp), SpawnControl, worldedit, worldguard, so i doubt any of them clashes with spawncontrols handling of player joins.
     
  9. Offline

    ShadowDrakken

    awesome, thanks! :D
     
  10. Offline

    Timberjaw

    @Graloth I'll try to reproduce the new-spawn behavior. That should not be happening.

    Check in your server console when a new player joins. You should see the message: "[SpawnControl] Sending new player NAME to global spawn." If you don't see that, it's not detecting the player as new (which is probably an issue with SpawnControl's interaction with Permissions' getGroup functionality. If you do see that, but the user ends up in the wrong place, something weirder is happening.
     
  11. Offline

    ExplosiveBacoN

    Well I'm on 423, permissions 2.1 and minecraft 1.3 and the plugin just doesn't work. It come up with this
    Code:
    [SEVERE] Exception in thread "Thread-14"
    2011-02-23 02:20:44 [SEVERE] java.lang.IllegalAccessError: tried to access class org.sqlite.Conn from class org.sqlite.JDBC
    2011-02-23 02:20:44 [SEVERE]     at org.sqlite.JDBC.connect(JDBC.java:64)
    2011-02-23 02:20:44 [SEVERE]     at java.sql.DriverManager.getConnection(Unknown Source)
    2011-02-23 02:20:44 [SEVERE]     at java.sql.DriverManager.getConnection(Unknown Source)
    2011-02-23 02:20:44 [SEVERE]     at com.aranai.spawncontrol.SpawnControl.initDB(SpawnControl.java:104)
    2011-02-23 02:20:44 [SEVERE]     at com.aranai.spawncontrol.SpawnControl.onEnable(SpawnControl.java:245)
    2011-02-23 02:20:44 [SEVERE]     at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:140)
    2011-02-23 02:20:44 [SEVERE]     at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:426)
    2011-02-23 02:20:44 [SEVERE]     at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:187)
    2011-02-23 02:20:44 [SEVERE]     at com.earth2me.essentials.commands.Commandplugin$1.run(Commandplugin.java:116)
    2011-02-23 02:20:44 [SEVERE]     at java.lang.Thread.run(Unknown Source)
    I'm not sure why it's not working but I would love a reply.
     
  12. Offline

    Timberjaw

    @ExplosiveBacoN Looks like an incompatibility with Essentials. Perhaps Essentials is loading a separate copy of SQLite? (I don't use Essentials, so I'm not sure)
    --- merged: Feb 23, 2011 7:56 AM ---
    A small aside: with Permissions apparently in limbo and native user/group support (hopefully) around the corner, SpawnControl will be moving away from Permissions support soon in favor of a more future-proof solution.
     
  13. Offline

    risinglotus

    Hey, I am new to permissions and finally thought I had it downpacked. I installed Spawncontrol and added the permissions (well I think I did as isnt '*' all commands?)

    But I when I try the /setspawn command it says I do not have permissions to do that, even though I thought I gave myself permissions.

    Here's my permission 'coding'
    Code:
    # System is no longer used, but may become used in the future
    # Copies is for multiple-world support
    #  Put the name of the world you wish for it to be a clone of, otherwise leave it empty.
    #  Does not work for the default world.
    plugin:
        permissions:
            system: default
            copies:
    ##
    # Groups can contain inheritance.
    #  To make a group inherit the permissions from another
    #  group simply place the groups name in the "inheritance:" like so:
    #
    #  Example:
    #      inheritance:
    #          - Default
    ##
    #  All permissions including the asterisks must be placed in single quotes.
    #  like so:
    #
    #      - 'general.spawn'
    #
    #  Otherwise errors will happen!
    ##
    #  Globalized Permission settings:
    #
    #      If a permission contains periods (.) you can denote a globalized parameter:
    #
    #          - 'general.*'
    #
    #      This will allow you to use all general commands.
    #
    ##
    #  Single Asterisk denotes all commands:
    #
    #      - '*'
    ##
    #  To exempt a node use the - prefix like so:
    #      - '-general.time'
    ##
    groups:
        Default:
            default: true
            info:
                prefix:
                suffix:
                build: false
            inheritance:
            permissions:
        Moderator:
            default: false
            info:
                prefix:
                suffix:
                build: true
            inheritance:
                - Default
            permissions:
                - 'general.time'
                - 'general.teleport'
                - 'general.teleport.here'
                - 'general.player-info'
        Owner:
            default: false
            info:
                prefix:
                suffix:
                build: true
            inheritance:
            permissions:
                - '*'
    ##
    # DarkGrave has control over all commands.
    ##
    users:
        risinglotus:
            group: Owner
            permissions:
            - '*'
    Also console said this java.lang.NullPointerException
    at com.aranai.spawncontrol.SCPlayerListener.onPlayerJoin(SCPlayerLis
    r.java:257)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoade
    va:130)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener
    a:59)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManag
    ava:225)
    at net.minecraft.server.ServerConfigurationManager.a(ServerConfigura
    Manager.java:96)
    at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:87)
    at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:27)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:87)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:338)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:252
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    2011-02-23 19:12:49 [INFO] risinglotus lost connection: disconnect.quitting

    Thanks in advance.
     
  14. @risinglotus Downgrade to permissions 2.0 that will fix it
     
  15. Offline

    Olat

    Code:
    2011-02-23 09:57:50 [INFO] [SpawnControl] Schema has changed. Updating from 0 to 1
    2011-02-23 09:57:50 [INFO] [SpawnControl] Running schema update #1
    2011-02-23 09:57:51 [SEVERE] spawnX (Is it up to date?)
    java.lang.NoSuchFieldError: spawnX
            at com.aranai.spawncontrol.SpawnControl.initDB(SpawnControl.java:198)
            at com.aranai.spawncontrol.SpawnControl.onEnable(SpawnControl.java:245)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:140)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:426)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:187)
            at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:76)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:57)
            at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:187)
            at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:174)
            at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:120)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:227)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    
     
  16. Offline

    Timberjaw

    @Olat Looks like they've removed those fields in the latest build (that's for SpawnControl to override the global spawn as a final fallback). Set behavior_globalspawn to 0 to avoid the error in the meantime.
     
  17. @Timberjaw is it possible to give behavior_death another option? 4 = send player to home, or global spawn if no home is found.
     
  18. Offline

    Olat

    @Timberjaw
    Also your Plugin Stops WorldGuard 3.2.3 from loading.. Yours and Hero Bounty both wont allow WG to load.. When i remove yours. WG loads fine.
     
  19. Offline

    Raymond Doerr

    Latest Bukkit (424)
    Latest SpawnControl
    Permissions 2.0

    For some reason behavior_death and behavior_join are not working when set to 2. (Spawn at groupspawn). They just send the users back to the globalspawn.

    EDIT: Issue resolved, I'm just an idiot and forgot to fix the SpawnX issue, causing the plugin to not load. :p
     
  20. Offline

    Timberjaw

    Home is global spawn if the user hasn't set one. The plugin sets the user's home to the global spawn the first time they join.
     
  21. doesn't seem to work for me though, i have behavior_death set to 1, which should send me to home if i die, but when i die, it says it can't locate home, no errors in console though
     
  22. Offline

    Geoff Winans

    Still seeing errors.


    ------------

    Code:
    2011-02-23 16:09:16 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'spawn' in plugin SpawnControl v0.6.2
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:21)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:77)
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:173)
            at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:633)
            at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:596)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:590)
            at net.minecraft.server.Packet3Chat.a(SourceFile:24)
            at net.minecraft.server.NetworkManager.a(SourceFile:230)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:70)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:338)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:253)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NullPointerException
            at com.aranai.spawncontrol.SCPlayerListener.onCommand(SCPlayerListener.java:96)
            at com.aranai.spawncontrol.SpawnControl.onCommand(SpawnControl.java:281)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:19)
            ... 12 more
     
  23. Offline

    Timberjaw

    @Olat That doesn't make any sense. No errors in console?

    @Graloth Does it say "cannot find respawn for PLAYER"

    I'll update today to get rid of the spawnX issues (and disable behavior_globalspawn for now). Perhaps that's causing other startup issues. I haven't been able to reproduce the missing home issue though.
    --- merged: Feb 23, 2011 11:48 PM ---
    Looks like your Permissions plugin is missing or out of date. Should be 2.1.
     
  24. Offline

    Geoff Winans

    It is 2.1, I nuked all plugins and did a from-scratch install.

    Hmmm
     
  25. Offline

    Timberjaw

    Can you pastebin your full startup log?
     
  26. Offline

    Olat

    @Timberjaw

    Well to trouble shoot I added each plugin 1 by one until WorldGuard stopped loading.
    WorldGuard loaded with every plugin except yours. The Momment I added yours. Worldguard did not load.

    I still also dont know how to fix that spawnX error because Spawncontrol isnt loading or is broken when I load it onto my server. So there is no /sc_config for me to set the Global Spawn behavior to 0. And I didnt see any config files.
     
  27. Offline

    Timberjaw

    @Olat The config is in the spawncontrol.db sqlite database. You'll need the sqlite3 tool and some basic SQL knowledge to manipulate it. I'll be updating SpawnControl shortly to address the spawnX issue though; perhaps that will fix the loading problem.
     
  28. Offline

    Olat

    @Timberjaw

    *laugh* ya SQL stuff, never touched it.. I justy got done learning basic Linux to run my server efficiently.
     
  29. Offline

    cnx4mia123

    for some reason, my players cant use /sethome and /spawn like i set my permissions to can some1 help me please? here is my permissions file. its is named world.yml
     

    Attached Files:

  30. Offline

    Timberjaw

    Looks ok. You're using Permissions v2.1, SpawnControl v0.6.2, and CraftBukkit build 426 or higher? What message do your players get when they attempt to use /sethome or /spawn?
     
  31. Offline

    cnx4mia123

    yes im using CraftBukkit build 432. The message they get is the do not have permissions one.
     

Share This Page