[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

    Veteranspy

    With items placed inside of the elevator, say a torch or something, it dupes the items. It says that it gets stuck or something, then it drops all the items with them still on the wall. I've been able to duplicate this problem twice now, and it can be abused. Please look into it :S
     
  3. Offline

    MineralMC

    Bump. Having the same issue with items placed inside the elevator shaft.
     
  4. Offline

    Luckz

    Doesn't seem to work for me at all.

    Code:
    23:48:39 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'elev' in plugin Elevators v1.3.1
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:233)
            at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:594)
            at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:557)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:551)
            at net.minecraft.server.Packet3Chat.a(SourceFile:24)
            at net.minecraft.server.NetworkManager.a(NetworkManager.java:198)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    Caused by: java.lang.NoClassDefFoundError: de/NTcomputer/Elevators/ElevatorsBlockListener$ElevatorsWaitControl
            at de.NTcomputer.Elevators.ElevatorsBlockListener.QueueWaitControl(ElevatorsBlockListener.java:32)
            at de.NTcomputer.Elevators.ElevatorsBlockListener.QueueWaitControl(ElevatorsBlockListener.java:26)
            at de.NTcomputer.Elevators.Elevators.PrepUpBlock(Elevators.java:194)
            at de.NTcomputer.Elevators.Elevators.AnalyzeCommands(Elevators.java:97)
            at de.NTcomputer.Elevators.Elevators.onCommand(Elevators.java:72)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
            ... 12 more
    Caused by: java.lang.ClassNotFoundException: de.NTcomputer.Elevators.ElevatorsBlockListener$ElevatorsWaitControl
            at java.net.URLClassLoader$1.run(URLClassLoader.java:299)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:288)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:287)
            at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36)
            at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:422)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:355)
            ... 18 more
    
     
  5. Offline

    AnrDaemon

    Doesn't looks like you're using correct server/plugin combination.
     
  6. Offline

    registered

    Hey gang. The bucket guys have another recommended version, 617 if my memory is right. I get an error when the server starts. My existing elevator is working. I'm suspecting that new elevators can't be made based on the error I'm reading, but I've no tried. I look forward to the next patch, this is a great mod.
     
  7. Offline

    Eggplant!

    I think this broke some things for me... I used to have this great drawbridge that would sink into the ground and flood over with lava coming out of the walls. When I raised the bridge the lava blocks would be destroyed and you could walk across the bridge.

    Now, the lava comes up WITH the bridge, burns everyone, and generally make life unhappy. Is there any way to disable this new behavior? Sort of "lock" what constitutes the cabin at creation time?

    (btw, 1.4.1 is working great here with RB 617)

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

    Cybran

    I expected that there would be some problems with this new feature for certain elevator designs. But the "lock" idea is a great thing, I will try to do it this way.
     
  9. Offline

    Craig Coffey

    Seriously... this is my favorite plugin for Minecraft. So many possibilities!

    Speaking of which, sorry if someone has asked this already. Has anyone requested the option to move things horizontally? It would be really cool to create big castle doors and trap doors. :)

    Thanks!
     
  10. Offline

    AnrDaemon

    Erm. Shouldn't it only recalculate "cabin" when there's building occured in the elevator shaft?
    This sounds more like a bug to fix than a feature to implement.
     
  11. Offline

    Dreadreaver

    that was elevators <1.4.1
    since 1.4.1 the elevator doesnt keep track of what you build upon it or not, it just moves everyblock somehow connected to the the elevatorplatform(which is great for using plugins like WorldEdit/VoxelSniper) and also allows building elevators underneath already existing buildings to move them without having to rebuild them, so no, its not a bug =)
     
  12. Offline

    Oscarius

    I don't like this change. It makes building secret entrances and elevators a lot harder.
     
  13. Offline

    AnrDaemon

    You didn't followed conversation thoroughly, it seems. I didn't said about "what build", check again. I just said "building occured". Else every item drop would cause cabin recalculation, up to complete inability to build anything over elevator, as it would pick up whole space above it as cabin.

    Ahha, and move half of a building, when you only want a secret door opened.
     
  14. Offline

    Dreadreaver

    Of course I did but now I dont quite get what you mean? You asked wether the elevator shouldnt only recalculate the cabin if something was built in the shaft, right? I answered that Elevators 1.4.1 doesnt keep track of what gets build into the cabin or not - so basicly it cant recaculate the cabin again only after "building occured" as it does not keep track of the blocks in the elevator imho, it just moves every block connected to the elevatorground on move.
    So having lava flow onto the cabin will move that lava as well when you move the cabin as its connected through the cabin to the elevatorground and this is normal behaviour as intended. Cybran will add this new "lock"-feature so that cabins wont get affected by lava and such, thus eliminating this "problem"(which could prove useful in other situations though).

    Why just half of a building? Why just a secret door? Just because thats your way of using this plugin it isnt mine, I got a rocket base with rocket that you can bring to the surface, I have a tower that is only 5 blocks high until u press a button .. then it extends to 80 blocks height. I got many other things in my mind that Ill build soon ... just have to get some time
     
  15. Offline

    xenogood

    HeyCybran, ur Elevators v1.4.1 [RB #602] has exploit. People can destroy the elevator(let's say its made of diamond block) it reproduce the diamond block if I click up or down even after I destroy the block.

    That mean I can reproduce LOTS OF diamond.​
     
  16. Offline

    AnrDaemon

    that because you didn't.
    Right.
    Right.
    Wrong.
    Bad, if true. However, I have to check this before jumping to further conclusions.

    We didn't built lava, so it shouldn't be there when cabin moves.
    Wrong sequence of events.
    To cut down lengthy explanation, I'd refer back to my previous post.
    http://forums.bukkit.org/threads/mech-elevators-v1-4-1-rb-602.2584/page-13#post-124875

    I don't see any conflict here. It will still be possible, if implemented right (and I doubt your 80 blocks, unless you've build your tower below the sea level).
     
  17. Offline

    Dreadreaver

    sheesh, doubt my 80 blocks height because stupid me cant count eh? -.-
    of course its a little below sea level! and what conflict are you talking about? I just tried to show you that there are other means to moving building than just "secret doors"

    and for the rest: whatever you are talking about, I hope you understand it yourself because I still dont get what your problem is but its getting late here and Im gonna call it a day now
     
  18. Offline

    EnigmaticMiner

    When I try to do /elev create it says "An internal error occurred while attempting to perform this command."

    Help? :S
     
  19. Offline

    Jono

    hey.. i have been running a server with this for a while and i just brought in GroupManager.. could i ask why does, when i use the elevators, and the commands, it says "command analysation exception"?
    it has confused me many times and its the choice of this EPIC plugin or groups to keep me mates happy :S
    Help?
    oh and every plugin i have is 612... and i am Admin for the Groupmanager.. all permissions enabled...
     
  20. Offline

    Cybran

    I will further disallow any block destruction while being in movement. I think this should solve the problem.

    This is not an error of my plugin.

    This stupid error message is only a way to avoid crashing the server when an error occurs. It could be any type of error, if there aren't any hints in console, I will include a stack trace in the next version.

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

    Cruxxy79

    Hey, Elevators seems really cool, but I cant get it work. It says I dont have the permission, but I have all permissions (*) I even added elevators.builder to my permissions. Do you know what the problem is?
    Thanks.

    EDIT: The server says it's working, but it isnt. (21:03:09 [INFO] Elevators version 1.4.1 is enabled and linked to Permissions!)
     
  22. Offline

    sargunster

    I have the same problem. I don't think it works with GroupManager.
     
  23. Offline

    EnigmaticMiner

    Nevermind I fixed it. 7 Floor Elevator <3

    Awesome mod btw :D
     
  24. Offline

    Pookie21

    nevermind I fixed it....

    NEVERMIND I FIXED IT....

    Y U NO TELL HOW!??!!!??
     
  25. Offline

    EnigmaticMiner

    ALRIGHT ALRIGHT GEEZ. :p

    Well if you have GroupManager (from the Essentials thread on this forum) then just do this...

    -Go to your Craftbukkit Folder
    ->plugins
    -> EssentialsGroupManager
    ->Worlds
    ->world(The folder of the world you're using. In my case, "world")

    ->Now from here there's two .yml files. Groups and Users
    First go to users, and substitute your name for one of the 3 examples provided, and make sure you're set as "admin" in "group"
    ->Then save and go to Groups

    Here scroll all the way down to the Admin category, because that's what your permission status is.
    From here: Press enter once after the '*' (or after whatever other permissions you have saved)
    And then press the spacebar 4 times. 4 EXACTLY.Then type a hyphen, and "elevators.operator"

    So it'll look like this:
    -'*'
    -elevators.operator

    Save and you should be set! :D
     
  26. Offline

    Dreadreaver

    '*' includes elevators.operator ... no point to this
     
  27. Offline

    treegis

    hi love this plugin, its great but i think the minecraft 1.4_01 update broke it.
     
  28. Offline

    sintri

    still works here
     
  29. Offline

    Bertware

    also working here at CB612, no problems at all (just keep the plugin up-to-date)
    But just a question:
    can you make the possibility, to set an output block for by example the roof at ground level?
    when i set "/elev redstoneout roof" and I mark the block at ground level, it links with the ground.
    this so you can make (a sort of) control chamber, or an indicator with redstone above the lift door and so on..
     
  30. Offline

    Cybran

    Isn't /elev redstoneout <Floorname> what you want?
     
  31. Offline

    AnrDaemon

    I just got hit by a classic example of reading through manual instead of reading manual itself >.<
    Plugin documentation clearly says to not use blocks of the same type as elevator platform anywhere in the vicinity of the elevator shaft.
    However, I was using elevator built of a sandstone with sandstone control console on it without any issues whatsoever. That's okay, but now, I was testing elevators in my sandbox...

    The problem arise, when I've built a platform out of cobblestone, filled it with dirt up to the next floor, and build a new elevator floor on that level... of cobblestone... /facepalm
    It was indeed working well as long as server shut down with elevator on the top level. When I last time logged off, it wasn't the case, and when server started next time, it picked up the elevator roof as it's floor. Thus got "stuck below"...
     

Share This Page