Inactive [Tp] cbTeleport v0.10 - a ceiling/bottom Multiworld-Teleport-Plugin [1.1R5]

Discussion in 'Inactive/Unsupported Plugins' started by MG127, Jun 12, 2011.

  1. Offline

    MG127

    [​IMG]
    a ceiling/bottom Multiworld-Teleport Plugin
    connect worlds in a new way

    Version: 0.10

    Teleport without a command, without a specified area to other worlds.
    Just dig a hole to the bedrock or build a tower to the roof of the world.

    Requires:
    • at least one World :D
    • with more worlds a world-administration plugin like multivers is required
    Supports:


    • Permissions v2.7 and 3 (or via superperms)
    • WorldBorder v1.2.1+ (v1.2 or less is not supported!)
    • Skylands environment
    • Floating Islands and Cave-Worlds on Normal Environment (and more)
    Features:


    • Teleports a Player when he reaches the bottom or the ceiling of a world to another world (or the same) at ceiling or bottom on the same X- and Z- coordinates
    • Distancemodifier: multiplier for the destination-coordinates (negative values are also possible to teleport to the opposite side of the map)
    • Multiple links: set extra permissions for groups to get to different worlds or distances
    • Falldamage-protection
    • creates a bubble of glass if the player spawns in lava
    Permissions:


    - cbtp.teleport (to use all the default links)
    - cbtp.admin (/reload and /cbtp add)
    - cbtp.yourDepartWorld.yourDestinationWorld (this is only for optional routes, read the config-part)

    Commands:
    /cbtp
    displays all connections​
    /cbtp reload
    reloads the config & connections​
    Code:
    /cbtp add (dl) (c:)[world1] (c:)[world2] ([dm])
    ( ) - optional; [ ] - replace with something​
    adds a connection​
    dl - create a doubleLink - else: create a singleLink​
    c: - depart und arrival on ceiling​
    dm = distancemodifier (default = 1 )​

    examples:
    /cbtp add world2 caveworld -- bottom <->bottom connection
    /cbtp add dl c:normalworld skylands 2.5
    --> twoSidedConnections:
    skylands:​
    dest: normalworld​
    dm: 2.5​
    Fun:
    • create a link on a world with it self
    • create eaqual links (bottom<-> bottom or ceiling <->ceiling)
    DOWNLOADvia bukkitDev (source included in jar)
    v0.10 for 1.1 R4-1.2.5 R0.1
    v0.9 for cb#1367-1.1R4
    v0.6.1 for cb#1000-cb#1337



    Config
    Show Spoiler

    the simple way of creating a connection via config is twoSidedConnections
    Code:
    twoSidedConnections:
        world1:
            dest: world2
            dm: 2.0
    
    if you reach the bottom of world1 you'll get to ceiling of world2 and vise versa
    dm= distancemodifier; if you leave world1 on x=100, z=-200 you will arrive world2 at 200;-400 . in the other direction its 1/dm in this example 0.5

    for a more detailed connection use the singleConnection
    con1 and con2 is just something for counting, you can write anything except pure numbers for this.
    cob is ceiling or bottom.
    you can create more than one destination from one world (seperate connection), these will only be accessable with the right permission
    - cbtp.[world1].[world2]

    for example, if you have:
    Code:
    singleConnections:
        con1:
            from:
                world: world1
                cob: bottom
            to:
                world: world2
                cob: ceiling
            dm: 1.0
        con2:
            from:
                world: world1
                cob: bottom
            to:
                world: world3
                cob: bottom
            dm: 2.0
    
    if you have only "- cbtp.teleport" you will get to world2
    if you have additional "- cbtp.world1.world3" you will get to world3 instad world2

    cob means ceiling or bottom
    dm is the distancemodifier
    you will leave world1 from bottom
    you will arrive world2 at ceiling on the same X and Z
    with the additional permission you will arrive at world3 on bottom with twice the X and Z

    you could also use this plugin with one world:
    Code:
    singleConnections:
        con1:
            from:
                world: world1
                cob: bottom
            to:
                world: world1
                cob: ceiling
            dm: 1.0
    
    or this for both directions
    Code:
    twoSidedConnections:
        world1:
            dest: world1
            dm: 1.0
     
    
    Settings:
    BlockType: 20
    block that will be createted if player spawns and has no block beneath​

    falling: true
    teleports also if player has no block beneath​
    if you set this to false, you might lower the ceiling-air arrival and depart a bit​

    ceilingBlock: false


    if true, will let the player spawn at ceiling-air-arrival and creates a block under him​
    if false, the player spawns at 10 blocks above the ground (no fall dmg)​

    Bubble: true


    lava/sand/gravel protection for spawns of the cathegory 'bedrock'​

    suppressBorderWarning: true


    if false, it will spam the chat that you cant teleport​
    cause the border of the other map is reached​

    light: true


    will set a light above the player after teleport (bedrock environment)​

    fallDamage: true
    enables/disables the fall-damage​
    only the next falldamage that will happen after a teleportation will be prevented​

    toGround: true
    teleports the player 5 blocks above the ground (from above)​

    toTheSurface: false
    teleports the player to the highes spot on the surface (from underground)​

    advancedSearch: true
    searches for the next free spot till it finds one above the destination​
    (when false, it searches only a small area around the destination if it doesn't find something, it creates a hole)​

    debug: false



    writes some more debug infos to the serverlog​

    following values are the hights to trigger the events


    bedrock:
    bedrock-environment are nether (bottom&ceiling), normal maps bottom, and cave-maps ceiling&bottom

    ceiling:
    depart: 124
    arrival: 123
    bottom:
    depart: 5
    arrival: 6
    air:
    ceiling:
    depart: 128
    arrival: 129
    bottom:
    depart: 0
    arrival: 1

    v0.4+ the arrival in air:ceiling could be higher than depart, the player will only be ported back if he gets lower than air:ceiling:depart

    the following values will be automatic generated, but you can add them manual if you want, but dont use counters with w + a number, these will be the generated ones
    for default, all worlds will count as "bedrock" environment, when the player reaches the depart-hight, the plugin checks the area for bedrock, if there is none, the world will count as "air" and the air-values for depart and arrival will apply. additional the world will be listed here for the next reload (for performance increase) to avoid the bedrock check next time.

    airworlds:
    ceiling:
    a: world
    b: celestia
    bottom:
    c: celestia


    complete example config.yml
    Code:
     
    singleConnections:
    #one way-connections
    #sorted by priority
        c1:
            from:
                world: midgard
                cob: bottom
                #cob = ceiling or bottom
            to:
                world: nether
                cob: ceiling
            #distance modifier
            dm: 0.5
        c2:
            from:
                world: nether
                cob: ceiling
            to:
                world: midgard
                cob: bottom
            dm: 2.0
    #connection 1 and 2 are the same as the twoSidedeConnecion world1: dest: world2
     
    twoSidedConnections:
    #these connections work in both directions
    #bottom:
    #  dest: ceiling
    #  dm: distance modifier
    #bottom*dm->ceiling;  ceiling/dm->bottom
     
        world:
    # this is not 'world' as type of world, my main-world is named 'world' :D
    #the depart-world is allways bottom
            dest: midgard
    #destination is allways ceiling
            dm: 0.5
        celestia:
            dest: world2
            dm: 2.0
     
    settings:
        BlockType: 20
        falling: true
              #teleports also if player has no block beneath
              #if you set this to false, you might lower the ceiling-air arrival and depart a bit
        ceilingBlock: false
              # if true, will let the player spawn at ceiling-air-arrival and creates a block under him
              # if false, the player spawns at 10 blocks above the ground (no fall dmg)
        Bubble: true
              # lava/sand/gravel protection for spawns of the cathegory 'bedrock'
        suppressBorderWarning: true
              # if false, it will spam the chat that you cant teleport
              # cause the border of the other map is reached
        light: true
                # will set a light above the player after teleport (bedrock environment)
        bedrock:
            ceiling:
                depart: 124 # depart hight for cave-maps and nether
                arrival: 123
            bottom:
                depart: 5
                arrival: 6
        air:
            ceiling:
                depart: 128
                arrival: 127
            bottom:
                depart: 0
                arrival: 1
     
    #this is not realy important, the plugin will check on runtime if a world is threaded as air or bedrock
    #and will create the nodes with w0,w1...w999, so dont name them with w...
    #airworlds:
    #    ceiling:
    #        w1: world  #<-- this is automatic generated
    airworlds:
        ceiling:
            a: world  #<- manual added
            b: celestia
        bottom:
            c: celestia
    
    if you set falling to false you might want to set the air ceiling arrival and depart -1 and the air bottom arrival and depart +1
    then the only way to get down from a floating island is a waterfall
    and if you set ceiling-block to true, you might want to take a bucket of water with ya :)


    ToDo:
    • teleport players with their vehicle
    • add permissionsBukkit support
    known Bugs:
    • bubble mode doesn't seem to work
    Changelog:

    Version 0.10

    • reincluded toGround (got lost with the 0.9 update)
    • added toTheSurface and advancedSearch options
    • updated to the new event system (for R5)
    Version 0.6.1
    • fixed adding connections via command
    • reimplemented the old config cause cb#1337 doesn't support the new one
    Version 0.9
    • updated the Configuration system for new bukkit versions
    • added a sampleconnection to the default config.yml
    • fixed adding connections via command
    versionhistory (open)


    Version 0.6
    • added automatic removal of the blocks that are created when there is air below the player at the destination
    • fixed an error when no permission-plugin where used
    Version 0.5

    • fixed a bug where players got stuck and suffocated
    • speedimprovement of free-area search
    • added option to show some debug infos
    Version 0.4

    • added falldamge setting
    • added toGround setting
    • air:ceiling:arrival can now be higher than depart (port back prevention)
    • simple search for free spots near the destination
    • when fallDamage=true the old speedvector will be applied to the new position
    • fixed chat spam when supresswarn = false
    Version 0.3

    • added response for /cbtp add
    • fixed a small counting bug in /cbtp add
    Version 0.2

    • added permission node - cbtp.admin
    • added command /cbtp add
    Version 0.1


    • Release
    • lastminute-bugs defeated [creeper]
     
  2. Offline

    MG127

    is it broken?
    with R3+ i know that some methods will be depricated, but it should still work fine
    i just tested it on R3 and only the bubble doesn't work that good [fire]
     
  3. Oh alrighty. I was just looking at the version tag. I think I'm good to update then, thanks!
     
  4. I ran into an error when trying to teleport from the bottom of one world to the top of another:

    Code:
    20:37:59 [SEVERE] java.lang.NullPointerException
    20:37:59 [SEVERE]      at de.mg127.cbt.connections.isConnected(connections.java:15)
    20:37:59 [SEVERE]      at de.mg127.cbt.cbTeleportPlayerListener.onPlayerMove(cbTeleportPlayerListener.java:47)
    20:37:59 [SEVERE]      at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.java:312)
    20:37:59 [SEVERE]      at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:57)
    20:37:59 [SEVERE]      at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:453)
    20:37:59 [SEVERE]      at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:191)
    20:37:59 [SEVERE]      at net.minecraft.server.Packet10Flying.handle(SourceFile:126)
    20:37:59 [SEVERE]      at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    20:37:59 [SEVERE]      at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:100)
    20:37:59 [SEVERE]      at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
    20:37:59 [SEVERE]      at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:537)
    20:37:59 [SEVERE]      at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:435)
    20:37:59 [SEVERE]      at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)

    Code:
    # twoSidedConnections:
    #    world1:
    #    #^bottom
    #        dest: world2
    #        #^ceiling
    #        dm: 2.0
    #
    # singleConnections:
    #    con1:
    #        from:
    #            world: world1
    #            cob: bottom
    #        to:
    #            world: world2
    #            cob: ceiling
    #        dm: 1.0
    twoSidedConnections:
        bottom_space:
            from:
                world: space
                cob: bottom
            to:
                world: skylands
                cob: ceiling
            dm: 1.0
        bottom_skylands:
            from:
                world: skylands
                cob: bottom
            to:
                world: sphere
                cob: ceiling
            dm: 1.0
        bottom_sphere:
            from:
                world: sphere
                cob: bottom
            to:
                world: flatlands
                cob: ceiling
            dm: 1.0
        bottom_flatlands:
            from:
                world: flatlands
                cob: bottom
            to:
                world: world
                cob: ceiling
            dm: 1.0
        bottom_world:
            from:
                world: world
                cob: bottom
            to:
                world: world_nether
                cob: ceiling
            dm: 1.0
        bottom_world_nether:
            from:
                world: world_nether
                cob: bottom
            to:
                world: world_the_end
                cob: ceiling
            dm: 1.0
        bottom_world_the_end:
            from:
                world: world_the_end
                cob: bottom
            to:
                world: space
                cob: ceiling
            dm: 1.0
        top_space:
            from:
                world: space
                cob: ceiling
            to:
                world: world_the_end
                cob: bottom
            dm: 1.0
        top_skylands:
            from:
                world: skylands
                cob: ceiling
            to:
                world: space
                cob: bottom
            dm: 1.0
        top_sphere:
            from:
                world: sphere
                cob: ceiling
            to:
                world: skylands
                cob: bottom
            dm: 1.0
        top_flatlands:
            from:
                world: flatlands
                cob: ceiling
            to:
                world: sphere
                cob: bottom
            dm: 1.0
        top_world:
            from:
                world: world
                cob: ceiling
            to:
                world: flatlands
                cob: bottom
            dm: 1.0
        top_world_nether:
            from:
                world: world_nether
                cob: ceiling
            to:
                world: world
                cob: bottom
            dm: 1.0
        top_world_the_end:
            from:
                world: world_the_end
                cob: ceiling
            to:
                world: world_nether
                cob: bottom
            dm: 1.0
       
    settings:
      bedrock:
        ceiling:
          depart: 129
          arrival: 128
        bottom:
          depart: 1
          arrival: 1
      air:
        ceiling:
          depart: 129
          arrival: 128
        bottom:
          depart: 1
          arrival: 1
      fallDamage: false
      falling: true
      ceilingBlock: false
      BlockType: 20
      light: false
      Bubble: true
      toGround: false
      suppressBorderWarning: true
      debug: false
    

    I tried it by going to Y=1 on my Flatlands map. Basically spammed my console. I'm testing this with 1.1R3, I'll test it with 1.1R2 in a second.

    Edit: Same thing with R2.
     
  5. Offline

    MG127

    i'll see what i can do
    edit: i see what's ya problem, you choosed the wrong format for the connection, you wrote with the format of the singlesidedconnections under the topic of the twosidedconnections
    or just change the topic :D

    but btw i will make it with the bottom area like the ceiling area that i've already done (you can only teleport back if you had a little hight difference)
     
  6. Edit: I got it, forgot to add it to my permissions XD

    Thanks a bunch!


    PS. Does it matter if I have identical links using both singlesidedconnections and twoSidedConnections? Example of what I got is below:

    Code:
    singlesidedconnections:
      bottom_space:
        from:
          world: space
          cob: bottom
        to:
          world: skylands
          cob: ceiling
        dm: 1.0
      bottom_skylands:
        from:
          world: skylands
          cob: bottom
        to:
          world: sphere
          cob: ceiling
        dm: 1.0
      bottom_sphere:
        from:
          world: sphere
          cob: bottom
        to:
          world: flatlands
          cob: ceiling
        dm: 1.0
      bottom_flatlands:
        from:
          world: flatlands
          cob: bottom
        to:
          world: world
          cob: ceiling
        dm: 1.0
      bottom_world:
        from:
          world: world
          cob: bottom
        to:
          world: world_nether
          cob: ceiling
        dm: 1.0
      bottom_world_nether:
        from:
          world: world_nether
          cob: bottom
        to:
          world: world_the_end
          cob: ceiling
        dm: 1.0
      bottom_world_the_end:
        from:
          world: world_the_end
          cob: bottom
        to:
          world: space
          cob: ceiling
        dm: 1.0
      top_space:
        from:
          world: space
          cob: ceiling
        to:
          world: world_the_end
          cob: bottom
        dm: 1.0
      top_skylands:
        from:
          world: skylands
          cob: ceiling
        to:
          world: space
          cob: bottom
        dm: 1.0
      top_sphere:
        from:
          world: sphere
          cob: ceiling
        to:
          world: skylands
          cob: bottom
        dm: 1.0
      top_flatlands:
        from:
          world: flatlands
          cob: ceiling
        to:
          world: sphere
          cob: bottom
        dm: 1.0
      top_world:
        from:
          world: world
          cob: ceiling
        to:
          world: flatlands
          cob: bottom
        dm: 1.0
      top_world_nether:
        from:
          world: world_nether
          cob: ceiling
        to:
          world: world
          cob: bottom
        dm: 1.0
      top_world_the_end:
        from:
          world: world_the_end
          cob: ceiling
        to:
          world: world_nether
          cob: bottom
        dm: 1.0
    twoSidedConnections:
      space:
        dest: skylands
        dm: 1.0
      skylands:
        dest: sphere
        dm: 1.0
      sphere:
        dest: flatlands
        dm: 1.0
      flatlands:
        dest: world
        dm: 1.0
      world:
        dest: world_nether
        dm: 1.0
      world_nether:
        dest: world_the_end
        dm: 1.0
      world_the_end:
        dest: space
        dm: 1.0


    PPS: Is there a way to make it send you to the first open area, rather than instantly at Y=1 when going from the ceiling of one world to the bottom of another?
     
  7. Offline

    MG127

    well good to hear that, but the error shouldn't be there and i will investigat this if i have time. (good that it's not urgent)

    if you have more than one connection from one world outgoing, only the first counts. but you can overwrite it with a special permission.
    e.g.
    this config: skylands<->world<->nether and also skylands<->nether
    player A has this permission: "cbtp.teleport"
    player B has additional this one: "cbtp.skylands.nether"
    when player A reaches skylands bottom he will port to the 'world'
    when player B reaches skylands bottom he will port to the nether
    but when player B want to go back to the skylands he needs either "cbtp.nether.skylands" permission or has to go via 'world'

    you mean like arrival at y=1 but there is no free space so you will arrive at the top of the hill at y=40 ?
    i have a small search algorithm in it that searches with radius 3 and 2 above and below the destination for free spots, i could make this more advanced (configurable etc)
     
  8. That's exactly what I mean! If I could get that working it would be amazing!
     
  9. Offline

    SkilledScorpion

    This is amazing i will defentily have this on my server but it is still at 1.1

    Will you be updating this to 1.2 anytime soon or even at alll
    Thanks
     
  10. Offline

    MG127

    it is compiled for 1.1R5, therfor it should also work on the most upcoming versions
     
  11. Offline

    SkilledScorpion

    I will test it in a moment. My worry was that it would not work because of the increase in world hieght to 256. Will this effect in any way?
    Thanks Again
     
  12. Offline

    MG127

    i already set the default hight to 256, but i didn't made a seperate hight for the nether that uses still the old generator with a bedrock on 128 so i will have to improve that.
    i'm currently rewriting the whole plugin to have a few more tweaks and more settings per world and global. i will still have the simple creation options but you could go much more in detail.
     
  13. Offline

    trusebruse

    i have fixed everything but now when i jump to the bottom of the world (the void) am i falling down from to ceiling of the other but i am i just landing on glass.. how can i fix this?
     

Share This Page