[INACTIVE][ADMIN/TP] Wormhole X-Treme Worlds v0.4 - Multi-World Management & Protection [740/766]

Discussion in 'Inactive/Unsupported Plugins' started by alron, Apr 16, 2011.

  1. Offline

    alron

    Wormhole X-Treme Worlds - Lightweight multi-world management & protection.

    Current Version: v0.4 (RB733/740/766) ( ZIP | JAR) CHANGELOG | README
    Requires: Sun/Oracle Java 1.6.0_20+. (OpenJDK/JRE is missing the XML Libraries we depend upon)

    Remember to rename jar file to 'WormholeXTremeWorlds.jar' if downloading just the jar.

    Donate: I don't want your money. If you still feel you need to donate money, give it to the Red Cross. Really. There are people out there who need it much more than I.

    General Information:
    This is an early release for Wormhole X-Treme Worlds. Consider it extremely beta. I have tested it as much as I could. It seems stable and works as intended, though I am sure there are still bugs kicking around.

    This plugin is designed to manage multiple worlds and provide basic world and player protection functionality. In the long run there will be tight, but optional, integration between it and Wormhole X-Treme itself, as this plugin was created to scratch the multiple world management itch that Wormhole X-Treme users have brought up time and time again.

    Please be aware, improper command use on existing worlds does have the remote possibility to destroy or badly damage that world. Mostly if you set a normal world to nether.

    In it's current form this plugin can create new worlds (with or without custom seed), set the custom world spawn point, autoload worlds at server start, teleport authorized players to specified world spawn, and teleport players to current world spawn, provide world protection (fire, lava, lightning, water) and provide player protection (fire, lava, drowning, pvp, falling, and all). It uses no database and stores all its important data in XML files. The spawn point you get for normal worlds is exactly what CraftBukkit hands the plugin at world creation or load. The spawn point for generated nether worlds is found dynamically.

    Currently this plugin is able to make use of the Permissions plugin and the Help plugin (no link at current due to plugin author being inactive). When permissions is not enabled, all commands require a user to be an op.

    Features:
    • Basic Multiple World Management.
    • World Specific Spawn and Setspawn capabilities.
    • Permissions support.
      • Note: Without permissions we fall back to doing isOp() checks. For every command.
    • Seed saving to world config file. If a world is loaded with WXW once, we'll have the seed saved. Also uses this seed to generate worlds if they have a WXW config but no world data on disk.
    • Basic creature spawn controls. Ability to disable hostile or neutral mobs on a world by world basis.
    • Honoring of spawn change events external to WXW.
    • The ability to use text seeds in both the 'wxw create' command as well as in the world xml config files.
      • Note: String data will be converted to long using the character integer values appended.
    • Advanced safe teleportation for spawn and go commands.
      • Note: The spawn and go commands both check if the destination blocks are safe (at, above, and below). If they aren't they either run the safe spawn finder (for nether) or the highest yAxis block finder (normal) and place the player appropriately
    • Ghasts are now considered hostile monsters, and are dealt with as such.
      • Note: Ghasts don't seem to disappear, they ghost (sometimes). But they don't move or attack the player, and are unable to be interacted with, so... kind of works?
    • Nether World safe spawn creation.
      • Note: We scan up to 19773 (9 * 13^3) blocks to find a safe spawn point. If we don't find one... sorry. It is solid rock (or lava or whatever) for you.
    • World specific player damage, fire, drowning, falling, lava, lightning and pvp protection controls.
    • World specific world fire spread, lava spread, water spread, lightning fire and lava fire protection controls.
    • Wold specific time locking controls. Three options, day, night, and none. Along with this functionality comes the ability to globally hard disable it in the config.xml.
      • Note: We don't default to any type of time locking on any world due to potential redstone circuit issues caused by time changes.
    New features/fixes in repo for v0.5:
    • On death re-spawn event catching. If you have the 'serverOptionSpawnCommand' set to true in config.xml, we now catch player respawns and send them to the exact spawn location.
      • Note: This and the '/spawn' command have been moved into their own plugin.
    • Fix to allow users to specify a negative long value for the seed. Previously it'd consider a '-seed -32493532454' as two different commands. Now it will do a number format check and decided properly if it is an arg or a command. :)
    • Weather locking on a world by world basis. None, Clear, Rain, Storm. None being the default and disabling no weather functions. Clear disables rain. Rain is well, rainy, but has no lightning. Storm is rainy with lightning.
      • Note: Currently the weather selection for the main world directly effects all worlds. This is a Craftbukkit bug, and there is nothing I can do about it.
    • Now on initial run (or run with no or empty worlds folder) we add the default loaded world as a wormhole world with default options (in a environment aware way).
    • Added more player protection options. Explosion, void, suffocation, and contact.
    • Added world protection options to disallow players starting fires and disable fire all together.
      • Note: We do not remove existing fire. Too costly to scan for.
    • World xml file option name changes (yes, we still read in the old names; the config file is regenerated at server shutdown with the new names).
    Planned Features:
    • World creation in a thread, as to not block the WXW process during generation.
    • Automated world backups. (In a thread, if possible, so it can block all it wants.). I'm doing a bit of everything else, why not add backups, right? Planned to be on a world by world basis, of course.
      • Hrm, lets back burner that feature for a while. Other things more pressing.
    • In game core plugin configuration commands. So players don't have to edit the XML file if they don't want to.
    • Full cleanup of output for commands, to be more like 'wxw info' or 'wxw modify'. Color coding, screen width formatting, and other general textual goodies.
    README (open)

    To Install:
    1. Extract WormholeXTremeWorlds.jar into your plugins/ folder.
    2. Start server.
    3. Add all existing worlds to WXW via the '/wxw create' command.
    To Upgrade:
    1. Extract updated WormholwXtremeWorlds.jar into your plugins/ folder.
    2. Start Server.

    COMMANDS (open)

    Command List with Permissions Nodes:
    • '/wxw go [world]' - Go to spawn of specified world. - wxw.admin.go
    • '/wxw list' - List all loaded and configured worlds. - wxw.admin.list
    • '/wxw remove [world]' - Remove world from configuration. - wxw.admin.remove
    • '/wxw load [world]' - Load unloaded world. - wxw.admin.load
    • '/wxw modify [args]' - Modify settings of specified world. - wxw.admin.modify
      • Required args: -name <world>
      • Optional args: -owner <player>, -daylock, -nightlock, -notimelock, -(no)autoload, -(no)lavaspread, -(no)neutrals, -(no)firespread, -(no)lavafire, -(no)hostiles, -(no)waterspread, -(no)lightningfire, -(no)lightningdamage, -(no)damage, -(no)drown, -(no)pvp, -(no)lavadamage, -(no)falldamage, -(no)firedamage
    • '/wxw info [world]' - Get info about specified world. - wxw.admin.info
    • '/wxw setspawn' - Set spawn of current world to current location. - wxw.admin.setspawn
    • '/wxw create [args]' - Create new world with specified args. - wxw.admin.create
      • Required args: -name <world>
      • Optional args: -owner <player>, -seed <num>, -nether, -noautoload, -nohostiles, -noneutrals, -nopvp, -daylock, -nightlock, -nolavaspread, -nodrown, -nofirespread, -nolavafire, -nowaterspread, -nolightningfire, -nolightningdamage, -nodamage, -nolavadamage, -nofalldamage, -nofiredamage
    • '/wxw spawn' - Go to spawn of current world. - wxw.spawn
    • '/spawn' - Go to spawn of current world. - wxw.spawn
      • Note: This command is hard disabled in config by default.

    CONFIG (open)
    Config.xml options with defaults:
    • serverOptionPermissions - Enable or disable Permissions plugin support. Default: true
    • serverOptionOpsBypassPermissions - Ops bypass Permissions plugin access checks. Default: true
    • serverOptionHelp - Enable or disable Help plugin support. Default: true
    • serverOptionSpawnCommand - Enable or disable '/spwawn' command. Does not disable '/wxw spawn'. Default: false
    • serverOptionTimelock - Option: Enable or disable timelock functionality. Default: true

    CHANGELOG (open)

    Important changes in bold.

    v0.4 2011.04.24 09:20 PST:
    • Initial sticky chunk support. We allow plugins to register chunks that do not unload. When the chunk is no longer sticky, we schedule it for unloading. We properly catch and cancel the required chunk unload events.
      • Note: This is really only useful for v0.850 of wormhole x-treme I am working on currently.
    • Added support for player protections on a world by world basis. Drowning, burning, lava swiming, lightning strikes, falling damage, and all player damage. Controlled via the wxw modify and wxw create commands.
    • Added support for world protections on a world by world basis. Fire spread, lava spread, water spread, lightning fire, and lava fire. Controlled via the wxw modify and wxw create commands.
    • Updated wxw info ... to be more useful. Colorized it. Now when called without a world, shows info on current world.
    • Updated help output for wxw modify and wxw create to be slightly more useful.
    • Fixed typo in config loader for Neutral monster disable.
    v0.3 2011.04.21 02:17 PST:
    • Added timelock. Uses scheduler. Now users can lock their worlds to day or night. Worlds default to normal time schedules.
    • Added config.xml option to disable timelock and its scheduler. Defaults to scheduler enabled.
    v0.2.1 2011.04.20 04:38 PST:
    • World specific PvP controls. True or false.
    • Updated safe spawn code for normal worlds to only use highest y if spawn is covered. This allows indoor spawn locations. Also now retain player pitch and yaw on spawn or go.
    • Updated the find safe spawn location code to be modular. Can be used for more than just finding initial spawn locations now, with small enough xyz numbers ;)
    • Used new modular safespawn in a 3^3*9 setup for finding a safe location to drop player if nether spawn location is built over. Overkill, but ...
    v0.2 - 2011.04.19 01:39 PST :
    • Nether safe spawn generation has been completed. We scan up to (13^3)9 blocks for a safe place. Only used when world is first generated.
    • Added '/spawn' command with default hard disable via config file.
    • Normal world safe spawn teleport. We'll drop the player on top of the highest block at the spawn location. If users build to the skybox at spawn, it is not our problem. Nether still has no such thing. If a player builds over where spawn is on nether worlds, players will /spawn themselves into solid rock.
    • Text seeds, you can use them. Not sure if they work the same as with vanilla... but. :)
    • Ghasts are now considered to be hostile mobs, and dealt with as they should be.
    • Squids are now considered to be neutral mobs, and dealt with as they should be.
    v0.1.2 - 2011.04.17 08:41 PST :
    • Reverted optimization in prettyLog. Apparently causes NPE problems on some setups.
    v0.1.1 - 2011.04.17 07:15 PST :
    • We now store the world seed in our world config files. The seed value is based on what the world actually uses. This allows users to add worlds and have a valid seed stored in their config for later use. When the seed is a valid seed number (non 0) we call the world load with the specific seed. This way if someone wants to reset a world, all they have to do is delete the world folder on disk before starting the server.
    • We now pay attention to external spawn change events and update our internal spawn location references as appropriate.
    • We now properly honor the creature spawn restriction options. We clear banned types of creatures at world load as well as any time a world is connected. We also cancel creature spawn events as needed.
    • Minor performance change to our internal prettyLog method. Check to make sure system log even is appropriate for the log type we are generating.
    • Changed connect command to load. Kept connect as alias for compatibility.
    • Fixed a few NPE when trying to teleport to a world that is not loaded.
    • Info command now shows world seed.
    v0.1 - 2011.04.16 06:48 PST :
    • Initial plugin release.

    World Management Examples (open)

    In this example, the world name is 'world' and the player name is 'player'.

    To add an existing normal world set to auto load at start with time locked to day:
    • /wxw create -name world -owner player -daylock
    To add an existing nether world set to not autoload at start with time locked to night:
    • /wxw create -name world -owner player -nether -noautoload -nightlock
    To create a new normal world with custom seed.
    • /wxw create -name world -owner player -seed 5677344492879191995
    To remove a world configuration from disk. Note: actual world will not be deleted from disk.
    • /wxw remove world
    To modify an existing worlds owner and set it to autoload, disable PvP, and disable Hostile monsters.
    • /wxw modify -name world -owner player -autoload -nopvp -nohostiles
    To connect/load a world set to not autoload at server start.
    • /wxw load world
    To teleport to spawn of managed world.
    • /wxw go world
    To teleport to spawn of current managed world.
    • /wxw spawn
    To set the spawn of current managed world to current location.
    • /wxw setspawn


    Github Repo: Wormhole X-Treme Worlds
    Release RSS Feed: Wormhole-X-Treme-Worlds.rss
    Dev: alron
     
    cj89898, Mijoja, Xaostica and 3 others like this.
  2. Offline

    ultimak

    As the person above me said, multi-inv does just that and you can specify worlds that share the same inventory. its all in the OP and its a very simple and easy plugin.
     
  3. Offline

    Platoon74

    is this compatible with 1,5 ?
     
  4. Offline

    oro4

    Platoon74: Yes

    alron: I got it working after I replaced diablo-jre with openjdk6.

    Now, I have a question. Is there a way you can have different health bars on different worlds? I don't want players running back to the creative world (with health regeneration) every time they hurt themselves in the survival world.
     
  5. Offline

    Jaxter

    Hey all, I keep getting this weird thing, it keeps spawning random obsidian in the shape of a stargate (every other block) around the world randomly each time I restart my server :(
     
  6. Offline

    casso

    awesome plugin, replaced multiverse and now I use WormholeXteme for portals.
     
  7. Offline

    valdark

    It is most likely the seed you are using. Try a different seed.
     
  8. Offline

    ChazZTheSpazZ

    The /spawn and /wxw spawn commands aren't working for me. I've enabled the option in the config file, but I still get errors. My Moderators and below are all getting ":: error :: You lack permissions to do this" when trying to use either of those commands. The node wxw.spawn is added at Citizen level, which is inherited by the Moderators. They should have permission to use it. I get a different message as Admin though: ":: error :: Command only available on managed worlds: spawn". I'm using CB 740.

    This aside, I'm loving both Wormhole plugins. Thanks!
     
  9. Offline

    alron

    Pastebin your config.xml and the output of your bukkit console from when you launch it till it says Done.
    Once I have those, I may have additional questions. :)
     
  10. Offline

    ChazZTheSpazZ

    Config - http://pastebin.com/jQFcwTAv
    Server log - http://pastebin.com/CRzcLeu3
    Permissions - http://pastebin.com/BkuyRv5v

    You can see my permissions as well, just in case I messed up something there. Ignore the spacing on lines 31 and 51, that's pastebin's fault.
     
  11. Offline

    alron

    Hrm, everything looks fine. It should be working. Sounds like a permissions plugin issue. What happens when you give the 'wxw.spawn' permission directly to your citizen group?
     
  12. Offline

    ChazZTheSpazZ

    The Citizen group does have that permission. It's at the bottom of the list. I'm thinking it may be the Permissions plugin itself though. I've also had trouble with some users not being able to dial gates (hit the button, get permission error). It's only a couple users though, not the entire group. Should I just downgrade my Permissions plugin?
     
  13. Offline

    alron

    No idea, really. I haven't been seeing these problems myself. Soo... your guess is as good as mine. :S
     
  14. Offline

    ChazZTheSpazZ

    Alright, thanks for you time. I'll post back if/when I find a solution.

    Edit: I tried removing all plugins except Permissions and Wormhole X-Treme Worlds, but that didn't fix the issue. I also tried using Permissions v2.5.5, and that didn't work. I'm just going to get a new plugin for /spawn until this bug (hopefully) resolves itself.

    Edit2: The problem seems to be with my Moderator group not inheriting the Citizen group's permissions properly. I don't know why. Simply copying those permissions to the Moderator group seems to fix the lack of permission error. Now I'm just getting the other error (Command only available on managed worlds: spawn).
     
  15. Offline

    nicquehen

    Hi and thx for your job man.

    I'm french guy i try to manage permission to different budies.

    I use : Loaded Essentials build 2.2.7 (with groupmaner)
    and wxw 0.4
    With 740 bukkit build

    I want the default user can use wxw go command

    i add the wxw.admin.go in my group.yml than below :

    Code:
    groups:
      Default:
        default: true
        permissions:
        - essentials.help
        - essentials.helpop
        - essentials.list
        - essentials.motd
        - essentials.rules
        - essentials.spawn
    -wxw.spawn
    -wxw.admin.go
        inheritance: []
        info:
          prefix: '&e'
          build: false
          suffix: ''
    I have this exception in server.log

    Code:
    2011-05-03 22:58:48 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'wxw' in plugin WormholeXTremeWorlds v0.4
        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:255)
        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 org.anjocaido.groupmanager.permissions.NijikoPermissionsProxy.permission(NijikoPermissionsProxy.java:241)
        at org.anjocaido.groupmanager.permissions.NijikoPermissionsProxy.has(NijikoPermissionsProxy.java:224)
        at com.wormhole_xtreme.worlds.permissions.PermissionType.checkPermission(PermissionType.java:119)
        at com.wormhole_xtreme.worlds.command.CommandUtilities.doSpawnWorld(CommandUtilities.java:185)
        at com.wormhole_xtreme.worlds.command.Wxw.onCommand(Wxw.java:926)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
        ... 12 more
    edit :

    wxw config.xml file

    Code:
    <?xml version="1.0"?>
    <WormholeXTremeWorlds>
        <!--Option: Enable or disable Permissions plugin support. Default: true (enable)-->
        <serverOptionPermissions>
            <type>boolean</type>
            <value>true</value>
        </serverOptionPermissions>
    
        <!--Option: Ops bypass Permissions plugin access checks. Default: true (enabled)-->
        <serverOptionOpsBypassPermissions>
            <type>boolean</type>
            <value>true</value>
        </serverOptionOpsBypassPermissions>
    
        <!--Option: Enable or disable Help plugin support. Default: true (enabled)-->
        <serverOptionHelp>
            <type>boolean</type>
            <value>true</value>
        </serverOptionHelp>
    
        <!--Option: Enable or disable '/spwawn' command. Does not disable '/wxw spawn'. Default: false (disabled)-->
        <serverOptionSpawnCommand>
            <type>boolean</type>
            <value>false</value>
        </serverOptionSpawnCommand>
    
        <!--Option: Enable or disable timelock functionality. Default: true (enabled)-->
        <serverOptionTimelock>
            <type>boolean</type>
            <value>true</value>
        </serverOptionTimelock>
    
    </WormholeXTremeWorlds>
    Do you have any idea ? :)


    edit : I solve the problem is just a syntax problem in the group.yml !
     
  16. Offline

    Kupuntu

    Perfect plugin for me as me and my friends have two worlds + nether that we want to play. Thanks a lot.

    I do have one question though. It seems that if I set the bukkit config to not have monsters on (ie. spawn-monsters=false), I can't turn on mobs with your plugin on the world bukkit loads and the HP will regen over time in the first world. However, in other worlds HP never recovers, even if I have all damage and monsters turned off in your plugin and in bukkit config. Is there any way around this or do I have to load the first world as the "no-monsters" one to be able to have regen HP there? I'm using Bukkit #740 and v0.4 of your plugin. I hope I was clear enough and that this hasn't been asked before...
     
  17. Offline

    alron

    That means you need to add that world to the wormhole worlds configuration.
     
  18. Offline

    ChazZTheSpazZ

    Yeah, I just figured that one out after I used '/wxw list'. Thanks again.
     
  19. Offline

    Indyhouse

    What is the syntax to change an already added world (in this case "nether") to be a nether world?
     
  20. Offline

    alron

    There is none, best bet is is with a '/wxw remove nether' followed by '/wxw create -name nether -nether'.
    If it is not your primary world, you will need to restart the server as there is currently no way to "unload" a world.
    That is assuming that the world was created properly as a nether world elsewhere, and you just imported it wrong.

    If you created the world wrong in the first place, run '/wxw remove nether', shut your server down, delete the nether directory, start the server back up, run '/wxw create -name nether -nether'.

    Hope that helps.
     
  21. Offline

    woodzy

    hay can you please login my server befor i freak out it wont load any worlds not even the starting world
    /wxw load world
    /wxw load [world]
    gets me a message saying :: error :: World may exist on disk, but has not been registered with Wormholw X-Tream Worlds.
    theres no file(s) in /plugins/WormholeXTremeWorlds/worlds/
     
  22. Offline

    alron

    You need to add the world to wormhole worlds. The load command is for loading existing wormhole worlds which are not set to autoload.

    So, if your main world is 'world' on disk, you'd add it with '/wxw create -name world'.
    If you are adding a nether world which exists on disk already with the name 'nether', you'd add it with '/wxw create -name nether -nether'

    Hope that helps.
     
  23. Offline

    AntonyDream

    It is possible to add player damage rate to world config? For making some worlds more dangerous or something like that 8)
     
  24. Offline

    alron

    So, sorry about the slowdown in updates. I have been trying to get Wormhole X-Treme v0.850 finished so I can release it at the same time as Worlds v0.5. The way things have been moving I expect to have test releases for both out this weekend (if not sooner).
     
  25. Offline

    woodzy

    thanks a bunch man get it 100% thanks for that dummy proof example XD
    you only have world makeing and importing with this plugin dont you?
     
  26. Offline

    alron

    More or less.

    Plus the protection stuff and the spawn option (that is disabled by default).
     
  27. Offline

    woodzy

    does permissons tie in per world?
    and worldguard as well?
     
  28. Offline

    alron

    Permissions are global. guarding is on a per world basis.

    We are not a worldguard replacement. Though we do provide some of the same functionality.
     
  29. Offline

    woodzy

    i ment does it follow the rules of thes plugins, i use them
     
  30. Offline

    valdark

    Is there a way to change where I respawn on death? I would like to respawn on the world I die in however am respawning at the original world spawn regardless of death location.
     
  31. Offline

    gpisic

    OMG... World creation and management has never been that easy.
    Tested this on my Server and it works perfect.
    All the [diamond][diamond][diamond] for you guys!!!:D
     

Share This Page