[MECH] Lift 45 - Command/Config free elevators [1.7.2-R0.1]

Discussion in 'Archived: Plugin Releases' started by croxis, Nov 30, 2011.

  1. how about uploading som vids of the plugin in action? and how to set it up ingame would help me alot cuse then i know if it is what im searching for
  2. Offline


    Video now in op
  3. Offline


    Mod edit (NuclearW): Removed spam link
  4. Offline


    Version4: Vines are now ok in the lift. If Spout is installed it will use its player movement smoothing to prevent the jerking motion that is evident in the upwards motion.
  5. Offline


    Would a bare bones permissions system be a possibility?

    One simple node, 'lift2.create', is all I'm looking for. I would like to prohibit regular users from building/creating elevators, for various sundry reasons, and a simple permission node could accomplish that.
    In fact, the plugin could remain as simple as it is, requiring no configuration, if you make it so the permission defaults to :true for all users. However, by adding a permission node, you allow servers (like mine) the ability to negate the default-permission and prohibit certain groups from building lifts, while still keeping the plugin "configuration free."
  6. Offline


    To add permissions all you need to do is get a plugin that restricts block placement based on permission nodes, then block the placement of iron blocks, buttons, or signs.
  7. Offline


    I don't want to restrict my players from using signs or buttons - that's essential to Minecraft.
    As for IronBlocks, McMMO uses them and some players can amass enough to build small structures with, so I'd rather not do that either.

    I understand you do not want to add permissions, and respect that decision, but if your reason for not adding permissions is to keep the plugin simple and config free, then I think you should reconsider because you can accomplish both features without sacrificing the other.

    I do enjoy the plugin, but I hope you understand my situation and at least evaluate the potential benefits of adding permissions.
    Regardless, thank you for the time you've put it; it is appreciated.
  8. Offline


    Even if I wanted to it isn't possible. Permissions are yes/no answers to the question "Does the player have this.permission.node?" These permissions can then be tied to specific actions by the player. Moving is an action. A command is an action. Breaking or placing a block is an action. Those things are easy to apply a permission to. Building an elevator isn't a singular action, it is a collection of actions: placing iron, glass, signs, and buttons. In order to say no to building an elevator the code must say no to one or more of the actions it takes to build it.

    Using an elevator is a redstone action. This action is not associated with a player so there is no way for the code to ask "Does the player have lift.use?" because there is no player to ask that question. I could scan the list of entities being moved, check if it is a player, check if they have the permission, see if they have the permission, hold them in place as other passengers move, if they are the only passenger just end the lift, but all I would end up doing is recreating what other plugins/game mechanics can do better while just adding more overhead.
  9. Offline


    I'm only concerned with elevator creation permissions - not use.
    Concerning creation, since there are 4 essential parts for elevator creation, couldn't you scan for instances of players creating a sign/button/ironblock when the neighboring blocks have already been placed?
    For example, if a player has placed all but the top sign, since the layout is always the same, couldn't you check for the relative positions of each block/item and prohibit the placement of the final block/item if the said condition equates to "true?"
    I have never programmed a minecraft plugin, so this might not be possible, but from what I've seen I imagine that this is, indeed, possible. It might cause some additional memory to be used, but it should only check for the condition when a button/ironblock/sign is placed.

    I did not completely think about how this plugin worked, prior to posting, but I do see now that it would be a bit of a hassle to add permissions. I think a "use" permission would make the code and plugin, itself, much more cluttered, but creation, I think, is a bit more reasonable.
    I do understand where you are coming from now, as permission handling can't be explicitly done based on how the plugin is written (for simplicity, a good thing).

    Just some potential food for thought. Happy holidays ^_^
  10. Offline


    While possible it wont scale well to busy servers and I want to try and keep the plugin viable for them. This is mostly because Bukkit's block place event is naive so every plugin that process block placements have to process every block placement. That overhead starts becoming noticeable quickly on busy or underpowered servers and I want to do my part to not contribute to that. Perhaps if you explain why you don't want specific users building elevators I might be able to come up with something
  11. Offline



    I have difficulty with your plugin. While I used bLift I had no similar problem.

    If I make a lift from top to bottom:

    and that 2x2 (with only 1 sign/button per floor)

    Then I do get the problem that I cannot change the signs to the two other different floors.
    Instead, I get a deadlock from 2 to 3 and 3 to 2. Rightclicking does not work at all.
    I have recreated it many times of which one time it actually got fixed but I cannot see what I did differently that time.

    Perhaps the problem is that the glass of the next floor is right above the sign of the previous?
    I do notice that my bottom floor says destination 2 while I end up at 3.


    I made another Elevator and managed to get the signs working. Though.. with 3 floors.. (and having the glass of a floor right above the sign of the previous floor), when I select floor 2 while being on ground floor.. I do get elevated but it skips 2 and leaves me at 3.

    This also happends when changing the elevator so that theres one air block between signs and glass blocks.

    This lift, by the way, is 2x2
  12. Offline


    True, I guess I didn't consider the memory necessary to scan and evaluate each block placed in regards to neighboring blocks - I was thinking you could avoid scanning unless it met conditions, but I guess I overlooked the fact that you need to scan to determine that.
  13. Offline


    Hello Croxis,

    my Buddies and me have found some bugs in your Plugin, we would be pleased if you could fix them.

    1. If a player wents up or down together with a friend or an NPC and one of them disconnects, stucks, leave the Lift or dies, during the travel then his friend gets stuck in the lift when he comes up or down, untill the plugin isn't reloaded.

    Couldn´t you do, if these NPC´s or players are not back in the lift in a defined time (defined over the config or some thing) were ignored from the lift or get kicked from the lift.

    2. All NPC´s can went up with the lift but when they should went down, they fall into death.

    Could you fix that too?

    3. If a player is on the top floor and another player is on another floor below and wants to went up the player on the top floor, falls into death.

    Could you make that the player on the top floor stays on top?

    I´ve solved the problem with Antifly. I´ve allowed by Bukkit fly and i installed the plugin "NoCheat". Works fine.

    And thank that you give so much trouble with this plugin.

    Your plugin is really great.

    Greez: Cha0sPudd1ng
  14. Offline


    Busy with holiday still. Wont be able to get to this until after the first.
  15. Offline


    The proper title for the new RB system is [1.0.1.-R1]
  16. Offline


  17. Offline

    Nathan C

  18. Offline


    I did something similar in my plugin TeslaCoil to deny users from activating coils built if they lacked the permission to do so. There are many places you can check for elevator creation; using your existing code, within the normal places you would activate the elevator/floors based on actions, simply wrap all of that in a conditional block checking if the user has permission. What I did specifically for the activation of redstone is queue the person using a button, lever, redstone torch, etc. then scan a certain radius (15 blocks, due to normal current flows) for a player around the coil when any type of power was activated. If that player is also in the power queue, it's pretty safe to say they activated it, so check their permission.
  19. Offline


  20. Offline


    Hi, for whatever reason the various download links don't work.

    I am guessing many will figure this out, but for the sake of completeness go here:


    and download by clicking Life-4.jar

    Hope this helps.
  21. Offline


    Updated to Lift 5. Spout now really works (thanks to N4). All other bugs I have not yet been able to reproduce.
  22. Offline



    I put your Plugin in my server and goes very well. But I have a problem when between two floors the height is more than 10 blocks. When someone goes up, the game log out him with the message " Flying is not allowed". Do you know a way to make it going well?.

    Thank you very much.
  23. Offline


    Are you using version 5?
  24. Offline


  25. Offline


    Ok I'll review that part of the code. The only solution atm is set flying to true.
  26. Offline


    I have to change something in the code to allow flying?.

    I saw it and I dont see anything. You think I'll have to write something in config.yml?
  27. Offline


    set allowflying=True
  28. Offline


    ok Thx
  29. Offline


    @Walrog : was spout installed when you got the "kicked for flying" ?
  30. Offline


    When using the lift a stream of glass comes from the second level

Share This Page