Elevators v2
Elevators-v2
Because who said mineshafts were the only type of shaft in Minecraft?
Many buildings on servers need a quick way of getting from floor to floor. You can use a stairwell, but those are slow and lame! You can use teleport pads with Command Blocks, but that's just not as elegant-looking or cool as an elevator... Plus there's the issues with giving your builders access to Command Blocks.
I used to use the Lift plugin, but it never quite worked right, is no longer being updated, and has finally broken as of Bukkit/Spigot 1.10. I've tried all the alternative plugins out there for floor-to-floor transport, but finally... I decided to solve the problem myself! Introducing the Elevators plugin. Version 2 now given a complete rewrite in Java instead of ScriptCraftJS.
Find the plugin on BukkitDev, or see GitHub for the latest updates.
Summary
This plugin is simple and easy to use, and requires no configuration, similar to Lift, but unlike Lift, it provides a more realistic Elevator experience, with an actual elevator car, doors that open and close, and call buttons to call the elevator to your floor.
Plus, there's an API, which I taking advantage of in another plugin, LaunchPadMC. (It lets you control your server's elevators with a physical Novation Launchpad grid-controller!)
Reload Behavior
The only info the plugin stores is the X and Z location of each elevator, under it's unique eID. All signs, floor size and current level, and other data is recalculated on plugin reload. Invalid elevators are automatically deleted from the config, and elevators not in the config do not work (which prevents those without the permission node from creating elevators).
Commands
/elev list
List all known elevators./elev reload
Reload elevators from config./elev reset
Rest the last-used elevator to a known-good state.
Permissions
- elevators.use Change levels, operate elevators. Default: All Players.
- elevators.create Create and destroy elevators and call signs.
- elevators.reload Reload plugin (use
/elev
), receive debug info.
How To Use
Place signs with [elevator]
on line 1 on each floor. The sign will error (showing [???]) if the floor is too big, too close to another floor, or an invalid type. (Note: You can change floor types and associated speeds in the config.)
Use line 4 to add a custom floor name. If not specified, the default is in the format Level [n]
. If the floor name matches this format, numbering will be automatically updated whenever the elevator is modified, but custom names will be left untouched.
If you put [nodoor]
on line 3, the block-based door feature will be disabled. Nearby doors and gates will be opened/closed and call signs will activate redstone either way.
Right-click on any elevator sign to select the destination floor (if holding SHIFT/sneaking, it goes in reverse order), then simply right click the air or any other block while standing inside the elevator to travel.
Call Signs
Create 'call buttons' to call your elevator by placing a sign with [call]
on line 1 around the perimeter of the elevator. They must be within 1 to 3 blocks of the elevator shaft, and can be placed up to 1 block above or 3 blocks below the a floor.
This is useful for placing hidden call signs that activate redstone. Any Redstone Lever next to a call sign will be activated when the doors open, allowing use of piston doors and more!
User-made Tutorial:
https://www.youtube.com/watch?v=9nzRgzJEpJ0
My Other Stuff
MultiWorldPets (Take your pets with you everywhere!)
RawColors Resource Pack (Low-Contrast Colors for easy-on-the-eyes play)
ForestFire Server (Check out our MC server, we have custom plugins!)
TabPlus Extension for Chrome (Save the headache and manage your tabs)
Just make a square of blocks of a valid type (ex. Iron Block), then place the [elevator] sign 2 blocks above them (one block of air in-between). Then place additional [elevator] signs above or below the first to add floors.
Right-click a sign to change the selected floor, right-click anywhere else to go to the floor (or re-open the doors).
AS for the "error" with debug enabled, that was added in early testing as part of a way to test performance. It's kinda misleading though. No exception is being thrown, it's just commenting that the player isn't in an elevator, or no elevators are in the world.
Most plugins need to iterate through large lists in their event listeners, there's no way to avoid it, but there are some things one can to to minimize lag, like avoid excessive use of interfaces/lambdas, forEach, and Iterators, cache freqently used data or use a chunking system like the game itself does, avoid iteration though the same array twice, check less common (but easy to check) conditions before more common ones in if statements, use careful synchronization if you have multiple threads, allocate space in new arrays before use, etc. I also made a custom list class that's faster and less exception-prone than the built-in ones, so that helps as well.
Then again, the "lag" we're talking here, even on a huge server with tons of plugins, is frequently in the sub-millisecond range. Mindless, repetitive iteration is kind of what computers are best at.
Long story short: can't get it to work. What are the rules for placing signs and building elevators? :)
The description kinda left me guessing and I don't want to read through the whole source. ^^
Btw I get an "Error in fromPlayer" every rightclick. (With debug mode on ofc)
That means that it cycles through all existing elevators everytime someone rightclicks, for example to place a block. Needless to say that that might cause performance issues :o
does not work in 1.11.2
Well it's the holiday season, so I've updated the Elevators plugin. Because reasons.
Anyway, hopefully this update should solve the issues people have been having!
Here's the changelog:
Oh, I'll also finally upload that mysterious plugin I mentioned in the Summary.
This plugin does not seem to work for me. Here is a video of me using it https://www.youtube.com/watch?v=ehc0aHI2jLA
I am using spigot 1.10.2 and it works great. Thank you, I should make a video to explain better because I had to figure it out myself what I'm doing wrong. Thank you! You are the only one that made a workable 1.10 elevator and we are thankful.
How the heck do you make it so it does not error every single time i use it?
doesnt work 1.10.2
Don't know what @Pecaheu is talk about but Lift works fine on 1.10.2
@TimDaMiner
Unfortunately, there isn't really a good way to smoothly move the player. The only way to adjust the Y of the player is entity.teleport, which will affect the X/Y/Z and pitch/yaw no matter what. Not specifying pitch and yaw just resets the pitch and yaw to 0, so I use loc = entity.getLocation(); entity.teleport(loc.getX(), height, loc.getZ(), loc.getYaw(), loc.getPitch()), but that doesn't really allow the player to look around. It's seems to be some sort of bug with Bukkit itself.
There is one other way, entity.setVelocity(), which basically pushes the player up and down (like as if they jumped) without affecting pitch and roll, but it's rather unreliable. For example, if your client lags, you could easily get stuck it a wall, or get thrown into space, but I'll at least try it though. Maybe I can fall back to teleportation to the center of the elevator if you do happen to fly off.
@Pecacheu
I tried what you said but nothing happens. When I select level 1 (which I am on) and right click the block around and the air the doors don't open. And when I change it to level 2 it doesn't go up. Unless I spam the right click for a few hundred times and get lucky it works.
EDIT: Never mind, it seems that I have to go against the corner of the door and right click it for it to work. Well then I have a bug/request. If I have to be against the door to make it go up or down, it would mean I have to be quick to jump back on since it starts going up as I right click it. So can you either make it where you can stand on the car/block and right click instead of having to push up against the corner to right click?
EDIT 2: Last thing is it possible that you make it so we can look around while the elevator is going up and down? It's smooth if you don't look around (move your mouse) while it's moving but I was planning to make it as a sight seeing thing. And if it keeps jittering and putting my view back in the center it's not really good for sight seeing.
@TimDaMiner
You can go to the selected floor by right-clicking a block or air (with nothing in your hand) while standing in the elevator. Clicking when on the selected floor already just re-opens the doors.
@IsaiahPatton
It does but this is the first one that is for 1.10 the rest is 1.9 and under.
this allredy exists!!
I'm glad to see this plugin coming back, definitely since I'm starting a new spigot server on 1.10. Anyways I can't seem to get the elevator to go up. It shows I selected the second floor and everything but there's no button to go up. And when I do somehow manage to get it to go up it was because of random right clicking the glass that forms around the elevator. I also tried buttons and levers and nothing worked. So can you please make it more clear of how to make the elevator go up. Thank you!