[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

    Yogoda

    Awesome ! MoveCraft won't need to do it :)
     
  3. Offline

    Sparky

    Very hard to set up D:
     
    Docj98 and bandgeek303 like this.
  4. Offline

    Cybran

    Yes, I have to admit that the creation is somehow difficult. But once created the usage is very easy.
    If you have any better idea, please feel free to post!
     
  5. Offline

    DJ411

    Can i see some Tutorial videos.
     
    shadowyman12 likes this.
  6. Yeah - I'd really like to see how this works before putting it on my server. Some videos would be great ;D.
     
    Nickexp likes this.
  7. Offline

    Kull

    Help? I created the elevator but when I try and create the call button, I get"Call extend block creation failed, given id is not in valid range" Can we get a little more detailed instructions?
     
  8. Offline

    ACTruncale

    It's working well for me
     
  9. Offline

    Kull

    Can you tell me what you did? I created a 4x4 elevator. Two call switches. One on each floor. On opisite side of elevator (in the elevator I created up and down buttons. Received confirmation on all. Can not call or operate the elevator. Any help would be great. This will be awesome.

    Are you just right clicking on the block to call elevator. I would like to have severaal floors but need to get the first two working. LOL

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

    ACTruncale

    the buttons can't be in the shaft. What Bukkit version are you running?
     
  11. Offline

    Kegan187

    The commands don't even work for me. It registers as a unknown command in my console.
     
  12. Offline

    Kull

    0.0.1 downloaded on the 22nd is the version i'm running. I put up down buttons in elevator and call box on second block away. I may have done something wrong. I created a 4x3 elevator, wonder if it needs to stay 3x3 or 4x4 and so on?

    Thanks, I see you using the up and down buttons but no Call button? I kind of got mine going but the call buttons dont work.
    --- merged: Jan 27, 2011 11:29 PM ---
    Wow, This is nuts. Now i have one call button working and the up and down. But for whatever reason, I can't call it to the top.

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

    Nijikokun

    Few ideas to make this simpler:

    Use a timer to go up / down. Inside the timer search for a block on the current level that is a stop block IE: redstone ore, etc. If the stop block is found it stops at that level.

    Have two buttons, Up / Down. You click a button the shaft starts and goes in either direction until a stop block or roof / floor is found.

    This way you don't have to jump up and down, no more tedius creation processes other than:
    /elevator create [name] [size]
    /elevator up [name] - waits for button hit
    /elevator down [name] - waits for button hit
     
  14. Offline

    Aelux

    Brilliant..... A little more work for a vanilla server (depending on the stop blocks used) but still better then the current system.

    @Cybran and umm.... *whispers* Permissions support */whispers* (btw, love the supreme command reference. One of my favorite games)
     
  15. Offline

    RustyDagger

    Nijiko How would that allow for more than 2 stops (top and bottom) How would it know where to stop in the middle.

    How i would Do this is way more simple than this. It would make building the shaft harder but less commands well only 3 create,up,down.

    Ok so the top of the elevatore would be marked by a block say sandstone the lift would move up untill there is a 2 high space of air then stop (thats the top sorted). The bottom is just as easy place a peice of sandstone at the bottom of the pit. (Lift would stop when it is touching this one) the stops in the middle are just as easy. a peice of sandstone in the wall of the pit(so its out of the way) would make the lift stop when it is the same hight as the sand stone block.

    Ofc You could remove the sandStone Blocks and use commands to set blocks as the top,bottom,floor blocks.

    A command to set the blocks would be like. /elevatore settop . In chat please click a block.

    Also may just want to give names to the elevatores so you can set witch elevator you setting the top/bottom and up/down buttons for. so like

    /elevator create name size or w/e then add the name pram to the rest of the commands.
     
  16. Offline

    KakerZone

    This plugin is great, I've followed the video tutorial's EXACT steps. First I type "/elevator call steptwo" (yeah, I even copied the name that's how exact it was) and then "/elevator down" and it says this: "Down-Block creation failed! Already linked another block this position. No idea what I'm doing wrong.

    Nijikokun's suggestion sounds ALOT easier then having to do all of this. No offence, but I'd like to see you try and do Nijikokun's way.

    Thanks.
     
  17. Offline

    Aelux

    Because there are "Stop Blocks" Wherever there is a stop block, that's where it stops... The call function would stop at a stop block nearest to a player...
     
  18. Offline

    KakerZone

    The elevator is functional. It just won't go down. I've tried typing "/elevator down" before "/elevator call steptwo" with success, but the elevator won't go down if I hit the button.

    Also I think Nijikokun is referring to the Java timer? I'm not too sure. But I may be wrong.
     
  19. Offline

    ACTruncale

    Chernobyl360 I don't know why you can't get it working it is working for me. Try deleting your elevator and buttons and build it again
     
  20. Offline

    Nijikokun

    /me facepalms. If you don't understand Java, then don't comment on it.

    A timer allows you to create something that happens at a scheduled time (think kitchen timer but in seconds) and allows you to start / cancel it when needed or make it timed via schedule. When applying buttons he could add references or indexes to figure out which button was pressed.

    My idea is VERY simple to implement.

    Example: (Elevator coming to your floor)
    If the elevator has 3 buttons -> You press # 3 obviously thats the top floor.
    If the elevator button #2 was pressed -> middle floor.
    If the elevator button #1 was pressed -> bottom floor.

    Same for going up just reverse the floors / buttons.

    Also, the stop blocks are there to tell the elevator WHERE each floor ends instead of attempting to figure out where through the buttons.
    Code:
    x = elevator blocks, # = blocks surrounding, ^ = redstone, + = opening, b = buttons
    
    [ # # r # ]
    [ # x x # ]
    [ # + + # ]
    [ b + + b ]
     
    Deleted user likes this.
  21. Offline

    RustyDagger

    The Floor stopping is pretty much what i mean But niji Explained it better. Have a block that is set (type or by command) that tells it where to stop keep the chat command for making the buttons this frees up the buttons so that i can put them any where if you included the naming system i could have a button a long way away and still move it . then it could possibly be used as a flood gate of some kind as well no doubt.
     
  22. Offline

    Seth.D

    Great plugin! Works absolutely perfectly. Now I no longer have to rack my brain trying to figure out how to make elevators using MoveCraft. Thanks a lot!
     
  23. Offline

    Solaris765

    quick question. how would this work if i decided to use this with MinecartMania and put tracks on there with catcher block and simple launch switch? could this be done or will that mess up the elevator?

    EDIT: oh and one more question. can this go straight up in the air w/o anything around it?
     
  24. Offline

    Cybran

    @Nijikokun:
    I'm sorry, but I don't understand what you exactly mean. As I expect, you want to replace the individual CallBlocks through a specified blocktype? Then, how do you set names for floors or call the elevator to a specific floor if it is currently not there?

    @all:
    Anyway, i will try to make the creation a bit more easy. Also planning a real tutorial video, i think many problems occur because it is quite difficult to understand how it is designed to be. But i want keep the floorsystem, because this is very flexible, can hold a large amount of different floors and can be integrated into more complex redstone circuits.

    @Aelux:
    I will have a look at the Permissions plugin support, after i fixed the things mentioned above.
    --- merged: Jan 28, 2011 8:09 AM ---
    Depends on where you want to place the tracks. Above/below the elevator is no problem.
    And yes, currently it can go up in the air. Of course you need the CallBlock anywhere up there ;-)
     
  25. Offline

    Nijikokun

    Using indices as explained in my post.
     
  26. Offline

    TheFredz

    I tried This plugin and it work really well. It's really not that complicated to set up and I really like the whole floor system and how I get to name my floors and how the name shows up when you reach a floor. It can let people know what they'll find on a floor.
     
  27. Offline

    TAT

    It's half steps, block ID 44
     
  28. Half steps.
     
  29. Offline

    Galrath

    If I understand this right, you need to place a block, which then is assigned to be the call-block.
     
  30. Offline

    Cybran

    first type the /elev call floor , then right-click an existing block to mark it as the callblock. Can be any type of block.
     

Share This Page