Lift
This plugin is no longer maintained
You can instead take a look at LiftReloaded: https://www.spigotmc.org/resources/liftreloaded.97551
Description
A simple elevator plugin.
Primary features:
- Command free
- No configuration needed (but there if you want it!)
- Database free (Lifts are determined by block arrangements, nothing more)
- Multi floor elevators
- Multi passenger elevators, including mobs and dropped items
- Abstract elevator shaft shapes
- Redstone triggers
- Carpets can now be placed in any elevator floor. No more unsightly glass!
- All rails can now be put in shafts. Minecarts will now go up and down lifts and resume their previous speed upon arrival (this is largely untested, more feedback here is needed!)
Video note: the sign below the button is no longer needed! See the build instructions below for the new method.
More video tutorials - English, Deutsch, Português
How it works
No commands! No save file to worry about! It is easy to add, remove, or change floors. Just place or remove blocks! Lifts are made by scanning block arrangements are not saved or stored in memory after they are used. With the default configuration this is a fast process, less than 20 milliseconds.
Installation
Just drop the plugin in the plugin folder and play! No permissions to set up and the configuration is set up with defaults that will work for most servers. If you use a permission manager you might have to add add the permission "lift" and "lift.change" This is a bug in some managers
Here is the default configuration if you wish to play with the settings or language:
# Note: Smaller values result in less lag. Lift speed less than 0.4 may not work well for non spout servers. maxLiftArea: 16
maxHeight: 256
debug: true
autoPlace: false
preventEntry: false
preventLeave: true
checkFloor: false
liftMobs: true
floorBlocks:
- GLASS
- '*_STAINED_GLASS'
redstone: false
STRING_oneFloor: There is only one floor.
STRING_currentFloor: Current Floor
STRING_dest: §1Dest
STRING_cantEnter: Can't enter elevator in use
STRING_cantLeave: Can't leave elevator in use
baseBlockSpeeds:
IRON_BLOCK: 0.5
- maxLiftArea is the number of connected blocks the lift can be. Larger values will result in a longer start up time when using a lift. Super large values can even freeze your server for a moment.
- maxHeight limits how tall an elevator can be.
- debug prints out extra information that can help me track down errors
- autoPlace will automatically position entities over the center of the base blocks which can prevent them from hitting edges and getting stuck
- preventEntry blocks players from entering moving lift.
- preventLeave blocks players from leaving a moving lift.
- checkFloor prevents glass duping. With it false the plugin will NOT check to make sure all the floors have all the glass blocks filled it, but will have better performance for busy servers.
- redstone can start a lift by using a redstone signal to the block behind the lift button. This can result in some lag on servers with a lot of pulsing redstone signals.
- floorBlocks is a list of valid blocks for the flooring of floors. * is a wildcard. For example, '*_STAINED_GLASS' allows all blocks with '_STAINED_GLASS' as the block name.
- baseBlockSpeeds is a list of blocks you wish to use in the elevator base and how fast they make the lift. Multiple block types can be added. For example:
baseBlockSpeeds: IRON_BLOCK: 0.5 GOLD_BLOCK: 0.75 DIAMOND_BLOCK: 1.0
This example has three different blocks that can be used as a base, with faster lifts being more expensive. Make sure there are two spaces for proper yaml formatting!
Permission
There are two permission nodes. By default both are set to true allowing anyone to use lifts right away:
- "lift" allow players be passengers and use lifts. To not let players use the lift, set lift to false in your permission plugin of choice.
- "lift.change" allow players to change destination floors of any lift. To not allow players to change the floor signs, set lift.change to false in your permission plugin of choice.
I will not be adding permissions to individual lifts. It is not possible with how the code works.
Usage With Default Config
1) Create the bottom floor with iron blocks. An elevator can be as small as 1 block or as big as 15 blocks in any shape. Smaller areas will have less lag. Make sure the lift iron blocks don't touch any other iron in the building the plugin doesn't know the difference!
2) Next create the floor's control panel. On a wall place the following blocks. The signs and buttons must be "over" one of the iron base blocks.
- Required sign, leave blank or put the name of the floor on the first line.
- Button
- Air
- Iron floor block you just placed.
3) Create the elevator shaft. To create a new floor platform use glass blocks instead of iron. Like the first floor over one of the glass blocks create the floor interface.
- Required sign, leave blank or put the name of the floor on the first line.
- Button
- Air
- Glass floor
4) Make sure the shaft is clear of all obstructions except for floor glass, buttons and signs. Torches and vines are also allowed in the elevator shaft.
5) To use your elevator right click the sign above the button to select a destination floor. The sign will automatically add the correct information.
Important Notes
If you find a bug or a feature not working as advertised please report to the ticket page. Bug reports in the comments will (probably) be ignored.
There is a config to adjust max lift area, lift height, lift speed, and a few other options. The defaults are sane and most people wont need to change them.
FAQ
Q: Will you add build permissions?
A: No. Permissions are attached to players. An elevator is created by scanning a chunk for specific blocks in specific places. There is no easy way to stop a player from finishing an elevator without doing expensive, lag-causing calculations. To prevent a player from building an elevator you must prevent them from placing one of the elevator block types (iron block, sign, glass, or button). There are other plugins with this functionality.
Q: What are valid blocks to use inside the shaft?
A: Other than the glass blocks for the lift floors you play places torches, signs (ideal for sensors), buttons, vines, ladders, carpets, redstone, rails, and water.
Q: Will you add economy?
A: No. There are too many variations on how to do this and I want to keep the plugin focused and simple. There are other plugins you can use to add economy. One example is charging for button pressing:
Troubleshooting
For Lift versions < 50
You are getting errors with block X473 like:
1:34:32 [INFO] [Lift] [DEBUG] Starting elevator gen caused by: MXPLRS_Kirill v42 21:34:32 [INFO] ==Unknown Error== 21:34:32 [INFO] Yscan: 64 21:34:32 [INFO] Block: X473 21:34:32 [INFO] Is Valid Block: false 21:34:32 [INFO] Is Base Block: false 21:34:32 [INFO] [Lift] Player elevator generation returned a null object. Please report circumstances that generated this error.
The issue you are having is exceptionally likely to be due to Railcraft's tracking block (visible with the goggles as the tracking aura), you can disable it by setting block.hidden to 0 in Railcraft's config. The default ID of this block is 473.
hey
i made a tutorial of this plugin, i am dutch so i did a dutch tutorial, you have no dutch one yet, so can you put the link of my video in the desc. that woulld really be great link:http://www.youtube.com/watch?v=_-XzCVk7fsk
Hi, would it be possible that you would make it so that players could name the floor?
Thanks for answer
@croxis
well, valid point indeed, its not a giant problem, since there isnt anyone who is building lifts and not interacting the sign directly after. but i can see the dilemma.
@Juhishh
If a wood or stone button is placed on the block behind the top sign of a floor it will output a redstone signal.
@stealth62
Wont work. I, with the permissions, can build a lift. A player without permissions can click on the sign and get the iron blocks.
I was looking at your code, there is a really simple way to add permissions (if you so choose, im not suggesting, just mentioning). It appears the interact right click of the sign checks for proper setup. you could check if the user has a permission before it processes the check, and if it fails have the code remove the two iron blocks, and place them back into the users inventory. just a thought, hope it helps
Hello. Is it possible to add redstone output? I'd like to have redstone powered doors. I think you can like make glass blocks output redstone signal when player has arrived to selected floor?
I was having the same problem as well. I was trying to add it into a house I had built.
I did notice after an hour or so of trying to make it work though that if iron blocks are surrounding the elevator floor it would break the elevator and it wouldn't work. EX: http://prntscr.com/1px8lt and http://prntscr.com/1px97t
& when I did this it worked fine http://prntscr.com/1px9j6
So basically my problem was that I was trying to put an iron block under the iron blocks that the sign was on an next to the iron block floor and it would cause the elevator to break. So another block needs to surround your elevator floor (the iron block) I guess you can say.
Not sure if that is the people belows problem, but it was mine. & I figured it might be those who also said it didn't work so try that.
Also, it would be nice if there could be like a -1 floor for the basement and stuff. It's not really a bother having the elevator have to say floor 1 in the basement because I just added signs below it but ya know. just an idea.
@Izbenn
But it is a forge block that, for whatever reason, is not being rendered or is being rendered as a vanilla block. Or forge/mcpc/whatever is reporting a vanilla block as a forge block.
Look at your config files to see what x473 is being mapped as.
I don't know how copying your world and loading it in craftbukkit will work, but if there is a way of loading it where forgeblocks are turned to stone (or some other easy to see block) that might work as well.
You can also use the /lift command in game which might help pinpoint the spot. There are some bugs in the debug output which might mean I have to push out v42, even though it doesn't add or fix any other gameplay bugs.
I too cannot get it to work. I downloaded Lift 41 this afternoon like I have dozens of times before. I built the elevator like I have dozens of times before. Yet nothing. The signs do not react when being right clicked.
There is nothing in the way, I built a test elevator out in the middle of the desert. Nothing but open sky above me, yet it refuses to function. I am not sure what is going on, debugging has not given me an error yet either ... <sigh> If I can get some sort of error I will come back with another post for it.
Scratch that ... I got the x473 error ... before anyone says it is a forge block ... the elevator consists only of iron blocks for the bottom, glass blacks for the various floors (two floors) and sandstone for the wall. Naturally it has a sign and a button. Nothing there is a forge block ...
@dididan2000
It looks like you have some leaves in the way. Recheck that the entire lift shaft is clear. Also make sure you are using the latest version of lift.
@croxis
Here is the link for the pastebin.com debug mode server log. http://pastebin.com/Q3bqqmTe
Looks like the 4th floor isn't being generated properly. Double check that there is nothing in the way between 3 and 4.
@croxis
2013-08-27 11:42:05 [INFO] [Lift] Critical Error. Startfloor||DestFloor is null. Please report entire stacktrace plus the following error codes. 2013-08-27 11:42:05 [INFO] [Lift] Sign destination: 4 2013-08-27 11:42:05 [INFO] [Lift] Floormap: {49=net.croxis.plugins.lift.Floor@20255c1c, 57=net.croxis.plugins.lift.Floor@74c242c0, 66=net.croxis.plugins.lift.Floor@7dac8722} 2013-08-27 11:42:05 [INFO] [Lift] Floormap2: {1=net.croxis.plugins.lift.Floor@20255c1c, 2=net.croxis.plugins.lift.Floor@74c242c0, 3=net.croxis.plugins.lift.Floor@7dac8722} 2013-08-27 11:42:05 [INFO] [Lift] Start y: 49
@lanceryy
Version 41 just submitted that should fix this
@dididan2000
Set debug to true in the config file. Copy the relevant parts of the server.log file to pastebin.com and post the link here.
HELP:
Hey, I have a server and I am trying to make a lift. I am doing everything right, but the lift doesn't work. When I right click on the signs, they don't work. I tried reinstalling CraftBukkit and this plugin, but it didn't work. I see the plugin is enabled in the console and when I do /plugins it says Lift is one of the plugins that are installed on my server. I don't know what is wrong. Also, when are you updating this plugin to 1.6.2? This is an awesome plugin and one of my favorite plugins ever!
Lift 40 build
013-08-23 10:37:45 [INFO] [Lift] Critical Error. Startfloor is null. Please set debug to true in config and report bug. 2013-08-23 10:37:45 [INFO] [Lift] Floormap: {57=net.croxis.plugins.lift.Floor@6224c1, 65=net.croxis.plugins.lift.Floor@2b5afb19, 69=net.croxis.plugins.lift.Floor@621b3c8b} 2013-08-23 10:37:45 [INFO] [Lift] Floormap2: {1=net.croxis.plugins.lift.Floor@6224c1, 2=net.croxis.plugins.lift.Floor@2b5afb19, 3=net.croxis.plugins.lift.Floor@621b3c8b} 2013-08-23 10:37:45 [SEVERE] Could not pass event BlockRedstoneEvent to Lift v39 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463) at net.minecraft.server.v1_6_R2.BlockButtonAbstract.interact(BlockButtonAbstract.java:153) at net.minecraft.server.v1_6_R2.PlayerInteractManager.interact(PlayerInteractManager.java:383) at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:628) at net.minecraft.server.v1_6_R2.Packet15Place.handle(SourceFile:58) at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:230) at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116) at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37) at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:125) at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:592) at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239) at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) Caused by: java.lang.NullPointerException 2013-08-23 10:37:47 [INFO] [Lift] Critical Error. Startfloor is null. Please set debug to true in config and report bug. 2013-08-23 10:37:47 [INFO] [Lift] Floormap: {57=net.croxis.plugins.lift.Floor@11504c34, 65=net.croxis.plugins.lift.Floor@2ebaf2cd, 69=net.croxis.plugins.lift.Floor@739a88b2} 2013-08-23 10:37:47 [INFO] [Lift] Floormap2: {1=net.croxis.plugins.lift.Floor@11504c34, 2=net.croxis.plugins.lift.Floor@2ebaf2cd, 3=net.croxis.plugins.lift.Floor@739a88b2} 2013-08-23 10:37:47 [SEVERE] Could not pass event BlockRedstoneEvent to Lift v39 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463) at net.minecraft.server.v1_6_R2.BlockButtonAbstract.interact(BlockButtonAbstract.java:153) at net.minecraft.server.v1_6_R2.PlayerInteractManager.interact(PlayerInteractManager.java:383) at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:628) at net.minecraft.server.v1_6_R2.Packet15Place.handle(SourceFile:58) at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:230) at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116) at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37) at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:125) at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:592) at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239) at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) Caused by: java.lang.NullPointerException 2013-08-23 10:37:49 [INFO] [Lift] Critical Error. Startfloor is null. Please set debug to true in config and report bug. 2013-08-23 10:37:49 [INFO] [Lift] Floormap: {57=net.croxis.plugins.lift.Floor@2e9eaf7e, 65=net.croxis.plugins.lift.Floor@3413911b, 69=net.croxis.plugins.lift.Floor@709b9e52} 2013-08-23 10:37:49 [INFO] [Lift] Floormap2: {1=net.croxis.plugins.lift.Floor@2e9eaf7e, 2=net.croxis.plugins.lift.Floor@3413911b, 3=net.croxis.plugins.lift.Floor@709b9e52} 2013-08-23 10:37:49 [SEVERE] Could not pass event BlockRedstoneEvent to Lift v39 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463) at net.minecraft.server.v1_6_R2.BlockButtonAbstract.interact(BlockButtonAbstract.java:153) at net.minecraft.server.v1_6_R2.PlayerInteractManager.interact(PlayerInteractManager.java:383) at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:628) at net.minecraft.server.v1_6_R2.Packet15Place.handle(SourceFile:58) at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:230) at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116) at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37) at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:125) at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:592) at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239) at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) Caused by: java.lang.NullPointerException 2013-08-23 10:37:51 [INFO] TNTcarrot issued server command: /sethome home3 2013-08-23 10:37:52 [INFO] [Lift] Critical Error. Startfloor is null. Please set debug to true in config and report bug. 2013-08-23 10:37:52 [INFO] [Lift] Floormap: {57=net.croxis.plugins.lift.Floor@3c0e8626, 65=net.croxis.plugins.lift.Floor@5d894797, 69=net.croxis.plugins.lift.Floor@5fbb3a7a} 2013-08-23 10:37:52 [INFO] [Lift] Floormap2: {1=net.croxis.plugins.lift.Floor@3c0e8626, 2=net.croxis.plugins.lift.Floor@5d894797, 3=net.croxis.plugins.lift.Floor@5fbb3a7a} 2013-08-23 10:37:52 [SEVERE] Could not pass event BlockRedstoneEvent to Lift v39 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463) at net.minecraft.server.v1_6_R2.BlockButtonAbstract.interact(BlockButtonAbstract.java:153) at net.minecraft.server.v1_6_R2.PlayerInteractManager.interact(PlayerInteractManager.java:383) at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:628) at net.minecraft.server.v1_6_R2.Packet15Place.handle(SourceFile:58) at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:230) at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116) at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37) at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:125) at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:592) at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239) at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) Caused by: java.lang.NullPointerException
@turtledude01
Can you pastebin your full lift config, as well as post lift and bukkit versions (and build number if you are using a dev build)
Just found an issue with the checkFloor option. When I have it set to true, I put the glass in on the second floor of an elevator, and I get an issue, it keeps saying theres only one floor. I remove the glass, and it flings me up, allowing me to use the elevator, but I fall back to the bottom floor because theres no glass. I disabled the Checkfloor and it works just fine.
@Sckaletz
Any issues concerning whether a permission is true, false, or OP by default is the admin's responsibility. Permission plugins exist for this reason.
Plus, having that permission on by default is completely intuitive. Ever went to an elevator in real life and pressed a button, only to find out you couldn't go to that floor because you "didn't have permission"?
@Sckaletz
What about us OP's that want to let players make their own elevators? You can always add a negative permission to take that away from them. Why make everyone else have to add the permissions to let them use it? :P