[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

    rano1234

    ok thanks i am just running my server on a Ramdrive that was created on my imac.
     
  3. Offline

    Cybran

    Maybe you both can post a picture of your elevators? I'm no magician, sry [​IMG]
     
  4. Offline

    Killie01

    i might know the problem
    does a pressure plate work for up and down?
     
  5. Offline

    Cybran

    Not directly (the pressure plate sends out a repeating signal when the plugin tries to reset the current). Build at least two redstone to the pressure plate, type your command and right-click the end of the wire. (I will add this also to "known issues".)
     
  6. Offline

    Riwolfes

    Getting this Error after creating a elevator:
    Code:
    17.02.2011 15:38:18 org.bukkit.plugin.SimplePluginManager callEvent
    SCHWERWIEGEND: Could not pass event PLAYER_COMMAND to Elevators
    java.lang.NoSuchMethodError: org.bukkit.Server.getScheduler()Lorg/bukkit/schedul
    er/BukkitScheduler;
            at de.NTcomputer.Elevators.ElevatorsMoveTask.<init>(ElevatorsMoveTask.ja
    va:127)
            at de.NTcomputer.Elevators.ElevatorsStore.AddElevator(ElevatorsStore.jav
    a:206)
            at de.NTcomputer.Elevators.Elevators.CreateElevator(Elevators.java:165)
            at de.NTcomputer.Elevators.Elevators.AnalyzeCommands(Elevators.java:79)
            at de.NTcomputer.Elevators.ElevatorsPlayerListener.onPlayerCommand(Eleva
    torsPlayerListener.java:28)
            at org.bukkit.plugin.java.JavaPluginLoader$5.execute(JavaPluginLoader.ja
    va:143)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:60)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:213)
            at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:601)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:574)
            at net.minecraft.server.Packet3Chat.a(SourceFile:24)
            at net.minecraft.server.NetworkManager.a(SourceFile:232)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:71)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:104)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:283)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:209)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    We are using Craftbukkit 336.
    Would be nice to see a solution soon ;)
     
  7. Offline

    Cybran

    I have just tested it, both the latest release and the version in development are compatible with #336 and #339. Are you sure you are using v1.2.3 of the plugin? If not, please update.
     
  8. Offline

    Riwolfes

    I've downloaded the latest, 20 min ago. :/
    It looks like it creates the elevator but with no message. Also the elevator doesnt react with the Call-Button and i can't delete it, too.
     
  9. Offline

    Cybran

    This is strange. Usually the error log you posted indicates an outdated craftbukkit version. But #336 isn't that outdated [​IMG]... You can just re-download craftbukkit and the plugin and install it again, if this won't help, try it with the next plugin version (releasing today, I think).
     
  10. Offline

    Killie01

    great but the pressure plate does not work with carts
    --- merged: Feb 17, 2011 3:23 PM ---
    o they do :)
     
  11. Offline

    Riwolfes

    Thanks for help. I will give it a try.
     
  12. Offline

    Cybran

    Released version 1.3!

    Major changes:
    • You can build glass doors around the elevator. See the tutorial section for details.
    • Change the plugin appereance in the new configuration file.
     
  13. Offline

    Riwolfes

    Unfortunately the elevator doesn't move. With the Update of both, the Plugin and Craftbukkit, it now shows messages(like: Elevator created etc.) but after creating the floors the elevator doesn't move. I've watched the Tutorial Videos again and again but I ve done nothing wrong.
    There's no Error Message as well.
     
  14. Offline

    majorcyto

    Moves fine for me, im having a hell of a time making the glass door thing work though. I cant get it to work at all, and ive tried every variation of everything :[
     
  15. Offline

    QQCucumber

    Cybran, did you update the plugin with this kept in mind?

    http://forums.bukkit.org/threads/im...rg-bukkit-will-fail-update-your-plugins.4540/
    --- merged: Feb 18, 2011 4:50 PM ---
    Also, the console is receiving this error even though the plugin seems to be working fine:

    Code:
    2011-02-18 06:42:44 [SEVERE] Unexpected exception
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
    	at de.NTcomputer.Elevators.Elevators.BlockWrite(Elevators.java:571)
    	at de.NTcomputer.Elevators.Elevators.DoMoveElevator(Elevators.java:416)
    	at de.NTcomputer.Elevators.ElevatorsMoveTask.run(ElevatorsMoveTask.java:56)
    	at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:122)
    	at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:304)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:232)
    	at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    I have not been able to reliably reproduce it.
     
  16. Offline

    Cybran

    I have changed the namespace from "com.bukkit.ntcomputer.*" to "de.ntcomputer.*" a few versions before. But I have to keep some classes with the old namespace to ensure that old store versions can be converted to the new format. But they will be used only if an older version is detected.
    Strange error. I will have a look.
    --- merged: Feb 18, 2011 5:12 PM ---
    How do you try to move the elevator (buttons etc.)? Are you sure you placed the buttons BEFORE using the commands? Maybe post a picture as well.
     
  17. Offline

    majorcyto

    I still cant get the glass doors to work...
     
  18. Offline

    Riwolfes

    1. Creating Elevator: "/elev create" (standing on the stone slabs).
    2. Placing Buttons.
    3. Creating Call-Blocks.
    4.Creating Controll-Buttons for up and down.
    Show Spoiler
    [​IMG][​IMG][​IMG][​IMG][​IMG]
     
  19. Offline

    Zenergyx3

    I love this mod :) but may I suggest something for you to think about?

    Maybe give an option of making the elevator a moving enclosed room. That way, you can put all the buttons for different levels inside of the elevator, making everything very user friendly. If this mod can do that, I would love you forever :)

    EDIT:

    Also, can you make the glass doors toggle-able? I am having problems with my glass window around the shaft disappearing when the elevator comes close to it because of the glass door function.
     
  20. Offline

    Lavalamp52

    hey, I've got this plugin and i can't seem to get it working, here's some pics of it. I have followe dthe instructions and it doesn't work.
     
  21. Offline

    Cybran

    Did you follow the tutorial? What did you do especially?

    You can already build an enclosed room :rolleyes: (only not very large). Create your elevator, build anything you want on top of it. (Therefore you will need to use something else than stone slabs, of course. If you don't wanna re-create, make double-stoneslabs ;)) Build the blocks from bottom to top.
    The glass doors are toggle-able. You are building doors ONLY, when the elevator is at the certain floor where you build the glass blocks. Move your elevator to another floor, destroy the current glass blocks and build new ones. When you move the elevator back, the blocks won't disappear.
     
  22. Offline

    Zenergyx3

    Okay, I'll try what you explained to me :) glass doors are a bit difficult to figure out hm? Maybe you should make a command to define glass doors just as you have a command to define the elevator? Much more user friendly I guess. Enclosed rooms... the walls might take up a bit of space (1 metre thick walls for elevators don't appeal to me for some reason ;) ), so is it possible to "attach" a button to a elevator, even if it were not on the elevator? That way you would have all the buttons you can press in the elevator, without the hassle of the actual room taking up a lot of space.

    Edit: (again)
    Basically it would be nice if you can make buttons move with an elevator, on the walls of the shaft maybe, basically saving a lot of space which would otherwise be used by walling.
     
  23. Offline

    knoflookbroodje

    just search youtube on how to setup, after that it is soooo easy!
    really pease of cake!
    looks hard, i admit but in the end it is very easy =D
     
  24. Offline

    robhol

    Serious problem! When going down, lag may cause a "fall" for a player - enough to damage them. When going UP, lag may cause them to fall down THROUGH the floor of the elevator and down the entire length of their shaft - which is almost definitely sure to damage them quite badly.

    Please fix this, it renders the plugin useless.
     
  25. Offline

    iSushi

    Wow, I've been gone for a bit, and... just woooa. Many updates! :D
    --- merged: Feb 19, 2011 6:25 PM ---
    I now want to make an elevator out of TNT and ignite them, and use the elevator :D

    Lets blow up the earth >:3
    --- merged: Feb 19, 2011 6:25 PM ---
    I now want to make an elevator out of TNT and ignite them, and use the elevator :D

    Lets blow up the earth >:3
     
  26. Offline

    Yash

    When I had the older version of elevators, it worked perfectly. When I updated and tried making an elevator, nothing happened. It is as if I don't even have elevators. Can someone help me?
     
  27. Offline

    Jexis

    I've followed the instructional video, and when I set up the slabs and type /elev create, it tells me "see /elevator". When I do that, it just gives me a list of commands, one of which is /elev create. Does anyone know why this happens?
     
  28. Offline

    majorcyto

    Can you please add iConomy support soon ^_^ at least a cost for creating an elevator then ill be perfectly happy lol.
     
  29. Offline

    Punchin

    I have successfully created a demo elevator with buttons for every floor (currently 2) on the elevator itself using the "extend" function and redstone. For simple elevators like mine, it's easy. I understand for huge complexes it would be prohibitive, though. I just set the buttons to line up with pre-placed redstone at each floor to ignite the call block on the respective floor. If I were to add another floor, I would simply extend the redstone for my other floors to my 3rd, and so on. Eventually, though, you'd run out of room for redstone to travel, and have walls 4-5 thick surrounding your elevator. Not too pretty, but it can be done.
     
  30. Offline

    Lap

    Exact same problem. I've had this plugin working with a few elevators, but recently I can't get any of the previous elevators to work without the above results.
     
  31. Offline

    Wulfspider

    I'd like to objects work more smoothly when placed on the elevator floor. They too fall and bounce around when going up and down. I thought about making an elevator that is complete enclosed, so that it could go through water without flooding and drowning the occupants. I haven't really tried this yet, but I am not sure it's possible with how bouncing objects are when attached to it.
     

Share This Page