[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

    gdscei

    I got the "command analysation exception", with #617. i don't know why, but the console does not say anything about it.
    Edit: after enabling debugging, I got this:

     
  3. Offline

    Tim Visee

  4. Offline

    AnrDaemon

    Which command you've tried to issue?
     
  5. Offline

    Pookie21

    thanks dude!
    :p
     
  6. Offline

    treegis

    apparently it was permissions 2.2 breaking it, i removed permissions and it worked again
     
  7. Offline

    Cybran

    Referring to this post, I would like to find another active member for our testing group!

    Send me an PM, if you are..​
    ...interested in making the plugin even better :D?​
    ...familiar with the project and know about the updates?​
    ...an active member with some time for testing a plugin version before it's release?​

    You will get an pre-release build everytime I finished features of a new version and are expected to test the new functions and find bugs!
     
  8. Offline

    Punchin

    If you make a redstoneout lever, then put 2 redstone dust leading away from it, you can to "/elev go|direct <floorname>" targeting the 2nd dust (not the block it's on). I have a 4 floor elevator on my test server that constantly cycles floor 1,2,3,4,1,etc...
     
  9. Offline

    clearwolves

    Can you add the ability to change how many stones away the elevator will halt? I would like my call button at eye-level, but since placing the elevator floor 2 stones from ground level, the call button has to be lower. This is because I placed the elev-floor lower than suggested; so I could place a multi-colored floor design on top of the main elev-floor. If I could change the stone halt to maybe 3 or something, all would look even.
     
  10. Offline

    Cybran

    There is another way to get it like you want: Make any block (can be stone, whatever) 2 blocks above your floor the call block. Then, take your button as direct block to this floor.
     
  11. Offline

    AnrDaemon

    A request for a potentially gamebreaking feature. Thus probably requiring a separate pormission... IDK.
    Add /elev up1 and /elev down1 action blocks to move elevator 1 block up/down on trigger.
    Could be realized through creating a supplementary floor.
    If you aren't doing this (creaing a supplementary floor) already, it's a good separate idea too, to not loose track of elevators under certain conditions, such as elevator stucks and so. Check if you can move elevator to the next block, if yes - define a supplementary floor there and move elevator, until your next position match one of the defined floors. In which case you just move elevator to that floor and destroy supplementary floor for a while.
    This way, you ALWAYS know that your elevator on a certain floor. And only dire consequences could break this scheme and force a whole upscale search for lost elevator. Which I do suggest, too >.< To search elevator from the bottom...
     
  12. Offline

    WDV

    Im having trouble with the /elev call|floor command. (/elev call|floor Ground)
    It just gives me a list of all /elev commands, had no problems with it before the most recent updates.

    Maybe im messing up the order of things...
    1. /elev create (3x3 created)
    2. /elev call|floor Ground
    3. /elev call|floor Top
    4. /elev down
    5. /elev up
    6. /elev finish
    just a very simple elevator, i can issue the up/down buttons but it wont let me use the floor designation buttons, and the lift just wont work without.
     
  13. Offline

    AnrDaemon

    It is either
    /elev call <floorname>
    OR
    /elev floor <floorname>

    For further reading: http://en.wikipedia.org/wiki/EBNF

    (And /elev finish only relevant to /elev glassdoor for now. But probably going to be used for building a cabin, if automated recalculation fail for all attempts. A wild guess...)
     
  14. Offline

    floid

    An interesting thing to implement is to let and elevator be activated with circuits, not only with buttons near its structure.

    I use to build moving gates with Elevators, and would be a good idea to activate a "gate" from a distance, like in a minecart rail system with automatic gates, for example.

    Great plugin indeed, congrats and keep the awesome work.
     
  15. Offline

    Cybran

    A small questions: Why do you need blocks that move elevators ONE block up/down :confused:?
    My plugin never looses track of the elevator (under normal circumstances). Even when the elevator got stuck, the last known position is stored (also when you restart the server). When the elevator is expected to move again, it simply checks whether it is still there. Only if it isn't, the elevator is searched (because someone could have recreated it somewhere else), the position with most matches of ground AND cabin blocks is presumed as the new location. Only v1.4.1 broke this scheme, I'm sorry, because the cabin blocks were not stored :(...
    But with v1.4.2 the search algorithm is much safer again.

    Oh dear, I will make a BIG RED text somewhere at the top of the description:rolleyes:
    ANY redstone-powered block will trigger an elevator move. ANY. Not only buttons. Right-click stone plates, levers, redstone wires, redstone torches, whatever.........
     
  16. Offline

    AnrDaemon

    Torches? :confused:
     
  17. Offline

    kakbun

    is there a way to prevent the elevator
    from transporting lava or water?

    my elevator is flooded with lava, and when i let it move up the lava also
    moves up,
    bukkit version (612)
     
  18. Offline

    Dreadreaver

    will be implemented in 1.4.2 =)
     
  19. Offline

    kakbun

    great news:cool:
    [cake][cake][cake]
     
  20. Offline

    clearwolves

    PLEASE make this a toggle option, because ive designed my elevator with lava above glass for a lighting effect & grief proofing.. so moving lava or water with elevator is great for me. Just dont make it a default function.

    Can you make it so when an elevator moves it disables DROPS ? I have managed to build a door onto the elevator itself (no need for doors on each floor this way) with hidden on/off redstone torches on the floor-levels which actually works.. But the problem is that when the floor goes up or down it Drops a door, but surprisingly the actual door stays in-tacked which is good.

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

    Dreadreaver

    imo its a command like /elev lock ... so yes it should be toggable but only Cybran knows for sure 8)

    thats a bug Cybran is aware of, should be fixed in an upcoming update, I hope its 1.4.2 but I dont know for sure
     
  22. Offline

    Cybran

    It will be toggled by the /elev lock command. If you upgrade from 1.4 or below, it will be locked automatically to prevent breaking the design. If you upgrade from 1.4.1, it won't be locked as standard.

    I'm fixing many item drop bugs in v1.4.2, but I didn't know about doors yet! I will have a look on it, hopefully fixing it in the next version already.

    I tried MANY different ways to get rid of the door drops, unfortunately, none of them work. I'm just not able to remove this damn bug.... The item is dropped automatically when my plugin removes one block of the door, and there is no way to stop this. There is also no way to delete the dropped item. Sorry, but I tried :(

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

    Dreadreaver

    in 1.4 i already had the dropping doors problems so what i did was: i put 2 dirt blocks where the door should be, then use WE to make them a door, this fixed doors for me on 1.4
    havent tried it for 1.4.1 yet though
     
  24. Offline

    EnigmaticMiner

  25. Offline

    Dreadreaver

    1.4.1 working fine on cb670 tard -.-
     
  26. Offline

    clearwolves

    Thanks for trying.. I'll test Dreadreaver's solution with WE. and BTW this is one of the best mods I've incorporated into my server, just cant wait till all the bugs get worked out.. its coming along nicely!
     
  27. Offline

    LucidLethargy

    So like the fool I am I just can't get enough of your plugin, despite the fact it has erased my elevator database 3 times now... So, well it happened again and I'm wondering... is there any simpler way to get these back than recreating them all by hand? I would really appreciate any help as I do love this plugin, but it is kind of causing me a lot of work when, for instance, today my host killed my server to "help" me, and I was left with a completely new and empty elevator list -.-.

    Anyway, big fan of this plugin and it's absolutely beautiful design... but not so much a fan of the fact it's the only plugin I have that keeps erasing itself on certain improper shut downs :X.
     
  28. Offline

    Cybran

    V1.4.2 is designed to work with 670.

    Not good :eek: - can you maybe give me some info in which situations the storage had been cleared? I forced my server many, maany times to close instantly, and never had this problem so far.
    But, with v1.4.2, most storage files are saved in the world folders, so you can backup ;)

    [​IMG]

    Changes:
    • elevators saved in world folders (--> your backup plugin also copies elevators now!)
    • /elev lock to stop searching for new cabin blocks added
    • forbidden blocks config entry added
    • glass doors opening-direction can be specified now!
    • replace the command names by your own ones!
    • many item bugs fixed, duplicating items is not possible anymore.

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

    BroodyHenne

    ^Hi,
    is it possible to use an FalseBook RedstoneCircuit to call an elevator to your floor?
     
  30. Offline

    Cybran

    If this circuit has an redstone wire as output, sure.
     
  31. Offline

    BroodyHenne

    I will try thanks
     

Share This Page