[INACTIVE][TP/MECH] Inception v1.04dev0.5 - World Layering and Overlapping [1060]

Discussion in 'Inactive/Unsupported Plugins' started by Lihad, Jun 5, 2011.

  1. Offline

    Lihad

    Inception - From one world into another (into another, and another, and another)
    v1.04dev0.5




    ------------------------------------------------------------------------
    Just got back from honeymoon!!! woot!!!! I will be updating Inception for 1.8 as bukkit allows :) stay tuned!
    ------------------------------------------------------------------------

    Downloads:
    Most Recent Build

    [1060] - Version 1.04dev0.5 - Full
    [1060] - Version 1.04dev0.5 - jar only
    Past Builds
    [1060] - Version 1.04 - [->] 1.03, 1.02c, 1.02a, 1.01, 1.00

    ---------------------------------------------
    ---------------------------------------------
    Description:
    Allows you to fall (or climb) from one world into another world by catching players that enter a y-coordinate that isn't in the normal range of play (or otherwise defined). With the addition of skyland environments, this plugin can be used to stop players from falling indefinitely, and instead make them drop in another world at the same x and z coordinates.

    -----------------------------------------------------------------------------------------------
    Love Inception? Wanna help out a poor-ass college kid who is about to get married AND working his way through commercial flight school?! Donate!
    [​IMG]
    -----------------------------------------------------------------------------------------------
    ---------------------------------------------
    Other Plugins Worth Your Time!
    Inception works great with:

    StyxSpace

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

    Recent Fixes!For Version 1.04 & dev0.5

    - dev0.4 includes fixes for Exceptions casuesd by minecarts and mobs through Inception
    - dev0.4 allows mobs to not die by passing through Inception
    - dev0.4 includes a MAJOR fix fir a bug that occurred in 1.04 that rewrote parts of the config.yml, assuming there was none there (when there may have been).
    - .jar by itself will auto-generate a config.yml if none are detected :) Hooray!
    - New Developer API shtuff. I'll make a tab regarding info on it later tonight.
    - Bug fixes
    - More bugs
    - Mobs can now technically pass through inception layers IF they fall into a void. Working on this to fix it so it synchronizes with the set limits
    - Minecarts should be able to Inception
    - Boats should be able to pass through Inception layers
    - Console will yell at you more when you mess up stuff in the Inception config.yml, so I won't have to.
    - New command ./inception edit
    - And more stuff!



    Old Fixes!For Version 1.02delta & 1.03

    - Added options for syncing time in all worlds (this only works if time movement is normally enabled in a world type, and for that world)
    - Inception returns more information to the console on start up
    - The ground work for different fall damage has been laid, not Implemented Yet!
    - The config file is more forgiving and lets you use lower case in the environment type ;)
    - Fixed player getting pushed through stairs on inception (or half-blocks)
    - Fixed player getting stuck in the ground (100% success rate in testing, let me know if results differ)

    - Fixed player positioning on Inception being off a couple blocks x,z
    - Config editing commands now reload Inception upon completion automagically (no feedback)
    - Foreign worlds as a 'lowerWorld' aren't stubborn assholes any longer.

    - Fixed teleport looping
    - Fixed chunks being deleted in dynamicOverlapping
    - Colored blocks now reflect properly through an overlap
    - Block facing through dynamicOverlapping is fixed
    - Block facing through standard overlapping is ish-fixed. but not really.
    - Syncing of linked worlds by their spawns is added as an option in the config.yml
    - The exclusion of certain block types the are mirrored in an overlap is added as an option in
    the config.yml​
    - Water and lava pouring through an inception layer behaves more correctly
    - Inception passes priority of world creation with 'environment: null'
    - And other fixes

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

    Installation:
    Download the .zip and throw the contents into your plugins folder. Be sure to configure the config.yml file in the Inception folder or the plugin will fail! If updating from a previous version: Don't delete your old config.yml and expect a new one to generate! Use the new config.yml that is in the new version folder unless otherwise specified.

    Then, read the 'Setup' tab below for Detailed instrutions on the setup of Inception. For those new to the plugin, I don't suggest changing any values for anything outside of defining the worlds and environments for a single link. After you have the motion of Inception down, tweak the setting and add more links as you see fit.

    Setup (open)

    #Inception - Written By Lihad @ beyondminecraft.net

    ----- Using Inception
    Before using this plugin, be sure to backup your world files and etc. Inception has the potential to rewrite entire landscapes! Tread carefully.

    ----- The Initial Setup
    Download the latest .zip, or the one that suits your CB. And place the contents into your plugin folder.

    Be sure to modify the config.yml for Inception before the initial launch, it should look something like this to start:

    Code:
    inception:
        link0:
            worldUpper:
                worldName: renameme
                environment: RENAMEME
            worldLower:
                worldName: renameme
                environment: RENAMEME
            overlap: true
            enableFall: true
            enableClimb: true
            upperLimit: 128
            lowerLimit: 0
            overlapDepth: 5
    [INDENT=1]sync: false[/INDENT]
    
    autoInception: false
    fallDamage: false
    glassStep: true
    dynamicOverlapUpperToLower: false
    dynamicOverlapLowerToUpper: false
    exemptBlockID: 7, 8, 9, 10, 11
    - Setting up your first link!
    Under link0, the options below exist:
    Code:
            worldUpper:
                worldName: renameme
                environment: RENAMEME
            worldLower:
                worldName: renameme
                environment: RENAMEME 
    Fill in the world you want to be top world in the worldName slot for the worldUpper key, as well as the environment type (most foreign world types created by other plugins are NORMAL in origin). The three main world types are NETHER, NORMAL, and SKYLANDS. Follow the same idea for the worldLower key, by adding in the world that you want to be 'below' your top. If your using another plugin to supply a foreign world type, use 'null' as the environment type and inception will pass priority to the corresponding plugin.

    Note: If you write the name of a world in either worldName slot that doesn't already exist, Inception will attempt to create it of the type Environment that you have specified.

    - Setting up your local link variables!
    Within link0, you will also see these options:
    Code:
            overlap: true
            enableFall: true
            enableClimb: true
            upperLimit: 128
            lowerLimit: 0
            overlapDepth: 5
    [INDENT=1]sync: false
    [/INDENT]

    Each does something different, set to maximize the performance you wish to get out of inception. 'enableFall' and 'enableClimb', if set to True, will allow your users to pass from the lower world to the upper world by climbing, as well as passing to the lower world from the upper world by falling. If you wish a player to only be able to fall from the upper world to the lower, but not climb back up, turn 'enableClimb' to false.

    To specify the 'y' coordinates that the inception between worlds takes place, define the values under upperLimit and lowerLimit. Once a player crosses this threshold, they will be beamed away to the other world.

    The 'overlap' is a tool used for those who wish to make their worlds seem to flow together. By turning 'overlap' to true, you are saying that the bottom and top of the worlds will share anything placed or destroyed by a user, within the distance specified by 'overlapDepth'. Thus, with an overlap depth of '5', y-coordinates 1,2,3,4 and 5 of the worldUpper will be shared with y-coordinates 123,124,125,126 and 127 of worldLower. Note: The transfer through normal overlapping will only work for blocks that are placed and destroy while the plugin is running.

    Also note that with overlapping, your lower and upper limits for said link must be equal in spacing. This is new to Version 1.o1.

    Lastly, turning 'sync' to true will line the linked worlds up by their spawns, instead of their x,z coordinates.

    - Creating More than One Link
    To create a second link, simply copy the entire link0:, and paste it under itself, renaming the new copy 'link1'. It would look something like this:
    Code:
        link0:
            worldUpper:
                worldName:
                environment:
            worldLower:
                worldName:
                environment:
            overlap: true
            enableFall: true
            enableClimb: true
            upperLimit: 128
            lowerLimit: 0
            overlapDepth: 5
    [INDENT=1]sync: false[/INDENT]
        link1:
            worldUpper:
                worldName:
                environment:
            worldLower:
                worldName:
                environment:
            overlap: true
            enableFall: true
            enableClimb: true
            upperLimit: 128
            lowerLimit: 0
            overlapDepth: 5
    [INDENT=1]sync: false
    [/INDENT]

    And of course, be sure to add the worlds you want to be involved in the new inception link, as well as changing/modifying any of your new local variables.

    - The Global Variables
    Code:
    autoInception: false
    fallDamage: false
    glassStep: true
    dynamicOverlapUpperToLower: false
    dynamicOverlapLowerToUpper: false
    exemptBlockID: 7, 8, 9, 10, 11
    These keys should only appear once in your config, and should be outside any keys. They are your global variables. 'fallDamage' is pretty obvious in wht it accomplishes.

    'autoInception', if turned to true, will have Inception automatically link all of your worlds for you in the standard manner (no overlap, limits at 0 and 128). This completely ignores any links you have specified. Very much the lazy-persons Inception tool.

    'glassStep' Is used for those who are travelling up to skylands and dont have a block to step on, or get caught in pesky inception loops. Turning this to true will give your user something to stand on when climbing up.

    'dynamicOverlap...' if turned on... be prepared for the shear power of inception to show itself. For every link that you have where 'overlap' is turned to 'true',. dynamic overlapping will take a snapshot (of height defined in 'overlapDepth') of a players current surroundings and places them in the world they are going to. Allows for EXTREMELY seamless transfer.... also has the potential to rewrite sections of worlds.

    'exemptBlockID' is any block id you wish to not be overlapped in an overlap layer.


    Commands (open)

    Only For Op

    Known Bugs (open)

    - Not Setting the config file correctly can cause weird things to happen
    - If a server's flymod catch is turned on, this can lead to players being kicked mid-transfer
    - Block facing is not always correct through overlapping
    - Signs don't overlap well
    - Chests don't overlap well
    - There may or may not be an issue with looping world Inceptions between two worlds that of Normal and Nether types. This has been known to cause issues with deleting chunks and etc. This issue is set for resolve in the next 1.02 release.
    will add more bugs to this section as they are noted and posted.

    Changelog (open)

    Version 1.04dev0.5[CB 1060]
    - Hotfix for dev0.4

    Version 1.04dev0.4[CB 1060]
    - dev0.4 includes fixes for Exceptions casuesd by minecarts and mobs through Inception
    - dev0.4 allows mobs to not die by passing through Inception
    - dev0.4 includes a MAJOR fix fir a bug that occurred in 1.04 that rewrote parts of the config.yml, assuming there was none there (when there may have been).

    Version 1.04[CB 1060]
    - .jar by itself will auto-generate a config.yml if none are detected :) Hooray!
    - New Developer API shtuff. I'll make a tab regarding info on it later tonight.
    - Bug fixes
    - More bugs
    - Mobs can now technically pass through inception layers IF they fall into a void. Working on this to fix it so it synchronizes with the set limits
    - Minecarts should be able to Inception (maybe...)
    - Boats should be able to pass through Inception layers (maybe...)
    - Console will yell at you more when you mess up stuff in the Inception config.yml, so I won't have to.
    - New command ./inception edit
    - And more stuff!


    Version 1.03[CB 1000]
    - Added options for syncing time in all worlds (this only works if time movement is normally enabled in a world type, and for that world)
    - Inception returns more information to the console on start up
    - The ground work for different fall damage has been laid, not Implemented Yet!
    - The config file is more forgiving and lets you use lower case in the environment type ;)


    Version 1.02delta[CB 977+/1.7.3]
    - Fixed player getting pushed through stairs on inception (or half-blocks)
    - Fixed player getting stuck in the ground
    - Fixed player positioning on Inception being off a couple blocks x,z
    - Config editing commands now reload Inception upon completion automagically (no feedback)

    Version 1.02charlie[CB 977]
    - Fixes Everything (almost)

    Version 1.02bravo[CB 977]
    - Technical Unreleased Officially

    Version 1.02alpha[CB 977]
    - Fixed player positioning on Inception
    - Fixed teleport looping
    - Fixed chunks being deleted in dynamicOverlapping

    Version 1.02[CB 953]
    - Overlapping works better and more correctly for block types
    - Added sync'ing
    - Added exclusions
    - Inception passes priority of world creation with 'environment: null'

    Version 1.01 [CB 953]
    - Upon Inception, player placement is now better suited to where they are coming from,

    especially with overlapping​
    - Defining a world in the Inception config.yml that doesn't exist will be automatically create

    by Inception​
    - Water and Lava within a overlap will no longer compound upon itself
    - Recursion was added (1.00), recursion was optimized (1.01)
    - Links now run by priority, and will not randomly place a player if multiple links share the

    same worldUpper or worldLower.​
    - Added more local variables per link.
    - Overlapping is better situated and follows the pattern suggest in 'overlapDepth' better.

    Version 1.00 [CB 953]
    - Rewrote the plugin for better optimization
    - Inception can now manage worlds without a crutch

    Version 0.9 delta [CB 917]
    - Fixed persistent Speed Hack kick

    Version 0.9 charlie
    - Split the dynamicOverlap node into two
    - Fixed an issue with overlapping

    Version 0.9 bravo
    - Added Dynamic Overlapping
    - Fix for 'lowerY' being less than '0'
    Version 0.9 alpha (does that even make sense?!)
    - Overlapping can now occur between links of your choice
    - Overlapping can occur between all Environment types
    - New command for specifying if a link should have overlapping or not
    - The ability to turn the glass block on and off!
    - SphereWorlds should finally be fixed (FINALLY!)
    - Overlapping works better

    Version 0.9
    - Added option for worldOverlay/rowOverlay
    - Fixed Inception identifying foreign world types
    - Fixed various other bugs

    Version 0.8
    - Added option for fallDamage (should already be in your config.yml) to either be on or off when fall damage occurs.

    Version 0.7
    - Added config options for setting the floor and ceiling of inception
    - Fixed '/inception list'
    - Added autoInception

    Version 0.6
    - Added a climbing inception (climbing to y=129 of a world allows a transfer)
    - Changed the config.yml
    - Changed the command '/inception modify'

    Version 0.5
    - Added in-game commands

    Version 0.4
    - If multiple links are created with the same 'worldUpper', it now randomly makes you fall to any of the 'worldLower' worlds under those links (instead of the first notable 'worldLower')

    Version 0.3
    - New config file!
    - The ability for multiple links to be made between worlds.
    - Cleaned some of the code up

    Version 0.2
    - Fixed falling into the nether
    - Fixed a few other minor bugs

    Version 0.1
    - Initial Build


    ---------------------------------------------
    Special Thanks to: JorenCombs, Pherce, Kside, Annilyna and all the members of Beyond Horizon. For giving me testing grounds for Inception-izing you all (like you actually had a choice).
    ---------------------------------------------
     
  2. Offline

    Taranis01

    wow, great!
    with that plugin skyland will really become a part of my server :)
     
  3. Offline

    Plague

    non-RB versions should only be used for special purposes, please use latest RB
     
  4. Offline

    xenofixus

    You do realize that this plugin is specifically targeting a feature that was only fixed in CB819 and 820 right?

    edit: as for the plugin, AMAZING idea.
     
    vcazan likes this.
  5. Offline

    Plague

    If it were, why is there 818-820 then?
     
  6. Offline

    Lihad

    I changed my title to reflect 818, Plague.

    Though I do HIGHLY recommend using build 820 for this plugin as it has some great mutiworld fixes. :D
     
  7. Offline

    MrPendulum

    Awesome idea for a plugin!

    It's great, but I do have one problem and one suggestion:

    Problem:
    If the world you are dropping to is a Nether world, you end up on top of the Bedrock ceiling. Perhaps some kind of check if there is a solid block, and move you to the nearest free space instead? Not a big problem, but it is present.

    Suggestion:
    I've noticed that you are teleported to the top of the world, and you take no damage from the fall. Perhaps a config option of how much damage to inflict in the fall? Would be good to reduce a player to, say, a single heart of health in the fall.

    Keep up the good work [diamond]
     
  8. Offline

    Lihad


    Good points. I'm still not too sure how I want to handle falls into the nether, tho I do know I want to add a config file option for fall damage. I'll see if I can get another version out soon.
     
  9. We got the same idea for a plugin that does exactly the same. :eek:
     
  10. Offline

    Juze

    @Lihad : Download link is missing (seperated from attachment which guests cannot download), use DropBox, GitHub or any other wget friendly site.
     
  11. Offline

    Lihad

    @Juze : Thanks for that tip, dropbox link has been added :)

    Plugin now has support for falling into the Nether!

    Version 0.2

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  12. Offline

    ratty

    Does this support more than 2 worlds in the link? The config format implies there's just a single from and to. We need to go deeper!
     
  13. Offline

    Lihad

    @ratty : Im working on v0.3 tonight which will allow more than one link from world to world. And even chains of worlds.
     
  14. Offline

    ratty

    I just tried this out, can you make it so if you reach the top of a world, you tp to the bottom of the other world? I'm trying to see how viable it is to make a sky dimension that is virtually over the other one.
    Oh and just an idea for people:

    inception:
    FromWorldName: world
    ToWorldName: world

    then even with just 1 world, you can have void protection in kind of a fun way!
     
  15. Offline

    Lihad

    @ratty : Interesting idea... I like it!

    Also note, version 0.3 is out!
    Version 0.3

    This allows multiple links to be defined in the config.yml. Be sure to USE THE NEW config.yml file that is in the .zip folder for Version 3!

    If you have DEBUG lines popping up on version 0.3, download the .zip again and replace the .jar ... my bad :p

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
    thecoolwolf likes this.
  16. Offline

    Sparky20

    Can you link a world straight to itself?
     
  17. Offline

    Lihad

    Yep, you should be able to.
     
  18. Offline

    Samkio

    This looks great! This should work perfectly with the SkyWorld. Thankyou for this. :)
     
  19. Offline

    Zarius

    Works great - tested falling from world to nether and then falling from nether to a third world.

    One problem I had though is that after falling each world didn't load properly - couldn't see any blocks or landscape but could see all the mobs fine. Reconnecting fixes this and shows me in the right spot with no problems but breaks the immersion. (edit2: nevermind - seems I was running an older version of bukkit - 815 - on my test server, doh :|)
     
  20. Offline

    Lihad

    Glad you got it working. :) I did test this plugin with multiverse v1.7.2. I'll make a note of that up in the main post.

    Version 0.4 has been released! If multiple links are created with the same 'WorldFrom' name, it now randomly makes you fall to any of the 'WorldTo' worlds under those specified links.

    Version-0.4

    As always, please report any bugs or throw out any suggestions you might have!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  21. Offline

    Zarius

    @Lihad
    Nevermind - tested multiverse again and whilst I was running an older version of it the problem was actually that my test server was still running CB815, silly me. Works fine with Multiverse and 820.

    Just an idea - perhaps the fall damage can be determined based off how fast they were falling when entering the void (if this can be determined)? ie. if they jump from y-level 64 they'll lose all but one heart or even die whereas jumping from y-level 2 would not hurt as much.

    Config options would be great :)
     
  22. Offline

    Silarn

    Just an idea I had which I think could be pretty awesome is to make it work in reverse -- though it would entail a slight change to the teleporting layers. So, anything you build in the top three layers of a 'to' world is built at the same point as the bottom three from a 'from' world. Falling to the lowest or climbing to the highest would take to back between those worlds two up or two down from the bottom/top. In this way you can literally build a tower up to the sky, and climb it into the other world.
     
    tom327, Gilden00 and Zarius like this.
  23. Offline

    Zarius

    This would be _really_ cool if possible :D
     
    Gilden00 likes this.
  24. Offline

    Lihad

    @Zarius : I really want to include some form of fall damage (and especially in a config file option format ;) ) But probably wont for another few updates...

    @Silarn : Great idea! I'll look into it!

    Also expect Version 0.5 to launch in the next half-hour. Has in-game commands added in. Guaranteed to have a few bugs I didn't think of ;)

    Finally got some in-game commands for you all to try out! Check out the info up top!

    Here it is:
    Version 0.5

    Lemme know when you come across bugs! :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  25. Offline

    dragonhib

    Thanks you !! This plugin is epic. Awesome on our skylands world where we put our graveyard (with Tomb plugin).
     
  26. Offline

    MG127

  27. Offline

    Lihad

    Didn't see your post at all, good sir.

    Just happy I could pick up this plugin and run with it. With the addition of Skylands (especially when using MultiVerse), i'm sure a lot of developers and players (like myself) thought up similar ideas. Again, just happy to be able to put something out there for you all. Enjoy!

    @Zarius : Expect a health option maybe sooner rather than later. Bukkit fixed the health bug in multiworld-ness with one of their builds. However, I'll wait for a new Recommended Built (that includes this fix) before implementing the health config option.

    And for those who were curious about climbing "up" to a world", I should be coming up with a work of this soon. I would like to see some block transfer take place (between the upper limit of the world you are climbing from, and the lower limit of the world you are climbing to), but I need to make sure it is done right so the updating takes place and is reflected across both worlds.

    Also, I did just take another look at my '/inception modify' and realized it doesn't make since and is rather clunky! (Why does the user have to define both worlds?! He/She is most likely only wishing to change one of the worlds for the link, not both!). I'll probably be rewriting that command soon.

    Again, if anyone has any ideas on more functionality of the plugin. Let me know :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  28. Offline

    Zarius

    Sounds great! Look forward to see what you come up with for the climbing up :)
     
  29. Offline

    Lihad

    Just released Version 0.6! Here it is!
    Version 0.6

    A lot changed with this release. Be sure to USE THE NEW config.yml! And don't just copy/paste the inception key from your old config.yml as the keys for 'WorldFrom' and 'WorldTo' have changed to 'worldUpper' and 'worldLower'. That being said, you can now access a world by climbing (and jumping) up to y=129 in a specified world! I am probably going to change and tweak this a bit in the future but I figured I would give you all something to play around with. :)

    Also note the options for changing the inception ceiling on or off for those who don't want to limit their sky at y=129.

    And '/inception modify' has changed! So check that out. Its much more useful!
    ----------------------------------------------------------------------

    That all being said, let me know of any bugs!!! :D

    Speaking of bugs:

    Looks like the '/inception' help shows the old style of '/inception modify'. oops. lol. This will be fixed in 0.7. Until then, just use the description of '/inception modify' as listed above.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  30. Offline

    ratty

    Could you make it so i28Y is adjustable, then I can use something like jumpblocks, or some other thing to ensure people are really sure they want to go to that upper level, so just bumping their heads above the sky isnt enough. I have "wings" plugin on my server too and its common people kind of surf on the ceiling a little bit.

    Also, I just tried 0.6, its not working at all for me. This prints to the console if I drop through the void:

    Code:
    19:22:34 [SEVERE] Could not pass event PLAYER_MOVE to Inception
    java.lang.NullPointerException
            at org.bukkit.craftbukkit.CraftServer.getWorld(CraftServer.java:414)
            at lihad.Inception.TDRPlayerListener.onPlayerMove(TDRPlayerListener.java:27)
            at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.java:285)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:139)
            at net.minecraft.server.Packet10Flying.a(SourceFile:126)
            at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    
    I am using a SKYLANDS biome in MultiVerse, but this all worked fine in 0.5.

    I did a full restart in case it was a bug with /reload, and before I did anything I copied over the default config, and this is what I have in my config:

    Code:
    inception:
        link0:
            worldUpper: cloudsdale
            worldLower: world
    
    enableFall: true
    enableClimb: true
    
     

Share This Page