Inactive [ADMN/GEN/INFO/TP/RPG] MyWorlds v1.48 - Multi-world plugin with a touch [2320]

Discussion in 'Inactive/Unsupported Plugins' started by bergerkiller, Aug 15, 2011.

  1. Offline

    bergerkiller

    [​IMG]

    You may wonder, why so many tags? Well, that is because this plugin simply contains a lot of features that fall under those tags! I originally made (parts of) this plugin for our server, but it proofed to be a 'publishable' plugin as well. :)

    Description

    This plugin features everything related to worlds. Features:
    • Load, unload, copy, delete, save and create worlds
    • Show information of worlds and list available chunk generators and worlds
    • Set world game mode, difficulty, time, weather, autosaving, PvP
    • Set world mob spawn restrictions
    • Evacuate worlds to clear them from players
    • Repair broken worlds to some extend
    • Make portals cross-world, one-way, simple, no commands needed
    • World-specific chat rooms using permissions
    • Automatically load worlds when the server starts and persistent settings
    • Extensive permission system, you can even set who can enter what world
    • Can act as a tool for other plugins to teleport players from one world to the other
    • Simple teleportation commands
    • Set OP lists for specific worlds to make players operator on certain worlds
    • Easy-to-remember commands: with aliases and chat-message help
    A nice tutorial by FrozdY



    BukkitDev page

    For configuration, commands, etc, look on the BukkitDev page under Links.
    All documentation pages are now on Bukkit Dev.

    Known bugs:
    - None
    Disclaimer (because things CAN go wrong)

    I am not responsible for world damages done by this plugin or by certain commands this plugin performs. If you, for example, loaded 20 worlds and hosted it on a buggy computer with 30 players, odds are the server (and your computer) will crash and worlds become corrupted. Repair can fix worlds, but this does not recover damaged chunks, so don't think you are always covered. Also, never forget to make backups of your worlds, but I guess this is common sense...

    FAQ:
    - Different inventories per world? No, you can use World Inventories for that.
    - Or try MultiInv while it is still maintained.
    - Repair ruined your world? Backup of region files can be found in the region folder, simply restore.


    Important links:

    Download the MyWorlds.jar from GitHub
    Look at the source at GitHub
    BukkitDev page

    Changelog

    Show your appreciation for my plugins by donating
    [​IMG]
     
  2. Offline

    ledhead900

    Well unfair/ I don't think so, there are 2 kinds of server owners those who get tiny plugins that do 1 job, and those who get bigger complicated plugins that do many at once.

    I am the later I prefer to merge management plugins into one and fun plugins as separate jars.
    I actually need this coded due to the custom terrain world as we all know clients do not properly get the information when we mess around with biome generation.

    So I need to stop the snow fall but keep the lightning and rain storms or I need to block the creation of ice and snow the first would be preferable but I know it needs spout / spoutclient to do it easily but It can be done with just spout and no client mod but its a lot harder tho I am willing to test it without client if you had time to mess with it that is, on the other side of the coin just a quick hack to block the events fired by the snow fall would allow damn snow in the desert but not cover desert in snow or ice up anything.

    Really it is up to you but I had to get snow dealt with somehow with out just disabling all weather events.
     
  3. Offline

    bergerkiller

    @ledhead900 Ok then I'll add:
    - /world formsnow true/false [world]
    - /world formice true/false [world]
    - /world showrain true/false [world]
    - /world showsnow true/false [world]
    The show nodes set if rain/snow is seen by Spout clients. (and only those)
     
  4. Offline

    ledhead900

    Excellent that is perfect!

    Oh & Happy Christmas
     
  5. Offline

    bergerkiller

    @ledhead900 I don't have SpoutCraft (I use Modloader and it's incompatible...) but could you test it out? I added complete support for Spoutcraft users:
    Code:
        public void updateSpoutWeather(Player player) {
            if (MyWorlds.isSpoutEnabled) {
                try {
                    SpoutPlayer sp = SpoutManager.getPlayer(player);
                    if (sp.isSpoutCraftEnabled()) {
                        SpoutWeather w = SpoutWeather.NONE;
                        if (player.getWorld().hasStorm()) {
                            if (this.showRain && this.showSnow) {
                                w = SpoutWeather.RESET;
                            } else if (this.showRain) {
                                w = SpoutWeather.RAIN;
                            } else if (this.showSnow) {
                                w = SpoutWeather.SNOW;
                            }
                        }
                        SpoutManager.getBiomeManager().setPlayerWeather(SpoutManager.getPlayer(player), w);
                    }
                } catch (Throwable t) {
                    MyWorlds.isSpoutEnabled = false;
                    MyWorlds.log(Level.SEVERE, "An error occured while using Spout, Spout is no longer used in MyWorlds from now on:");
                    t.printStackTrace();
                }
            }
        }
    But I can't test it :(
    (See the DEBUG 1.33 version on GitHub, you can test the commands previously mentioned)

    EDIT

    And Happy Christmas to you too :)
     
  6. Offline

    ledhead900

    Sure but do you have a gitlink I can't compile this sorry :(, I must have gave u the impression at some point but I just happen to understand the code a little. When I inquire it is usually coz I would be telling some other developer that they can or can't use an API to do something.

    Edit

    This error is a Webauction being naughty isn't it ?
    Code:
    2011-12-25 00:51:59 [SEVERE] java.lang.IllegalAccessError: Synchronized code got accessed from another thread: me.exote.webauction.WebAuction$3
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.event.world.WorldListener.onChunkLoad(WorldListener:0)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$52.execute(JavaPluginLoader.java:626)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
    2011-12-25 00:51:59 [SEVERE] at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:92)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.craftbukkit.CraftWorld.getChunkAt(CraftWorld.java:101)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:69)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:440)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.Location.getBlock(Location.java:81)
    2011-12-25 00:51:59 [SEVERE] at me.exote.webauction.WebAuction$3.run(WebAuction.java:427)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34)
    2011-12-25 00:51:59 [SEVERE] java.lang.IllegalAccessError: Synchronized code got accessed from another thread: me.exote.webauction.WebAuction$3
    2011-12-25 00:51:59 [SEVERE] at com.bergerkiller.bukkit.nolagg.meta.WorldMetaData.get(WorldMetaData.java:46)
    2011-12-25 00:51:59 [SEVERE] at com.bergerkiller.bukkit.nolagg.meta.ChunkMetaData.get(ChunkMetaData.java:38)
    2011-12-25 00:51:59 [SEVERE] at com.bergerkiller.bukkit.nolagg.meta.ChunkMetaData.get(ChunkMetaData.java:35)
    2011-12-25 00:51:59 [SEVERE] at com.bergerkiller.bukkit.nolagg.NLWorldListener.onChunkLoad(NLWorldListener.java:23)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$52.execute(JavaPluginLoader.java:626)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
    2011-12-25 00:51:59 [SEVERE] at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:92)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.craftbukkit.CraftWorld.getChunkAt(CraftWorld.java:101)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:69)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:440)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.Location.getBlock(Location.java:81)
    2011-12-25 00:51:59 [SEVERE] at me.exote.webauction.WebAuction$3.run(WebAuction.java:427)
    2011-12-25 00:51:59 [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34)
    2011-12-25 00:51:59 [SEVERE] Could not pass event CHUNK_LOAD to NoLagg
    java.lang.NullPointerException
    at com.bergerkiller.bukkit.nolagg.meta.ChunkMetaData.get(ChunkMetaData.java:38)
    at com.bergerkiller.bukkit.nolagg.meta.ChunkMetaData.get(ChunkMetaData.java:35)
    at com.bergerkiller.bukkit.nolagg.NLWorldListener.onChunkLoad(NLWorldListener.java:23)
    at org.bukkit.plugin.java.JavaPluginLoader$52.execute(JavaPluginLoader.java:626)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
    at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:92)
    at org.bukkit.craftbukkit.CraftWorld.getChunkAt(CraftWorld.java:101)
    at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:69)
    at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:440)
    at org.bukkit.Location.getBlock(Location.java:81)
    at me.exote.webauction.WebAuction$3.run(WebAuction.java:427)
    at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34)
    at java.lang.Thread.run(Unknown Source) 
     
  7. Offline

    bergerkiller

    @ledhead900 Yup I uploaded it just now, DEBUG version on GitHub.

    EDIT

    Yup it seems it is. (rolleyes, shall I contact the author or will you report it?)
     
  8. Offline

    ledhead900

    I edited my post ^

    P.S Just finished putting together a bike for my son. All done with unpacking gifts now.
     
  9. Offline

    General_Nono

    Is it possible that one player can have the creative Mode in a Survival-Mode-world without reset after reconnecting?
    Example:
    I'm playing on my world1(survival) and all players should play in the survival mode, but I want to play in Creative mode, so I type: "/gamemode General_Nono 1"
    and I playing in the Creative Mode.
    But when I left the Server and join again, I'm in the Survival mode,but I want to play in Creative...
    so I must type "/gamemode General_Nono 1" again, but I don't want to type it after every reconect! Is there any way to set the gamemode for me, for all Worlds and for ever?
    (sorry for my bad english)

    Happy Christmas!
     
  10. Offline

    bergerkiller

    @General_Nono Not really, but I can add a permission node which sets if a player is ignored during game mode changes of worlds. This way you are not affected by world game modes.
     
  11. Offline

    General_Nono

    @bergerkiller
    Thank you!
    That could be so nice!
    (Please tell me when you implement this,and when I can download this)
     
  12. Offline

    bergerkiller

    @General_Nono All done, see the new 1.33 version.
    Use the:
    Node. Default is false.
     
  13. Offline

    General_Nono

    Thank you very much!
    Now it's working perfectly and I can use your Plugin completly on my Server!
     
  14. Offline

    flarnot

    can i set it up with a sign to go to multiple worlds?
     
  15. Offline

    bergerkiller

    @flarnot What you do is place a [portal] sign under the ground and specify the portal name + the portal name to go to. Then you can place a portal block or water stream nearby, which teleports players to the destination when entered. (and if they got the right permissions to do so)

    A lot more information can be found on the WIKI page.
     
  16. Offline

    ZeroZX4

    hey i got big problem well so
    i never use permissions i use EssentialsGroupManager (is it bad and i need permissions or is it enough ?) and what i want to do is that i have 2 worlds 1 survival and 1 creative and i want to make them completely separated so no 1 from creative CANT join warp teleport or spawn in survival and same for ppl from survival to not be able to by any way to creative (and so they bouth have separate chats)

    i read what nodes i need to add but really i dont understand that system i was trying whole day to set it up and only thing i was able to do was separate chats
    but in the end i get mad and just delete whole settings and leave them default

    so i just have few questions about what i need to do

    1st of all do i need to add nodes here ?

    Code:
    \plugins\GroupManager\globalgroups.yml
    groups:
      g:bukkit_default:
        permissions:
        - bukkit.broadcast.user
      g:essentials_default:
        permissions:
        - myworlds.world.enter.world1 <<<<<<<<<<<<
        - myworlds.world.enter.world2 <<<<<<<<<<<< 
    
    or here



    Code:
    \plugins\GroupManager\worlds\world1\groups.yml
    # Group inheritance
    # any inherited groups prefixed with a g: are global groups
    # These groups are defined in the globalgroups.yml
    # and can be inherited in any worlds groups/users.yml.
    #
    # Groups without the g: prefix are groups local to this world
    # and defined in the this groups.yml file.
    groups:
      Default:
        default: true
        permissions:
        - -bukkit.command.kill
        - myworlds.world.enter.world1 <<<<<<<<<<<<
        inheritance:
        - g:essentials_default
        - g:bukkit_default
    
    and here

    Code:
    \plugins\GroupManager\worlds\world2\groups.yml
    # Group inheritance
    # any inherited groups prefixed with a g: are global groups
    # These groups are defined in the globalgroups.yml
    # and can be inherited in any worlds groups/users.yml.
    #
    # Groups without the g: prefix are groups local to this world
    # and defined in the this groups.yml file.
    groups:
      Default:
        default: true
        permissions:
        - -bukkit.command.kill
        - myworlds.world.enter.world2<<<<<<<<<<<<
        inheritance:
        - g:essentials_default
        - g:bukkit_default
    
    or am i doing it totally wrong ?

    or if it would be more simple if someone tell me how to make it individually for each player so like i just type something like /add playernick world 1 /add playernick world 2
     
  17. Offline

    bergerkiller

    @ZeroZX4 Ow no, do NOT place these permissions in the world-specific permission groups. How can someone enter a world 2 if he only has permission to enter world 2 if he already is on world 2? You need them global. Also make sure you give your player(s) all permissions needed. (if you have 'useWorldTeleportPermissions' enabled, you need to add the teleport permission (for /tpp and /world spawn) too. More of that on the WIKI.

    I don't know too much of permissions (I run a local server so I don't need them), but this is what I know about it. :)
    Also make sure you have 'usePermissions' on true in the configuration, or it won't use the (embedded) Permissions plugin)
     
  18. Offline

    ZeroZX4


    problem is i readed stuff from wiki but i dont understand it much so i was hoping that You or someone else who read this can paste here some example cause from example i could make proper configuration i think
     
  19. Offline

    bergerkiller

    @ZeroZX4 I merely implement the existing node systems, no idea how it works (I know, but that's how it is xd)

    Maybe someone can help with general permissions...try the general Bukkit section.
     
  20. Offline

    ZeroZX4

    k ty
     
  21. Offline

    flarnot

    thanks im trying it out now i really hope it works :)
     
  22. Offline

    FxDeath

    i can't create a skylands world... all it creates is a copy of my nether world... plz help
     
  23. Offline

    alloc

    for 1.0.1 don't work
     
  24. Offline

    ZeroZX4

    i add noddes here

    \plugins\GroupManager\globalgroups.yml
    groups:

    g:bukkit_default: - myworlds.world.enter.bertiland
    - myworlds.portal.enter. world3
    - myworlds.world.teleport. world3
    - myworlds.world.build. world3
    - myworlds.world.use. world3

    and only thing that works is that i cant build in other worlds than world3 but i still can enter them and teleport to ppl who are in different worlds

    do you have idea why ?
     
  25. Offline

    FxDeath

    so what if i use skylands+?
    will it work then?
     
  26. Offline

    bergerkiller

    @FxDeath yup, you can specify the 'chunk generator plugin' to use when creating a world. Right then you specify it in the command:
    Code:
    /world create skyland:skylandsplus:56 seed
    Where 56 is an additional argument for creating the skylandsplus world. (only needed if this is used by the plugin)

    @ZeroZX4 could you post the config.yml you used? (Or check if you enabled the needed permissions there)
    Also, if you use OP this may interfere, since the default teleport.* node is for all OP-set players.

    Also, the built-in skylands world of Bukkit got removed, so you will need a plugin for that now.

    @alloc How doesn't it work? Any errors?
     
  27. Offline

    ZeroZX4

    about ops
    i test it on default user permission < and as i said only chat node work work

    Code:
    usePermissions: true
    teleportInterval: 2000
    useWaterTeleport: true
    timeLockInterval: 20
    useWorldEnterPermissions: true
    usePortalEnterPermissions: true
    useWorldTeleportPermissions: true
    usePortalTeleportPermissions: true
    useWorldBuildPermissions: true
    useWorldUsePermissions: true
    useWorldChatPermissions: true
    allowPortalNameOverride: false
    useWorldOperators: false
    locale: default
    onlyObsidianPortals: false
    
    Code:
    
    groups:
    
      g:bukkit_default:
        permissions:
        - bukkit.broadcast.user
    
     g:defusers:
        permissions:
        - myworlds.portal.enter. world3
        - myworlds.world.build. world3
        - myworlds.world.chat. world3
        - myworlds.world.teleport. world3
    - myworlds.world.use. world3
     
    if you dont have any idea than its ok i instaled multiverse plugin in which teleport/warp/build restrictions works with nodes but even so im still using your plugin cause of that separate chat option

    but i would be happy if you can solve my problem cause than i could use 1 plugin instead of 2
     

    Attached Files:

  28. Offline

    BippCraft

    When I run it in build 1597 I get the error
    Code:
    03:19 em [SEVERE] Error occurred while enabling My Worlds v1.15 (Is it up to date?): while parsing a block mapping; expected <block end>, but found BlockMappingStart 
    and
    Code:
    03:19 em [SEVERE] WorldEdit: Unable to read default configuration: config.yml 
    even thought I just deleted the file so it could create a new one.
    Any help would be greately appreciated :).
    Maybe I should add that the pluggin works fine until I try to set the time and gets this.
    Code:
    03:47 em [SEVERE] [MyWorlds] Failed to fix redstone while setting time!
    03:47 em [SEVERE] java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.TreeSet
    03:47 em [SEVERE] at com.bergerkiller.bukkit.mw.WorldManager.setTime(WorldManager.java:618)
    03:47 em [SEVERE] at com.bergerkiller.bukkit.mw.MyWorlds.onCommand(MyWorlds.java:943)
    03:47 em [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
    03:47 em [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:165)
    03:47 em [SEVERE] at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:378)
    03:47 em [SEVERE] at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:757)
    03:47 em [SEVERE] at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:722)
    03:47 em [SEVERE] at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:715)
    03:47 em [SEVERE] at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
    03:47 em [SEVERE] at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    03:47 em [SEVERE] at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:93)
    03:47 em [SEVERE] at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    03:47 em [SEVERE] at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:527)
    03:47 em [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:425)
    03:47 em [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)
     
  29. Offline

    bergerkiller

    @BippCraft You better update MyWorlds, you are around 18 versions back :)

    @ZeroZX4 Permissions and configuration seem to be 100% correct, wish I could help...but I simply can't see why the chat permission works but the world enter permission not. Beats me, honestly.

    Ow, and important to note: World enter permissions do NOT count for teleportation other plugins offer. For example, if you use /tp to teleport to a player on another world, this is NOT blocked. I did this on purpose so it's not a huge hassle to get a guest on another world.
     
  30. Offline

    BippCraft

    Oh :rolleyes: Thats what you get for being lazy using Bukkit up to date :p.
    But thanks anyway, and great pluggin by the way.
     
  31. Offline

    ZeroZX4

    seams thats the problem im ussing essentials teleportation system and realteleport portals
    anyway good that chat node works its good enough

    ok ty for your help :)
     

Share This Page