[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

    Niemand

    Would be nice if it could work with the same blocks as Minecart-Mania (at the same time. :D)... would be easier to remember what all those blocks are good for:
    Link to Minecart-Mania-Thread (same Forums! No external link.)
     
  3. Offline

    Nate204

    Also, I'm using Cbukkit 238, Bukkit 109, Scrap 93
     
  4. Offline

    majorcyto

    Oh does it cause crashes every time you try to use it Nate204, or just after a while?
    --- merged: Feb 4, 2011 3:51 AM ---
    Quoting the maker in hopes that it alerts him to his thread!
     
  5. Offline

    Nate204

    Only when I use it.

    It's like it gets overloaded, and hangs up. This causes the server to DC members.
     
  6. Offline

    majorcyto

    Have you tried a smaller shaft maybe the shaft is to long? :eek: But really either way it shouldn't be throwing that crash..
    --- merged: Feb 4, 2011 4:45 AM ---
    Also i quoted the guy who made this, left a profile comment, and followed him so it should at least email him and alert him on the forums. xD!
     
  7. Offline

    Cybran

    Everybody with major issues: please notice that i have already updated the description - handling with async threads could crash the server. Bukkit isn't ready for this yet, so use is ON OWN RISK. I know the problems, but i can't do anything because the functions i need are just not implemented yet. Please be patient.

    It is absolutely sufficient when you just reply to the thread. I am reading everything.
    --- merged: Feb 4, 2011 1:10 PM ---
    Maybe care for little contact? The one who made the tutorial in my description asked me right after i published the plugin. If you don't ask or say something, i can't change it. You can't assume that I'll post the link to your video in the desc, only because you posted it as a reply to the thread.
     
  8. Offline

    majorcyto

    Sorry Cybran ;[

    How is movecraft working properly then? Or is that because its based on what the player does to it, instead of timed functions with the buttons and such.
     
  9. Offline

    TheHank

    I love this plugin!

    It was hard to set the elevator up, and it crashed the server a few times, but after messing around with it for a while I finally got it to work. Thanks!
     
  10. Offline

    SeeD419

    Love the way the elevators move with this.

    But yeah, definitely not stable. It crashes all the time, lol.
     
  11. Offline

    wwZaraki

    For some reason I can't make an Up button and Down button on the same floor... It tells me there is no higher/lower floor when there is.

    I guess its a plus that the plugin hasn't crashed my server... Yet.
     
  12. Offline

    firefly_goat

    I would be nice if you could place blocks on it or so you could use it as a gate! Is there any plugin to bukkit, so you could use a gate, that moves like the elevaor does ?!
     
  13. Offline

    Justin Peeler

    I created a quick tutorial for making the elevator with multiple floors and demonstrated how to get to them quickly with the multiple click method. I hope this helps to clear up some of the confusion people are having getting their elevators to work.

    http://www.youtube.com/watch?v=QJDeMPR4qog
     
  14. Offline

    Arisilde

    I keep getting this too.
     
  15. Offline

    majorcyto

    As a temporary solution (since sometimes it works sometimes it doesn't) could you make it catch itself when it crashes instead of crashing the whole server?
     
  16. Offline

    Cybran

    With version 1.1, I am already catching it. Unfortunately, this doesn't prevent the server crash... The main issue is, that another part of the bukkit API tries to read the blocks my plugin is currently writing. So the server crash is caused by the parts, i have no influence to change. The only solution (for other plugins) is, to perform actions when a player moves. But in the elevator you even aren't able to move, so... I hope bukkit gets updated soon.
     
  17. Offline

    majorcyto

    Plugin Makers are allowed to request certain or specific functions/features for their plugins. Have you tried requesting directly what you need?
    --- merged: Feb 5, 2011 7:35 AM ---
    --- merged: Feb 5, 2011 8:03 AM ---
    You can request features here http://redmine.bukkit.org/projects/bukkit/issues Open a issue, and mark it as feature or needed priority.
     
  18. Offline

    iMalware

    Amazing, in the tutorial youtube, there's someone QQing of the fact of one he made of the elevator.
     
  19. Offline

    Cybran

    Yes, I know. The problem is already known. Found 3 issues related to this. Unfortunately, none of them is implemented yet and i think they're all marked with priority LOW. I will ask the one who develops the function.
    --- merged: Feb 5, 2011 10:03 AM ---
    The code is already done. It just needs someone implementing it into the Bukkit Master.
     
  20. Offline

    majorcyto

    Oh wow -.-' Did you ask if someone would be putting it into bukkit master soon? Or did they say? :eek:

    Also i have a feature request that i think is doable but might be a TAD of a hassle, password protected floors. For instance lets say im on floor 1, i then go to floor 2, then to floor 3 etc like normal then when i try to go to floor 4 it asks me for a password then i could do /elevator <password> or /elevator pass <password> how ever you want to set it up.

    And unless the password is entered CORRECTLY then the elevator will not take them to the floor if it is put in correctly then itll say "password accepted" and move them down/up to the next floor.

    Also maybe future ideas to enhance this idea is to make it work with the permissions system and you can assign "group access" to floors so only admins could go to the admin marked floor.. etc. And also the ability to search above/below a passworded floor so maybe floor 3 is password protected but floor 4 isnt so they can hit the button twice skip password floor 3 and go straight to 4.

    Of course so they dont cheat and jump out into that floor you will need to have the auto glass doors feature implemented! Let me know what you think :D
     
  21. Offline

    Cybran

    Yes, I already planned most of the features you mentioned.
     
  22. Offline

    majorcyto

    Nice :D

    Also on the glass doors to make your life easier i say just wait till the elevator stops at the floor then "open" the glass doors. In case you were trying to make it open as the elevator arrived a timed event for the doors would be annoying.

    Also may i ask when you planned on releasing these new features :D?
    --- merged: Feb 5, 2011 1:35 PM ---
     
  23. Offline

    Cybran

    Of course, but - i don't know yet. The new features require major program changes. At the moment I am nearly ready with redstone outputs.
     
  24. Offline

    majorcyto

    Redstone outputs sound nice! The glass doors will be a nice cosmetic feature as well. And you never answered did the guy who did the code say when it would be implemented by chance? :eek:

    ---
    Also ive been doing some testing for you, you might already know this but i will share my results!

    If you make an elevator on your server and make it SLOWLY per floor then the server will not crash. If you make multiple floors very fast it will have a crash error. (i was teleporting through floors making the buttons)

    If you only make one elevator at a time it will not crash, making multiple elevators at the same time usually lead to crash errors.

    You pretty much can only run 1 elevator at a time, running multiple elevators at a time in bukkits current state again causes it to crash.

    If you take it slow, or if you are only using pretty much 1 elevator then you will not crash. I tested this with 35+ users on. When it starts trying to process multiple elevators at once is when the async'n fails. Will need to wait for the bukkit code to be put in before its safe to use it with multiple elevators.

    Note - Also every once in a while the elevator will get stuck! And i currently have found no way to get it down. And sometimes it will crash just because its still not completely reliable!
     
  25. Offline

    Cybran

    Sorry about that. He hopes it gets added "soon", but nothing is certain. Here is the request.

    Thank you for testing! I appreciate that. This will also be useful for the people who want to use the plugin.
     
  26. Offline

    majorcyto

    Oh wow he just requested that pull a day ago! So there is still hope they will have to review it first though and im sure they are looking at other pull requests to. I hope they get to it soon!

    And no problem i really like this plugin concept so i wanted to see what i could do with it right now without it crashing every 2 seconds. xD
    --- merged: Feb 5, 2011 3:27 PM ---
     
  27. Offline

    davedavy

    I love this plugin! I cant wait for 1.2!
     
  28. Offline

    Etsijä

    Cybran, could you move the /Elevators folder to /plugin/Elevators? Almost every other plugin does so.
     
  29. Offline

    Cybran

    Almost every plugin I used did it the other way, but I will change it to the plugin folder if this is requested.
     
  30. Offline

    majorcyto

    Hey have a new idea again :D! Since you said you already thought of all my other ones <_< What about iConomy intergration. set cost in the config to build an elevator for instance.. cost 100 iconomy money to /elevator create. And then as an option for that elevator IN-GAME you could set a cost per floor to go to it?

    The elevator create cost should be in the config so that way its admin set, but can let the players set per floor as a option config option. So lobby - floor 2 is free but floor 3 - 10 cost 100 credits to go to each floor or something similar.

    As a future idea to enhance this idea you could make it so the OWNER of that elevator gets the credits when someone uses it to go to another floor. Lets say player A. is the owner of the elevator and he sets floor 8 to cost 100 currency to go to. Player B. decided to go to floor 8 so it will charge him 100 currency to go to that floor then player A. gets the money to his account for player B. using and paying on his elevator!

    All though MAYBE as a safety feature let it ASK the player before sending UP the elevator if they accept the pull request for that guys task system or whatever itll be easier to pause it and wait for input from the player so if they try to go to floor 8 for example it could ask "Are you sure you want to visit floor 8, it cost 100 currency to go to?" and they could say /elev yes or /elev no if they say yes the task will continue if they say no the task will cancel and not take them. :eek:!
     
  31. Offline

    Etsijä

    Well at least the biggest (BigBrother, Essentials, Permissions with its addons, WorldEdit and WorldGuard, LWC) do it that way. Keeps the server directory structure a lot tidier imho.
     

Share This Page