WorldSync
This plugin will allow server admins to have two worlds synced with each other. All block placements and breakages will also occur in the other world. The blocks will only drop on the world where they are broken to prevent abuse. At the moment shift doesn't require permission to use. Will be added in a later release.
Commands:
worldsync:
description: Commands for WorldSync.
aliases: ws
usage: |
/worldsync create [world1] [world2] - Syncs two worlds listed if they exist.
/worldsync remove [num] - Removes the sync with that number.
/worldsync shift - Teleports the player to the corresponding location in the synced world.
/worldsync list - Lists synced worlds.
permission: worldsync.use
permission-message: You don't have permission to do that.
Permissions:
worldsync.use:
description: Allows a player to use WorldSync commands.
default: op
Currently Syncs:
- Blocks placed and destroyed by the player
- Blocks destroyed by an explosion.
- Water and lava placed and removed.
- Leaf decay
- Blocks destroyed by fire
- Block changed by entities
- Blocks melting i.e. snow and ice
Already in next update:
- Trees and large mushrooms growing.
- Ice and snow being created naturally and by Snow Golems.
- Grass, mycelium, and fire spread.
Known Bugs:
- When explosions are synced sand and gravel often won't fall if they should. (Fixed in next update)
- Beds half syncing.
- Shifting while in a boat doing weird things. (Fixed in next update)
- Cocoa pods not syncing.
Suggestions welcome
Hey, would you be interested in reviving the plugin? How many servers can be in sync? Im looking to have the ability to have a limitless number of servers if possible.
Thanks
Is it possible to make a config for this that would partly sync maps? Maybe limiting what blocks can be synced and giving a % chance to the sync of blocks.
I am looking for a plugin that can make ruins out of builds so players can be warped into a future version of the map. Normal map -> future map where old builds have broken down and valuables have been stolen
I was thinking of this exact concept, but between my Survival Server and Build Server, and way to sync it between two seperate servers? if not, Please make this feature and i will be more than happy to do the Testing of them. (They are running off of the same machine)
Is there any way of doing a one way sync? So world a effects b but b doesn't effect a.
This would be neat on a minigame server! Nice!
@L24D
I'll look into it when I have time.
EDIT: It looks to me like 26 is the id of the bed when it is placed and 355 is when it is in an inventory. I will look into it more when I have time though
Ah, okay..
@TKramez About the bed block thing, there are two ids for beds.. pretty sure 26 is the half bed, and 355 is the full one... Maybe if there's a way to set the "base block" as the block that's synced, and... have it orient itself as you did with the stairs... Dunno. Just a thought. Unless 355 is quirky when placed by other means..
Hmm, my sentence didn't quite make much sense... >_>
@L24D
I have made it so players can't shift while in any vehicle. I wasn't having the same problem you were with boats but it was still screwing things up. Placing cocoa pods don't appear to fire the event. I'll see what I can do. I am aware of the bed problem and I will look into it. I haven't had a problem with the sheep yet so I'm not going to worry about it unless it occurs for me. I'm pretty sure the sand with the furnace was a fluke because I have no idea how my plugin could have effected that.
@TKramez
not completely sure what happened, but the nether world screwed up somehow... I think that may have been what caused the error.. I recopied the overworld and such, the error never happened again..
I did find some really creepy bugs though. Boats are evil... xD
shifting while in a boat leads to the person appearing as if the player is sitting on the water's surface, unable to move... even though he isn't there. Might have to deny shifting while in a boat. :P
And, cocoa bean pods don't seem to appear in the synced world either...
Beds have a minor issue too... The synced world only places a half bed block instead of a full one. lol everything else seems good though,
Sorry if I'm getting a bit carried away... I'm having a blast finding all the little quirks and such.
Edit: I wonder.... the whole sheep/grass comment... I wonder if that may be what's triggering a client crash... or... system crash, in some cases. I got a dump from a crash that my system pulled out of, and it listed animal locations... could be an interaction that the client can't handle, or something...
Edit2: erm, I think I forgot one last thing... Unless it was just a fluke, or something I overlooked, I believe that somehow when I chucked some sand in a furnace in one world.. I could retrieve glass from both locations. Not positive on it though. Okay, I'm done. I'm getting carried away now... :P
@L24D
Do you know what happened in the world when this error occurred? I think it would have something to do with endermen
EDIT: Not endermen it appears a sheep at some grass. I'll look into it.
Ah, okay... I was just thinking, depending on which world it were to be harvested from. Be able to harvest it from either location, so you don't have to switch worlds... Anyways, I must give the new version a try! :D
EDIT:
Umm, minor problem. The new version is a bit on the... non-functional side...
I'm getting a NPE from it in the last release:
2012-11-13 13:50:10 [SEVERE] Could not pass event EntityChangeBlockEvent to WorldSync v0.3 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(CraftEventFactory.java:433) at net.minecraft.server.PathfinderGoalEatTile.e(PathfinderGoalEatTile.java:67) at net.minecraft.server.PathfinderGoalSelector.a(PathfinderGoalSelector.java:86) at net.minecraft.server.EntityLiving.bi(EntityLiving.java:1404) at net.minecraft.server.EntitySheep.bi(EntitySheep.java:40) at net.minecraft.server.EntityLiving.c(EntityLiving.java:1206) at net.minecraft.server.EntityAgeable.c(EntityAgeable.java:36) at net.minecraft.server.EntityAnimal.c(SourceFile:33) at net.minecraft.server.EntitySheep.c(EntitySheep.java:48) at net.minecraft.server.EntityLiving.j_(EntityLiving.java:497) at net.minecraft.server.World.entityJoinedWorld(World.java:1278) at net.minecraft.server.WorldServer.entityJoinedWorld(WorldServer.java:526) at net.minecraft.server.World.playerJoinedWorld(World.java:1260) at net.minecraft.server.World.tickEntities(World.java:1159) at net.minecraft.server.WorldServer.tickEntities(WorldServer.java:439) at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:566) at net.minecraft.server.DedicatedServer.r(DedicatedServer.java:215) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:495) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:428) at net.minecraft.server.ThreadServerApplication.run(SourceFile:818) Caused by: java.lang.NullPointerException at com.canal.main.WorldSync.WorldSyncListener.syncEntityBlockChange(WorldSyncListener.java:178) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 23 more
@L24D
Player orientation should line up when shifting. Growth of trees is in the next version already. I don't know if I am going to have plant growth synced across world's because if you harvest it in one world it won't matter if it is grown in the other because it will be destroyed anyway. Stairs should be fixed but I will check out pots and item frames.
Alrighty then, in addition to the bit I mentioned about the stairs not being oriented properly, and slabs, or possible other special blocks not displaying properly... Flowers in pots do not sync properly either for some reason. I didn't get a chance to check item frames... Some of the other special blocks, such as these, may also bug up a little bit..
Other than that, it's quite flawless. Amazing job! :D
Also, is item growth (trees, etc) synced as well? It could technically be considered block placement, at least in the view of trees.. Not sure about crops, nether wart, and other stuff. That could open up some interesting possibilities too. :o
Edit: oops... I forgot one thing, player orientation when shifting between worlds isn't quite... Translated yet, too. :p
@TKramez
I left you a pm with all the info... I don't want to spam up the comments area xD
Anyways, have a peek and see, unless there's a flaw in the syntax somehow, though i tried it as its posted in the OP here.. Plus a few variants...
@L24D
What is the exact command you're using to sync the worlds?
@L24D
This is really strange. I'll see if I can figure it out at work. Could you pm me the ip of your server? Also do you have Multiverse installed?
@TKramez Yeah. And all of the default worlds function normally...
@L24D
Does builting a nether portal teleport you to the copied world?
@TKramez Yeah, they're the default worlds... They just refuse to sync for some reason..
trying to sync the nether/normal worlds.
I duplicated the normal world and "put it in the nether." So they're identical... In theory, it should work out of the box...
@L24D
If you try to sync world's then they must be either the default overworld, nether, or end worlds or multiverse must be used to load them. I will add it as a soft dependency so it is known.