[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

    Khyron

    A major issue is coming up. I installed Elevators 1.4 today (we'd been running on CB 556 since the weekend), deleted the config files and databases from the old setup we had for 1.3, and restarted the server twice to rebuild those files... and we can't make elevators at all, every time it gives the following sequence:

    install floor of elevator.
    /elev create while standing on elevator
    confirmation message
    3x3 Elevator creationsuccesfull!
    comes up.
    Place call button, run /elev call floor1 (tested with several floor names)
    confirmation message
    Call-block and floor "floor1" succesfully created!
    comes up, followed by error message
    Can't find the Elevator! Maybe it is destroyed.

    Attached is the debugging info file from the console after making a test one with these errors and the floor name "Ground".

    EDIT: We are running a multi-world server using MultiVerse latest build. This problem seems to only be happening in one of the three worlds we're using.
     

    Attached Files:

  3. Offline

    Etsijä

    Hi, we just upgraded the CB from #493 to #556 and in the process, had to upgrade Elevators from 1.3.1 to 1.4. All the elevators on our entire server ceased working completely. Anyone seen this same issue, and what might be causing it? This is quite bad, and we are testing our player's patience with this kind of happenings...
     
  4. Offline

    AnrDaemon

    You did something wrong, that's for sure. I've upgraded two test installations and our main server moved to the nevest releases of most plugins as well. No issues, even tricky elevators still behaving correctly.
     
  5. Offline

    Etsijä

    The elevator data is stored in Elevators/ElevatorsStore121.properties, right? The file is still in there. But our admin hasn't yet added any elevator-related Permission-nodes, could that be causing it? Atm, no one can use any of elevator commands to create new ones - but they should still be able to use the old elevators themselves?
     
  6. Offline

    Reterg

    Feature Request:

    How about a sign placed above an elevator door or near the elevator which displays what floor the elevator is currently on. Just like some real world elevators do.
     
  7. Offline

    AnrDaemon

    Of course. If you're using Permissions/GroupManager, you have to be assigned to the group with proper permissions to even access elevators. Not to say - build one.
     
  8. Offline

    Etsijä

    OK well let's hope this is the reason, as then people don't have to redo their elevators - they just need the proper permissions.
     
  9. Offline

    Cybran

    Two possible reasons:
    a) the ground blocks are not existing anymore.
    b) the plugin searches in the wrong world. This could ONLY happen, when two of your worlds have the EXACT same ID (don't know if this is possible). Check whether two of your worlds have got the ID -3596411915523883912 (or create one elevator in every world and have a look in the storage file).

    Good idea. I will remember this.
     
  10. Offline

    Meldanor

    This plugin is broken with the current build 560:

    Code:
    BLOCK_RIGHTCLICKED loading Elevators v1.4 (Is it up to date?)
    java.lang.NoSuchFieldError: BLOCK_RIGHTCLICKED
        at de.NTcomputer.Elevators.Elevators.onEnable(Elevators.java:72)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:453)
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:217)
        at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:92)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:70)
        at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:203)
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:190)
        at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:130)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:245)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
     
  11. Just trying out this plugin and looking good sofar. Elevators are working for builders and admins.
    The problem is Guests are not able to use them. Guests have no build/break rights and pressing buttons does nothing.

    Is there a special permission they need to be able to use elevators?
    I tried /elev user
    It said it cleared permissions to allow anyone to use, but it seems not guests.

    EDIT: It's a permissions thing with no build, not this plugins fault.
     
  12. Offline

    QQCucumber

    Bear in mind plugin authors are urged to keep their plugins up to date with the recommended build so there's some consistency. You might want to downgrade to 556.
     
  13. I'm currently using bukkit #560, and this plugin works fine, however, just tried bukkit's #561 - #565 and this plugin breaks on all of them (so do a few others) ...... just for info ....... I'm sticking with #560 for now. I've just set up 70% of my current world with elevators - can't do without them now .......:eek:

    21:44:40 [SEVERE] BLOCK_RIGHTCLICKED loading Elevators v1.4 (Is it up to date?)
    java.lang.NoSuchFieldError: BLOCK_RIGHTCLICKED
    at de.NTcomputer.Elevators.Elevators.onEnable(Elevators.java:72)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
     
  14. Suggestion, allow to place double iron doors instead of glass.
     
  15. Offline

    AnrDaemon

    Imagine, this could be a bug in server? :)

    @Cybran: An urgent question.
    How to merge elevators configuration from different servers into one? Considering that worlds are copied as they are, with only world names change.

    And, two worlds could get same ids, if they are copies of the same world... I've had this issue myself on tests, and our admin just did it with live server :)
    Elevators were working fine in one world and bugged/misbehaving in another.
    Removing the wrong world, however, solved the issue.

    BTW, I've got a bug report that I'm not sure where to belong.
    I've an elevator (watergate), which have (had - I had to spread them due to this issue) 3 buttons on the same call-block.
    The callblock itself (an explosive-proof obsidian chunk) is attached to the wall.
    The buttons, therefore, are
    Code:
    Closed >[_]< Safecheck
      Opened ^
    "Closed" sends waterlock to the pipe's fold, interupting the flow.
    "Opened" stops just above ground, allowing water to freely spread over the resulting platform and into canals leading to the active mining operations.
    "Safecheck" puts the lock a step below the ground level, forcing water to fall into closed "pot", thus forming a contained water pillar, in which you would jump in case of fire.
    This was about "using Elevators in a creative way", now to the issue.
    Every now and then, one of the side buttons would just disappear on press. I've even got a habit of using right-click to toggle switches, levers and... other things. But it'd still happen. Since I've spread buttons to only one per block, I've had no issues so far.

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

    Cybran

    Issue with the new craftbukkit builds. Please avoid them until they changed it or I changed it.

    You can use iron doors since v1.2. Use redstone outputs.

    At this time, you can't merge different storages. I plan on moving the storage files to the corresponding world's folder in v1.4.2 (so it will have to wait a bit, sry :()
    Ok, so I know for better now- the world ID system will be also changed since I place my saves in the world folder.

    If the blocks/buttons are not placed on the elevator platform, they are never modified. This can only be a server bug, or caused by something else, no idea what (2nd :().
     
  17. Offline

    AnrDaemon

    Ok, more news on config issue. Only our one world is using elevators, so "merge" is not the right term. It's more like "move".
    If you want simpler question: Do your config use world names at all? If not, I think it should "just work".

    Speaking of second - WorldGuard. I'm leaning to it.
     
  18. Iron doors:

    I was meaning placing Iron doors instead of glass blocks. When you reach the floor it will remove the doors (not open them).

    I've not played with redstone output so no idea how that all works.
     
  19. Offline

    Kevin Forte

    This is possibly the greatest thing ever. The only problem is is that Redstone Repeaters on the platform break when the elevator goes down and block the elevator from moving up. This is the only flaw to my iron double doors that would open when the elevator arrives ):
     
  20. Offline

    Dreadreaver

    u can use "/elev redstoneout" to give out a redstoneoutput when the elevator reaches a certain floor =)
     
  21. Yep I looked at that. You'd also need an inverter and a complex mess of redstone to do Both iron doors opening correctly.
    Also the doors have to be at least 1 block away from the call button or it will also trigger one of the doors. Makes placing the call button a pain.

    Be much nicer if it watched for iron door placement the same as it does glass.
     
  22. Offline

    AnrDaemon

    You can do it all by using no more than:
    A lever.
    A Redstone torch.
    3 redstone wires.
    The only inconvenience is that torch will be exposed to the elevator shaft. (Supposedly, your elevator is 2 blocks wide, so lever wouldn't be.
    [​IMG]
    Consider we're looking from the elevator side.
     
  23. Offline

    StrangeLob

    well for me, when i make the redstone output, it stays constant rather than switching on when the elevator arrives and off when the elevator leaves that floor
     
  24. Offline

    AnrDaemon

    Did you got a confirmation message with output creation?
     
  25. Offline

    Nuros

    Hello guys, this plugin is very great but i got some problems with them. my bukkit version was 544 and the plugin works very great. but since i uppdated it to 556 i can´t create buttons. i place the button on a block and writ the command but i don´t get any confirmation :/
     
  26. Offline

    StrangeLob

    I did, actually :confused:
     
  27. Offline

    Flipp

    Hi, thanks for this great Plugin,
    but i found some small bugs.
    1. When I make 2 call buttons on one floor (from two sides), both doors close, everything works. But if i call the elevator from the second button, he will come but no doors will open.
    2. (Not that important) If I make a button in the elevator on the lowest row, the elevator looses a bottom part while driving up.

    The 5x5 elev is a little bit laggy, but i think, you know that already.
    Would be great if there would be a command like "elev go up 20" If I make a shaft with worldedit etc. then i first have to run up, after created the first floor and make a call button there, so it would be easier if i could drive up from the beginning.

    Greets, Flipp
     
  28. Offline

    KrazyK9

    WHY CANT I USE THE ELEVATORS!?
    All it says is "WARNING: Elevators - command analyzation exception."
     
  29. Offline

    mrgreaper

    stand on the elevator and type //up 20 or /up 20 you will find yourself on a glass block 20 squares up (if using world edit)
     
  30. Offline

    KrazyK9

    is there a permissions or something?
     
  31. Offline

    mrgreaper

    also why not make the second call buton a go to floor button? not sure if it will fix the issue but worth a try
    so i the floor is called floor 1 have a goto floor 1 button (im thinking that does the same as hiting the call button)
     

Share This Page