[MECH] Elevators [BukkitDev]

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

  1. Offline



    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.
    • 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)
      -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)
      -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)
      -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:
      -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


    I just made an elevator that moved through water. It works fine on the way down, but as soon as I hit the up button, the ceiling goes up and the rest just floods with water. Then when I try to bring it back down, it says there's stuff in the way. AKA, the rest of the elevator. It is made out of dirt and fully enclosed 4x4x4. I had signs on the doors to keep the water out and up/down buttons inside the carriage.

    Ok, figured out what was happening. You HAVE to make the enclosure out of a different material than the base. The plugin doesn't remember where the exact location of the base is, apparently. It just looks for the first object with the matching materials and dimensions. Is there a way to fix this easily? I rather like the idea of a solid glass elevator descending through the water.
  3. Offline


    I never had a problem with this kind of lag. I will change the moving system to store the entities moving with an elevator (which won't change the lag, but prevent the damage, I hope). The lag may be caused by an overloaded server.

    Can you give some more info? Like messages, errors, version etc.?

    Make sure the spelling is correct.

    I'm sorry, first I will try to fix all the bugs, and I have currently much other work to do... it could take a while.
    --- merged: Feb 21, 2011 7:17 AM ---
    I think I can't do much about this. The lag is caused by the client's physics calculations, which gets overridden by the coordinates from the server. The "ping" between the location updates causes the lag.

    Ok, I see. I will store the elevator's position instead of searching it every time. This will help.
  4. Offline


    One thing you might want to also consider is if it's not found at it's last known location, search anyway. I use WorldEdit a lot, and the thought occurred to me to adjust part of my elevator shaft once. I rethought that action for fear it would break the elevator. Did it anyway and had to rebuild it, but it needed done. :p
  5. Offline


    Already planned [​IMG]
  6. Offline


    ok we had some elevators set up just the two thankfully both had a double stone slab base 2 call butons (one top one bottom) and a up and a down button on the lift

    on a server reboot we had to recreate the elvators the server forgot them!

    can you make it save to a mysql database instead of the .dat files ?
    how do we prevent it from hapening again ?
  7. Offline


    .dat files are outdated. If you use them, please update the plugin. But besides: what should a database change about that? I don't know what you mean with a server "reboot" - loading a backup, recreating world, etc.?
  8. Offline


    love this plugin. have set up MANY elevators in several buildings (each with 4 or more floors ) no problems yet. the commands are short and simple. any way to make them go at an angle ( 45* ) and perhaps loop it for something silly like an escalator ? :p
  9. When i create an elevator and when thats done i do /elevator call floor1 but then i get the message that the elevator is broken :S yesterday i didnt had this problem...
  10. Offline


    I love this plugin as do my users :)

    I have however encountered a major issue with the 1.3 release relating to glass doors.

    We have had two different type of elevator shafts break badly relating to the sliding door function.

    Both shafts are 5x5 with a 3x3 double stone slab elevator going trough them. One of the shafts is all glass, and the second has the corners in stone and the remainder of the shaft in glass.

    As the elevator reaches the bottom of the shaft, where there are NO glass whatsoever around the elevator... the ENTIRE shaft which is about 50 blocks high has all it's glass removed.

    You really need to limit how high up from the elevator base it interacts with glass from the looks of it. Better yet, allow us to define what areas are supposed to be glass doors (multiple doors could exist on any given level) as some of our existing elevators also happen to arrive at levels with glass walls which we definately do not want to act as doors.
  11. Offline


    If you want to place glass WITHOUT making it a glass door, then first send the elevator to another floor and place the glass afterwards. Two blocks below the call block, up to the next floor above is the influence area for the glass door (so make sure the elevator isn't at the floor below your glass shaft).
  12. Offline


    by server reboot we mean the server application craft bukkit was turned off so the files could be updated then reloaded

    we find the plugins that use flatfiles do sometimes lose data where as the ones that use mysql do not

    we do love your plugin though so far we have used it for
    elevators (well duh)
    secret enterances to lairs (picture a button on a tree that when pushed a section of grass raises to reveal an elevator... the effect is extremely nice)
    Traps (something thats in plan stage but the elevator would raise when trigured by plate, when the dispensors get level with the player they are also level with some redstone repeaters...player covered in arrows)

    maybe were just doing too much with elevators that was never ment to do lol
  13. Offline


    Thanks! Works great! Though the server CPU spikes like crazy when the elevator is moving.
  14. Offline


    I made a 4x4 glass tube with mud at the bottom and cobble at the top I had a mud landing on the bottom and a plain stone landing at the top, I had copied what the person did with the buttons in how to make multiple floors and it doesn't work at all, no errors, nothing, can someone plz help, I've made other elevators and thet've all hd the same problem.

    I'm running build 257 or 256
    --- merged: Feb 22, 2011 6:11 PM ---
    it does give me confirmation that I've made the elevator and set the call and up and down buttons
  15. Offline


    I was told to nag to you about your stupidly long constructor

    my bukkit console to me :/​
    iarspider likes this.
  16. Offline


    Yes, yes, I know [​IMG]
    This will have to wait until the next version..
  17. Offline


    help when i go up some things like glass and wood magicly dissaper.
    When i go down they return like wtf? fix it.
    Console : No errors
  18. Offline


    I'm a bit concerned about this. In my case this means your code is actually checking/altering about 1000 blocks since there is 50 blocks between the two floors and the shaft is 5x5. imho the only sane thing to do is to actually limit how high up the code checks/alters and you would avoid a lot of problems that way as well.

    Who would ever want to have a sliding door higher than 3-4 high??

    Right now I have no glass doors on either floor, but the elevator still wipes the 50 high shaft of glass whenever it reaches the bottom floor. No glass on the actual floors, elevator been removed and recreated as well.
  19. Offline


    I use Bukkit Build 430 and Elevators v.1.3. It doesnt work for me :S And i get this warning:

    I hope you will update this update very soon :eek: Because we need it so much :s
  20. Offline


    Can't wait to see this updated, wonderful plugin!
  21. Offline


    Hey there. Elevators 1.3 seems to work fine for me under MC 1.3 and CB 423, and 430. The warning about the constructor posted above is cosmetic, as has been pointed out many times.
  22. Offline


    were having a problem with this and cb 432
    buttons attached to the elevator ping off as it goes up and attach when it stops but attach to air not there original and lock, it still works but its messy lol
  23. Offline


    I had problems with this by myself now, but only with buttons placed when working with the new craftbukkit (already stored are working fine). Trying to solve this now.....
  24. Offline


    seems that if you place them on one side they stay correct but (think east or west side) but if you place them on north south side they move

    its like its not storing the object orientation and therefore defaulting it, still on the same location but wrong orientation (if that makes sense)
  25. Offline


    I found on cb439 that when going up in the elevator that I'll fall through the floor. Does not happen when going down though. Nothing in the logs to paste unfortunately. Server has been freshly restarted to check this to avoid any overload issues.

    This does not happen on cb432.
  26. Offline


    I know the "fall-through" issue. I will try to fix it in the new version.

    So you know where I'm standing, I added a progress bar to the current development process in the #1 post. Just liked the idea, and you can estimate how long you'll have to wait [​IMG]
  27. Offline


    Look forward to the new version.. Great plugin as it makes my life a lot easier than building a billion steps to the bedrock. Mobgrinders are fun until you have to build steps from the surface to bedrock.

    Only other issue was the buttons moving which you know about. I found that sometimes I have to reset those buttons that have moved by pressing the call button. No idea why it works but that allows me to hit the floating buttons.

    Edit: Finding that the elevator is randomly getting stuck on cb432
  28. Offline


    this plugin is sexy, which makes you sexy... now lets see those sexy updates! cant wait. great job keep it up

    that just means you actually care about the community... there's something about sexy that goes here...
  29. Offline


    Hey Cybran

    I think you have done an amasing job here.
    Theres two things i would like to see if possiple :)

    1. When launching server im getting a

    2011-02-25 01:24:16 [WARNING] Using the stupidly long constructor de.NTcomputer.
    Elevators.Elevators(PluginLoader, Server, PluginDescriptionFile, File, File, Cla
    ssLoader) is no longer recommended. Go nag the plugin author of Elevators to rem
    ove it! (Nothing is broken, we just like to keep code clean.)
    2011-02-25 01:24:16 [INFO] Hint! It's probably someone called 'Cybran (NTcompute

    Hoping this is easly fixed, or i might not have the newest update?

    and 2.

    Im not sure if this is is allready here, in that case i cant make it work :p

    Lets say we have 4 floors.

    Floor 1
    Floor 2
    Floor 3
    Floor 4

    And im standing on 1st floor.
    Could it be possiple to have 3 buttons? (1 for each of the other floors)

    Again i love this.
    And you have done great here :)

  30. Offline


    You have the newest version, the constructor will be fixed soon.
    Also, the next version will have a go|direct command, so you can create buttons directing to a specific floor.
  31. Offline



    ^^^ That happens frequently (sorry for double post couldnt type anything else in that box) if you can see that first obviously the button is floating, secind the actual button is appearing somewhere where the button actually isnt. You can see the black outline is actually just hovering in mid air inbetween the stone and the button :/ any way to fix this?

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

Share This Page