[MECH] Elevators [BukkitDev]

Discussion in 'Archived: Plugin Releases' started by Cybran, Jan 27, 2011.

  1. Offline

    Cybran

    [​IMG]

    The plugin will be continued at dev.bukkit.org!
    Want to help? Sign up as an alpha- or beta-tester!


    What this plugin does:

    It creates vertical moving elevators, which can be controlled by redstone-powered blocks.

    Features (open)

    • Creating elevators with an individual size (square or rectangle shape).
    • Floor-management: define your own floors with their own names, being able to call an elevator on every floor by – per example – pressing a button.
    • Movement-triggers: control the elevator with redstone circuits or buttons or any other redstone-powered block!
    • Elevator movement-controls: have different buttons for moving the elevator up and down, skip floors by pressing a control button several times.
    • Command-queuing: the elevator will move to the different floors one after the other if it gets more than one command at the same time.
    • Build on the elevator whatever you want (nearly ;))
    • Use redstone outputs to link the elevator to iron doors or more complex circuits.
    • Connect the elevator to your minecart system!
    • Use the elevator as something else, like a lava door.
    • Build automtically opening/closing glass doors around or on your elevator!
    • Protect your elevator with a password or user restriction.
    • Permissions support!

    How to install (open)

    • The server mod:
      Just copy the Elevators.jar into your plugins/ folder. That's it. You can modify the config later (See section Tutorials>Configuration).
    • ???

    FAQ (open)

    • Q: I'm completely new to this plugin! What shall I do?
      A: First, install the mod (see How to install), then you can read the basic tutorials in the tutorial section below.
    • Q: I'm sick of using buttons all the time to control the elevator! I want to include my redstone circuits!
      A: You don't have to use buttons! You can right-click any type of redstone-powered block! The buttons are just the easiest way.
    • Q: I want to build several buttons or other blocks for the SAME floor! How to do it?
      A: Have a look at the "direct" command. It links other blocks to an already existing floor.
    • Q: I try to build a lava door, but the lava is transported with the elevator! How can I let displace the lava by the elevator?
      A: At first, build the elevator like it should be later. Then, use the command /elev lock. Now your elevator will not grab any blocks or fluids placed later on it.
    • Q: Is there a size limitation for the elevator's shape?
      A: Yes. Normally, there is a maximum for the area of 25 blocks. But: you can change this limitation in the config.

    Command usage & Permissions (open)

    [...] = optional parameter. ...|... = select ONE of the values, they all mean the same. <...> = put your own values here.

    /elevators|elevator|elev <command from the list below>

    The basic commands:
    • help|? - shows the commands.
    • permission|permissions - shows your current permission level.
    • create - creates a new elevator at your current position.
    • remove - removes an existing elevator from your current position.
    • call|floor <Floorname> - creates a new floor with the given Floorname.
    • up - creates a new UpBlock, right-click to select block after command.
    • down - creates a new DownBlock, right-click to select block after command.
    • go|direct [<Floorname>] - creates a new link to the given floor or the nearest. Toggled by redstone input. Right-click a block.
    • redstoneout [<Floorname>] - creates a redstoneoutput, right-click to select the output block after. Has to be a lever.
    • glassdoor [<Floorname>] - Type command and place glass blocks. A door will be created to the given floor or the nearest. Use /elev finish to finish and disable glass block listener.
    • glassremove [<Floorname>] - Removes all glass blocks linked to the given floor or from the cabin when no floor is specified.
    • finish - Finishes an action (like glassdoor placement).
    • info - creates debugging info file. CONSOLE ONLY.
    • lock - locks the cabin blocks to stop updating before every movement.
    The more advanced ones:
    • help|? - shows the commands.
    • permission|permissions - shows your current permission level.
    • create [password <Password>] [users <Username1> <Username2> <UsernameN>]- creates a new elevator at your current position, optional with password or user whitelist.
    • remove - removes an existing elevator from your current position.
    • call|floor <Floorname> [password <Password>] [users <Username1> <Username2> <UsernameN>] - creates a new floor with the given Floorname, optional with password or user whitelist.
    • up - creates a new UpBlock, right-click to select block after command.
    • down - creates a new DownBlock, right-click to select block after command.
    • go|direct [<Floorname>] - creates a new link to the given floor or the nearest. Toggled by redstone input. Right-click a block.
    • redstoneout [<Floorname>] - creates a redstoneoutput, right-click to select the output block after. Has to be a lever.
    • glassdoor [<Floorname>] [direction <DirectionIdentifier>] - Type command and place glass blocks. A door will be created to the given floor or the nearest. Use /elev finish to finish and disable glass block listener. You can use a DirectionIdentifier (left,right,up,down,splitH,splitV) to set the opening direction manually.
    • glassremove [<Floorname>] - Removes all glass blocks linked to the given floor or from the cabin when no floor is specified.
    • finish - Finishes an action (like glassdoor placement).
    • info - creates debugging info file. CONSOLE ONLY.
    • pw|password [<Floorname>] [password <Password>] - Overrides password protection for the given floor or the whole elevator.
    • user [<Floorname>] [users <Username1> <Username2> <UsernameN>] - Overrides user whitelist for the given floor or the whole elevator.
    • give [<Username>] - changes the owner of the elevator. Once changed, a reset is not possible.
    • lock - locks the cabin blocks to stop updating before every movement.
    Permission nodes:
    • elevators.builder - basic permission level, user can set up elevators.
    • elevators.advancedbuilder - advanced permission level, user can protect elevators with password / user list.
    • elevators.operator - ignores owner, passwords and user restrictions, can modify everything.

    Tutorials (open)

    Basic setup:
    • Prepare a shaft – size can be between 1x1 up to 5x5. There has to be air in the whole shaft(means also no ladders and no torches directly on the wall).
    • Build a plain of any block type in your shaft as the elevator’s ground. (I would recommend to use a block type that is not placed anywhere in the shaft again with the same shape.)
    • Stand on the ground while typing /elevator create
    • A new floor and a new “CallBlock” (to call the elevator later) are created simultaneously by first typing /elevator call <Floorname> and then right-clicking on a (already existing!!) button. The elevator will halt 2 stones below this block
    • You have to create Up- and DownBlocks (to control the elevator) on every floor OR (better) inside the elevator. Type /elevator up or /elevator down , then right-click on a button (again the buttons have to be created BEFORE).
    • Create as many floors as you want. Besides: the control-blocks can be up to 2 blocks away from the elevator
    • Now you are ready to use the elevator!
    • If you want to remove floors or control-blocks, simply destroy the blocks.
    • If you want to remove the whole elevator, stand nearby and type /elevator remove.
    Configuration:
    • After the first server startup with the plugin v1.3+, a new file named Configuration.txt is created in plugins\Elevators\
    • Feel free to modify the values in there. But keep to the given format.
    • restart the server (or use /reload command) to apply the changes.
    Enhanced redstone:
    • If you want, you can extend your calling mechanism, per example by using stone plates connected to redstone wire.
    • To make your elevator moving to a specific floor, type /elevator direct <Floorname> and right-click any redstone wire or button or stone plate...
    • You can also use /elev direct WITHOUT the floorname. This will lead to the next floor in range.
    • If you want, you can add a redstone output to the elevator. Build a LEVER near to the elevator, then type /elev redstoneout and right-click the lever. Connect the lever to your circuit with redstone wire.
    Glass doors for your elevator:
    • Type /elev glassdoor [<Floorname>] [direction <DirectionIdentifier>] to start.
    • You can use a DirectionIdentifier (left,right,up,down,splitH,splitV) to set the opening direction manually. left and right are seen from outside the elevator. splitH and splitV will let the door split horizontally or vertically from the center.
    • Now build glass blocks around the elevator or on the elevator. Use any shape you want.
    • Type /elev finish to stop adding blocks as doors.
    • Call the elevator again to the floor where you built the door. Your created door opens.
    • The door is now activated and will open and close automatically. Have fun!
    Elevator protection (advanced builders):
    • every created elevator has an owner. Only the owner can modify the elevator. To change the owner, type "/elev give <newownername>". To enable modification for every player, type "/elev give". This will remove any owner protection.
    • use the optional parameters to create an elevator/floor with protection, p.e. "/elev floor testing floor password ultimatepassword users NTcomputer Notch" would create a new floor named "testing floor" with the password "ultimatepassword", only available for the users NTcomputer and Notch.
    • modify your protection settings with the commands /elev user and /elev password, p.e.: "/elev user testing floor users Admin" will override the previous settings to only allow user Admin the usage.
    • remove protection settings? Very easy: use /elev password or /elev user without any parameters or floorname only to reset the protection.
    • so far the whitelist, but I want to create a blacklist. How to? Like this: "/elev user testing floor users * -griefer" (no, there isn't any space between the minus and the player - damn line break). * means everybody can use it, the "-" before a name indicates you hate this player and don't want to let him destroy your secret room on the testing floor ;)
    • I have set up the protection, but I'm never asked for a password?! This can have several reasons: 1.) You are an operator. 2.) You have the permission elevators.operator 3.) You are the owner of the elevator. Just let somebody else try, he WILL get a prompt. 4.) You are standing near the elevator while another player tries to use it. He/she won't be blocked.

    Known issues (open)

    • It is difficult to move yourself or turn around while moving with an elevator.
    • Don't use doors on an elevator! They will "clone" items.
    • Pressure plates don't work as Up- /DownBlocks directly. Build at least two redstone to them, type the command and right-click the end of the wire.
    • Avoid using up/down in circuits. This will force any selected redstone-block to remain in off-state. (You can use "direct", though!)

    Future Ideas (open)

    • name elevators - v1.4.4
    • signs with current floor - v1.4.5
    • allow any block type for doors - v1.4.5
    • iConomy support - coming in v1.5

    Changelog (server mod) (open)

    • Version 1.4.3 (RB #740)
      >>Download<<
      -implementation of the secret project (not useable yet)
      -fixed the chest duplication bug
      -fixed the powered/detector rail dropping bug
      -enabled plugin usage for subfolder-worlds
      -fixed some other exceptions
    • Version 1.4.2 (RB #670)
      >>Download<<
      -elevators are now stored in the world folders (-> allow backups)
      -items will drop when moved away from a wall
      -added forbidden blocks to config
      -added command abbreviations to config
      -added glassdoor directions
      -added "lock" for cabin blocks
      -prevent block changes while elevator moves
      -added more config options and messages
    • Version 1.4.1 (RB #602)
      >>Download<<
      -cabin blocks are now searched when initiating movement
      ->WorldEdit & Co for cabin blocks supported!
      -Entities are now moved along, even if they are positioned a greater distance above the ground blocks
      -merged direct and extend commands
      -enabled relative glass doors (=doors in the cabin)
      -glass doors are now "grouped" automatically for a more real opening order
      -redstone outputs floor parameter added.
      -ground blocks pending between grass and dirt are not blocking the elevator anymore
      -wheat, cactus and sugar cane item duplication bug fixed
    • Version 1.4 (RB #556)
      -Permissions support added
      -elevator and floor protection added
      ->many new commands and command parameters
      -command to remove glass doors from a specific floor
      -owner system added
      -individual elevator size support
      -fixed some bugs (can't remember which)
    • Version 1.3.1:
      >>Download<<
      -removed TSLPC
      -added go|direct command
      -improved elevator search
      -improved elevator position search (prevention of loosing the ceiling ;-))
      -storing entity positions when initiating moving - hopefully fixes fall-through bugs
      -added info console command to create debugging info files
      -binds glass doors to a command
      -fixed button and redstone bugs
      -improved storage cleanup
    • Version 1.3:
      -added automatically closing glass doors.
      -added configuration.
      -fixed a fault timing.
      -changed the command handler to onCommand in main file.
    • Version 1.2.3:
      -fixed a block checking bug.
      -redstone on the elevator is now working.
    • Version 1.2.2:
      -chests and dispensers are now working.
      -furnaces are now working.
      -adjacent mine tracks are now working.
      -item orientation bugfix.
    • Version 1.2.1:
      -color of wool is now stored.
      -Signs are now working inside the elevator.
      -orientation of levers, buttons, torches etc. is now stored (can still be glitchy, cause multiplayer servers always have problems with that)
      -fixed many bugs for the blocks built on the elevator
      -elevator blocks can be safely removed by iStick, Superpickaxe and others now
      -improved the movement system for liquids (enables lava doors and more!)
      -improved the movement system for all entities (creatures and minecarts will also be transported now)
      -elevator movement is now much smoother
      -improved floor search for up- and down-blocks when the elevator got stuck
      -changed the entire storage system
    • Version 1.2:
      - enabled building on the elevator.
      - created redstone outputs
      - fixed server crashes
      - made compatible to CraftBukkit 289+
      - improved handling of breaked blocks
      - made plugin thread-secure
      -fixed path problems on mac + linux
      - and maybe some others...
    • Version 1.1:
      - made the creation a bit easier.
      - fixed some bugs
      - increased the maximum size to 5x5
    • Version 1.0:
      - Release
     
  2. Offline

    QweSteR

    nice :)
     
  3. Offline

    Cybran

    Ugh, it should be... I will check that.
    [MERGETIME="1299574695"][/MERGETIME]
    Ok, done. The color of wool IS preserved, but only for blocks ON the elevator, not the ground blocks. I will fix that.
     
  4. Offline

    iarspider

    I was just about to post that clarification! Thanks anyway!
     
  5. Offline

    frin

    There is a serious bug with Elevators 1.3.1 on CB #493. When you place a block (for example diamondblock) on elevator, press the down button and during the delay before elevator moves u pick out the diamondblock, elevator duplicates the block, thus giving you one as a drop with picking and one as a solid block on elevator.

    Please fix this asap, I don't want my players to begin abusing this "feature". Right now I decreased the delay before elevator starts movement.
     
  6. Offline

    tyderion

    I noticed a strange bug.
    Using CB493 and Elevators 1.3.1
    I made a 3x3 shaft for an elevator. Made the elevator (so far so good).
    But always when defining the call blocks it says:
    "Call block successfully created"
    "To Elevator Linked block destroyed" (the call block)
    I can only use the newly created call blocks once.
     
  7. Offline

    Khyron

    Running on CB 493 with Elevators 1.3.1, I get the following error chain occasionally - 3 times in the last 24 hours, since I upgraded to that version of Elevators. When this error comes up, the server locks up and has to be restarted. It seems to be related to elevator movement with signs on the elevator, but it doesn't happen every time. I've had to disable the elevator plugin for now.

    Other plugins that have some relationship to signs are running, so it may be related to interaction between plugins if no one else is seeing this. Those are MyWarp (checks signs when they're right-clicked for warp names) and Minecart Mania Sign Commands (checks signs when a minecart passes by them.)

    Code:
    [SEVERE] java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
    2011-03-09 23:12:05 [SEVERE]     at de.NTcomputer.Elevators.Elevators.BlockWrite(Elevators.java:601)
    2011-03-09 23:12:05 [SEVERE]     at de.NTcomputer.Elevators.Elevators.DoMoveElevator(Elevators.java:452)
    2011-03-09 23:12:05 [SEVERE]     at de.NTcomputer.Elevators.ElevatorsMoveTask.run(ElevatorsMoveTask.java:62)
    2011-03-09 23:12:05 [SEVERE]     at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:122)
    2011-03-09 23:12:05 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:345)
    2011-03-09 23:12:05 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    2011-03-09 23:12:05 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    2011-03-09 23:12:05 [SEVERE] Unexpected exception
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at de.NTcomputer.Elevators.Elevators.BlockWrite(Elevators.java:601)
        at de.NTcomputer.Elevators.Elevators.DoMoveElevator(Elevators.java:452)
        at de.NTcomputer.Elevators.ElevatorsMoveTask.run(ElevatorsMoveTask.java:62)
        at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:122)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:345)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
     
  8. Offline

    LucidLethargy

    I have had all my elevators dissapear on me two times now... and I just dont have it in me to replace them. This was a great plugin, but there is simply no way I know of to back things up, and right now bukkit is continually crapping all over my server ever since the new "improved" gui change (I use simpleserver, and the only way to stop the server when bukkit freezes is to force shut down... that's when I lose the elevators : / )

    If possible, please implement some sort of back up system, though i'll understand if you can't or it's too much work. Fantastic plugin in every other way, It's well loved on our server.
     
  9. Offline

    Mickey

    Edit

    I cracked it

    Works Amazingly

    Thank you for making this possiple :p
     
  10. Offline

    Cybran

    I won't include a backup system - there are other plugins for doing this sort of thing, but to make it possible to restore elevators, i will change the storage location to the corresponding worlds folder!

    I know it and it is fixed already, will be released with the next version.

    This is the major issue I'm fighting against at the moment. Unfortunately, I can't reproduce the error and don't see any way to fix it [​IMG]

    Really a serious one. I will work on it.
     
  11. Offline

    ShadowsKiller

    Hi there !

    I got a "problem". It's not like it isn't working but I get error messages and I don't know what they mean ...

    [​IMG]

    Any idea about "[WARNING] Elevator - Stores - Saving data failed" ?
     
  12. Offline

    Cybran

    This means that the modified elevators can't be safed to disk. They will work, but progress will be lost if you restart your server. Make sure the plugin has write acces to \plugins\elevators\
     
  13. Offline

    ShadowsKiller

    I restarted the server twice. But the folder "elevator" didn't appear ...
    I try to create by myself this folder, and I tell you if it worked

    EDIT1 : oh god ... I typed "doesn't appeared" ....

    EDIT2 : even if I created this folder, it still doesn't save anything ...

    EDIT3: I created 4 empty files named "Config.yml", "Elevators.yml", "ElevatorsSettings.yml" & "ElevatorsSettings.txt" but still not saving ... Maybe names are wrong, or maybe files must not be empty ...
     
  14. Offline

    Cybran

    All the files are created automatically - under normal circumstances. Which OS are you using? Where is the server path located?

    I need some volunteers for testing!

    Developing a plugin costs it's time. Testing even more. Unfortunately, my time is limited and I can't do as much testing as I would like to. Therefore, I would be glad if some active members would like to participate in the testing process.

    What would you get?
    • The newest, untested but running version, right after the development is ready.
    • A list of all changes.
    • Influencing the development, this also means new functions as you want them to be.
    What do you have to do?

    • You have to be an active member of the bukkit forums.
    • Spend some time for testing ;)
    • Send me a PM where you mention why you would like to do it.
    This will only get started if enough (~3) members will participate!
     
  15. Offline

    Punchin

    Found a fun little issue.. Was labeling my buttons on one of my test servers. I have an elevator that's hooked in a loop between two floors using redstoneout and go commands. I tried to put a sign on the side of the block with one of the go buttons. Every time the elevator started to move, whatever I was typing would disappear. Every line. No console errors, though. Just had to type fast.
     
  16. Offline

    AnrDaemon

    What is the safe height to place blocks atop the elevator, which wouldn't be considered a part of it?
    I've made a platform out of sandstone, but it moving a block of glass with it that I've placed after creating a topmost level.
    (I could explain a whole Elevator layout if it matters.)
     
  17. Offline

    Punchin

    Did you place that glass while the elevator was at that level? If so, it attached it to the elevator. If you place it while the elevator is on a different level, it shouldn't associate it to the elevator.

    Cybran, is there a way to have the extend command look for the nearest floor block instead of the nearest floor? I'm trying to make an infinitely looping 4 floor elevator, but every time I try to extend the redstoneout to a go block, it assigns it to the floor. The only way I see to do this currently is to run redstone down to the floor I want it to goto next. That defeats the purpose of the go blocks in this design. On my other looping elevator (2 stories) with go blocks, I only used 1, and had to destroy the call block on that level so it would assign it to the 2nd level. Then recreate that floor.

    Oh, and I noticed that the elevator doesn't move paintings. Doesn't destroy them either, just doesn't move them. *Edit* As long as you place them on the shaft wall, they're not destroyed. If you place them on the elevator wall, they'll get destroyed when there's nothing to attach to, obviously.
     
  18. Offline

    AnrDaemon

    It appears that Elevator check for eight cubes upward from elevator plane, strangely enough, that does not extend to the control console, I could lower the roof there by the console height at least and elevator will still works, but if I extend roof to the clear elevator space, it will halt.
     
  19. Offline

    ShadowsKiller

    IDK which OS it is : it a server from VeryGames ...

    Here you can see my FTP :
    [​IMG]

    As you can see everything is at the correct place. BUT, if you can see the "Elevators" folder, it's because someone sent it to me .. but even with correct files in it .. it still doesn't save anything ...

    I tried 4 times, uninstall/reinstall but this folder is never created ..
     
  20. Offline

    AnrDaemon

    Ok, on my issue... Solved it by building a lift cabin roof. Now elevatorn only check for real collisions.
    But I would like to see less restrictive default limits... 3 blocks above the elevator pad (breathing room + slabs if you like) is enough, IMO.
     
  21. Offline

    Cybran

    If you place a block above an elevator, the system checks whether there is a connection between previously built blocks on the elevator and the new block - this also includes torches etc., so maybe you placed the glass above a torch?
    I don't want to limit the height of the blocks you can build on the elevator, as mentioned, some people are trying to get whole houses on them ;)

    If you use FTP, make sure that the server has write access to the plugins folder, imho chmod 666 (for php at least). But don't know how it's workin' exactly. Don't try to make the files manually, this doesn't have any effect, they will be overridden as possible.
    [MERGETIME="1299947563"][/MERGETIME]
    Sure, I will change the searching for the next block instead of floor, if this won't mix up the designs of other users.
    And I never thought of paintings :p.. I will have a look on these after v1.4...

    Well, when the elevator moves, all the signs on it are recreated on the new position and the original text is restored. The problem is, when you are typing the text, no change is being sent to the server, imho only when you finish, the text is sent. When the elevator moves before, the "original" empty sign is taken. I am afraid I won't be able to change this :(, sooo ... be fast! :D
     
  22. Offline

    AnrDaemon

    I don't think you understand my suggestion. Or, perhaps, I wasn't clear.... well, I wasn't.
    Let me explain it in more... programmatical way. If it's true that warriors of any race could always understand eachother, so I hope programmers could, too. :)

    In my case, there were no connection to the newly-built cabin "roof" - i just placed four glass blocks to the wall three meters over elevator, and it picked that "roof" as it's own.

    What I suggest is (probably) alter searching and monitoring algorythm a bit. Which would, probably, improve fun of the mod.

    I'll write a complete proposal of the mod behavior to save you from reading through "change this to that".

    1. Start as usual. Create a rectangular platform of chosen size, up to defined limits, by issuing an "/elev(ator) create" while standing on the platform. There must be at least 3 blocks high of air on the platform to succesfully create the elevator.
    2. When created, save the elevator's key block type, coords of the corner and platform dimensions.
    3.* Also, for each block, store elevator height, it'll be 3 by default for newly created elevator. (Just enough of an air to not cause suffocation in most cases.)
    4. If any building happened inside the shaft, be it creation or destruction, mark the elevator "dirty". (Add a command "/elev dirty" as well to force rescan by hands, if bad things happen.)
    5. On elevator movement, if it marked dirty, reevaluate** it's dimensions.

    Now to the marked points.
    * Storing elevator height for each block separately would allow users to create arbitrary platform shapes as long as they fit inside the defined boundaries. You only need to create rectangular platform for start, afterward, you could cut corners to make it more "round", or even pierce the central block to put elevator on a "needle" of fences.

    ** Elevator evaluation. Would pseudocode suffice?
    Code:
    let LAYER := -1;
    for each Layer between lowest and topmost Elevation level {
      for each Block inside Elevator boundaries {
        if Block Type = Elevator Key type {
          let LAYER := Layer;
          break;
        }
      }
      if -1 <> LAYER { break; }
    }
    
    let HEIGHT := MinHeight; (Defaults to 3)
    for each Elevation level from lowest to topmost {
      if Elevation Height > HEIGHT {
        let HEIGHT := Elevation Height;
      }
    }
    
    for each Layer from LAYER to (LAYER + HEIGHT) {
      if Layer = LAYER {
        if Block Type = Elevator Key type {
          Elevator Block height := MinHeight;
        }
        else {
          Elevator Block height := 0;
        }
      }
      else if Layer > (LAYER + MinHeight) {
        if boolean(Block type) and boolean(Elevator block height) {
          (Ahha, casting both as boolean in this manner result in "If it's not an air and we have a key block under it...")
          Elevator Block height := Layer - LAYER;
        }
      }
    }
    *khm*
    Full of pseudo code, I am...

    This would limit the maximum height of the cabin to the maximum elevation height, but drastically simplify monitoring, save resources et cetera.
    If it is true people trying to build houses on the platforms... I assume they are higher than elevation level... well, leave for them an option to define cabin height by hands. It's less of a headache for server, than "looking for connected" or "monitor building in shaft".
     
  23. Offline

    lastof

    Re. The "Call block successfully created", use, "To Elevator Linked block destroyed" issue.
    Just went to check out one of my users elevators that was having this issue, and I've found a way to reproduce it, and a way to avoid it. Might help you track it down (unfortunately I didn't take any pictures... home I can explain it).

    So, the problem elevator was an old style, single layer of stone slabs. Like we originally had to use. They had put two wood blocks with an up and down button on it. But, as they were on a single stone slab, they floated above them. When the buttons were used, the wood blocks and buttons shattered.

    Destroying this setup and replicating exactly had the same issue. HOWEVER, using full height blocks as the elevator base act correctly, and do not break. I suspect the issue is related to the blocks floating above the slabs not being "glued" in the same way as when blocks directly touch. I know this setup did work previously, my guess is it broke when the materials we could use for the floor were expanded.

    Hope that helps!
     
  24. Offline

    AnrDaemon

    Hum-hum-hum. Just a thought about creating an elevator that is linked to the lever/pressure plate. (Would best serve as lava/water gates, IMO. But could make a nice hangar doorway as well... or simple 2-stops basement <-> ground floor elevator... like castle bridge...)
    Necessary requirements: two positions only. Trying to attach a new "/elev call" to this kind of transporter should end in error message. Solution would be to remove door trigger(s) and rebuild layers using non-locking controls.
    Creating such transporter would best be done by creating a normal 2-stop elevator using all existing commands, then issuing, say, "/elev door [reverse]" and right-clicking the relevant control to convert elevator into a "door". With top elevation level corresponding to the control block "Enabled" state, unless "reverse" clarification was specified. (And from this point it should be possible to remove previous calling button(s) without affecting the gate operation.)
    Man, I see such many cool uses for this, my head hurt! :D
    I go sleep now!
    Thanks for your plugin!
     
  25. Offline

    Neoblade298

    For the glass doors, do they eventually close on you? Because the only way I can close them at the moment is by going down a floor, and it doesnt close when it gets out. if u dont hve the time to answer this question, dont cuz its minor!
     
  26. Offline

    AnrDaemon

    I just discovered that it's not possible to create elevator layout such as this without it issuing a warning every time you call it to the base floor.
    You have to use "extend/direct" to create a button on the appropriate height, and you must keep original button somewhere, because, when destroyed, it will unlink all extending buttons as well.
    In my case, I want to use shown button to call elevator down, and the button above it (not present on image) to send it to the roof (topmost level).
    Would it be possible to alter level creation to "just under the feet"? I think it's almost always possible to raise yourself to the appropriate level...
     
  27. Offline

    Cybran

    Yes, I think there was some misunderstanding (and probably still is [​IMG]). My fault. But ... the real monitoring is done in a somehow different way, so please understand, when I'm a bit confused [​IMG]. And I've found the mistake which maybe let to your problem: Every block placed in the elevator shaft is checked in the BLOCK_PLACED event whether it is related to another block already built on the elevator. This happens instantly, if a block is placed. On the other side, the check for removed block is only called when the elevator moves -> sooo.. maybe you placed some blocks, removed them, and then placed some blocks above -> the "virtual" blocks in the storage are leading to a wrong connection between the elevator and your "roof". I think I will change this to a "compromise" between your ideas and mine: The elev is marked as "dirty", when a block is placed above it, but changes are scanned when the next movement is initiated (like removements work today). But not for a limited height, but for a direct connection to the lower level.

    Right. If you wanna make such a design, play some tricks. Mark another block than a button as the call block at the right level. Then place the button and give it the extend function. You can mark EVERY block as a call block, but only redstone-related ones will call the elevator. All others will be just "markers" for the floor.
     
  28. Offline

    Raek

    Hiya Cybran!

    First off thank you so much for this plugin my users are loving it and so am I, I do have a question though with the smoothness of the lift, I have seen a few posts suggesting that updating my CB to the latest recommended build would sort this out.

    Alas the jumpy lift still remains even with CB-526, I know this isn't the latest build I'm just a bit worried about updating CB as some if not most of the plugins used on the server will bug out so 526 works just fine with them all but the jumpy lift is still jumpy?

    I just put in a lift and used glass doors for the first time and yes this is an awesome feature! but now when hitting the up button the lift lags even more at the start while the doors are closing.

    Anyone else getting this or is it just me?

    Thanks in advance!

    Raek
     
  29. Offline

    AnrDaemon

    No harm done :)
    I'm not familiar with server internals, so can't really vouch for one or another way of doing things. :)
    Can't recall, but it's fairly easy to check, since I'm about to rebuild it anyway (gonna expand it a bit, as 2x2 shape with control console is hard to operate).
    As long as I'll be able to remove unnecesary blocks after cleanup, that'd be fine choice, by me. (And from your explanation, that about to be it.)

    This should be mentioned in the documentation. (Or make it more clear, perhaps? If it's there already.)
    Oh, and another note to the documentation (and the really important one) - "/elev help" is not really helpful.
    Full of obscure references and expand past the screen height. Make it Real Short(tm), each line no longer than screen width. It's not intended to be comprehensive documentation, really, just a reference card.

    Do you have some permanent place for your mod documentation, like wiki? I could make an attempt to clarify and cleanup it, if you want a hand.
     
  30. Offline

    INemesisI

    hey, i really love your plugin, but i only want admins to be able to use this plugin to have only official places where such elevators are. I could not find a way to prevent normal users to use this plugin, even through i never gave them the permission to use it. Is this a bug ?? (using latest GroupManager)
     
  31. Offline

    opiumskittles

    I love this mod, but is there anyway to make the elevator automatically return to a default floor?

    For example, I have an elevator going up and down inside the shaft, but I want a glass door on the bottom. When the elevator get's taken down by someone, it stays there and the glass door doesn't respawn. So what I would like to have happen is have the elevator either go back to the top or to the middle or something so the glass door can close again.

    I'm not sure if I made sense, but any help would be appreciated if what I said is possible.
     

Share This Page