Inactive [EDIT/FUN] SecretPassage v1.6 - Create Structures That Can Disappear [1.2.5-R4.0]

Discussion in 'Inactive/Unsupported Plugins' started by Professor29, Aug 12, 2011.

  1. Offline

    Professor29

    Secret Passage
    Current Version: v1.6
    Old versions available on request - Shoot me a message

    NOTICE: I finally stopped stalling and made a BukkitDev page for this project. All future updates will be posted there, and I check for messages / posts frequently... Hope to see you over there!

    Link -> http://dev.bukkit.org/server-mods/secretpassage/

    Have you ever wanted to create a wall that could disappear at a touch? Or a massive pit to trap your "friends" in? Are pistons just not enough to make the secret door of your dreams? Look no further!



    Credit:
    I did not come up with the original idea of this plugin. During the days of hMod and Alpha, I played on a server called "Kingdom of Strongholds", run by Rockslide. A few weeks before the server was shut down, a plugin similar to this one was added, and it was a blast to use. Sadly, I haven't been able to find anything like this for hMod or Bukkit, so I opted to write my own version from scratch...
    Also, I would like to thank @nisovin for helping me solve an inventory issue.

    How to Install:
    Download the .jar file from the link above (next to "Version:") and place it in your plugins folder. Start the server as normal. Then, stop the server and modify the config.yml file in plugins/SecretPassage/ to your liking. Finally, restart the server.

    How to Use:
    1) Start by building the shape of the structure out of any of the "active materials" you chose in the config. If you didn't change the config, use either Netherrack or Sponge. (I made this for a server with no nether, so netherrack isn't common...)

    2) Type in the command below to create a passage. It's worth noting that you can change the "create" part of the command in the config file, so it may be different based on what you entered.

    3) Hold the block that you want to replace the active material with, and punch it. If the material is allowed (also in config), the active material will absorb the item you're holding, and change to look like it. Repeat this until you have the structure built - you can safely place more active material if you need to, the plugin will only respond if the active material is punched while holding another item. By default, any solid block unaffected by gravity (aside from netherrack and sponge) can be used to decorate a passage.

    3b) If you punch (and activate) the wrong block, you can break it to remove it from the structure. Doing so will not return the active material used, so that will need to be placed again.

    4) Place another active block somewhere that you'll remember, then hold one of the items you chose for creating switches (in config) and punch it. The block will absorb the item and change into another material (chosen in config) to show that it is now a switch block. By default, you use a stone button to make switches, which turn into wooden planks for confirmation.

    5) If desired, break the switch block and replace with another block of your choosing. It must be selectable with a right-click to work (so no water, lava or air).

    6) Right-click the switch to test if the gate is working. If so, all the blocks you placed in step 3 will turn into air. Right-click the switch again to bring the structure back.

    7) Type the command /spass to end the passage construction process. You can always come back and modify it by using the create command again.

    New and Improved Video Version by LiekMudkipzz

    Old Tutorial (open)


    Command List:
    • /spass [Alias: /sp, /secretpassage] The main command for the plugin. Also ends the passage building process.
    • /spass create* (PassageName) - Starts building on the named passage, creating it if necessary.
    • /spass destroy* (PassageName) - Destroys a passage you own (blocks are not removed). You can give a permissions node to let people destroy any passage on the server.
    • /spass destroy* switch - Sets you up so that a switch bound to the next block you right-click on is destroyed.
    • /spass list* - Lists all the passages that you own, in order of creation.
    • /spass list* (PlayerName) - Permissions-based command that lists passages owned by the named player.
    • /spass toggle* (PassageName) - Permissions-based command to toggle a named passage, provided you are in the same world.
    • /spass reset* - Permissions-based command that resets all passages based on redstone power to switches.
    • /spass timer (ticks) - Adds a reset timer to auto-close the passage after a set delay (specifically built to prevent making it accidentally auto-open...)
    • /spass timer 0 - Removes the timer of the passage you are working on.
    • /spass info (Passage Name) - Provides information on the listed passage. If you do not give a passage name, it provides information on the passage you are working on (if any).
    • /spass help - Lists all basic commands you have access to, as well as the proper structure for typing them.
    • /spass access - Lists the commands for working with white or black lists for passages.
    • /spass access allow (Name) (Name) (Name) (Name) - Adds the names included to the whitelist of your current passage, and sets the passage to use a whitelist.**
    • /spass access deny (Name) (Name) (Name) (Name) - Adds the names included to the blacklist of your current passage, and sets the passage to use a blacklist.**
    • /spass access remove (Name) (Name) (Name) (Name) - Removes the name from the whitelist/blacklist of your current passage.**
    • /spass access clear - Removes the access restrictions on your passage, allowing anyone to use it.
    * - Create, Destroy, Toggle, List, and Reset can all be replaced in the config.yml file, to allow for ease of use.
    ** - At the moment, you must use the full name, and the player must have logged in at least once. I am working on a name-finder to allow partial names for any online players, but that is not included yet. Also, ops and anyone with the antilockout permission will be able to bypass any access restrictions, and you cannot modify the passage owner's access.

    Features:
    • Create structures that can disappear.
    • Includes option to prevent blocks in passages from being broken (to stop easy duplication)
    • Includes options to consume resources when decorating passages, as well as the ability to choose what can be used in their creation.
    • Choose your own commands to replace create, destroy, toggle, and list.
    • Includes option so that only the owner of a passage (or an op) can modify it, while anyone can use the switches made by them to toggle the passage.
    • More than one switch can be assigned to a passage, but only one passage can be assigned to a switch.
    • Passages do not have to be continuous, but cannot have blocks on multiple worlds. You could build a disappearing village if you felt so inclined.
    • SuperPerms support (as of v1.0)
    • Preliminary Redstone support (as of v1.2)
    • Ability to have passages close themselves after a set delay (as of v1.4)
    • Provide access on a passage-by-passage basis (as of v1.6)
    • If passage protection is active, pistons will break when trying to push a passage block, and cannot pull out a passage block if sticky (as of v1.6)
    Permissions Nodes:
    • secretpassage.* - Provides all nodes other than lockout and deny (Default: Op)
    • secretpassage.create.other - Allows user to bypass the owner-only protection option if it is enabled
    • secretpassage.destroy.other - Allows user to destroy any passage on server, regardless of owner
    • secretpassage.list.other - Allows user to check passages owned by other players
    • secretpassage.toggle - Provides access to the toggle command
    • secretpassage.reset - Provides access to the reset command.
    • secretpassage.lockout - Prevents user from using any portion of the plugin
    • secretpassage.antilockout - Prevents admin using all-nodes plugins from accidentally barring themselves from using plugin
    A Note on SuperPerms (open)
    I know I stated that I wouldn't add support for any plugins to this, and I stand by that statement. SuperPerms are integrated into Bukkit itself, meaning that I don't have to worry about waiting for it to update to keep my plugin compatible with recommended Bukkit builds.

    You can use this plugin without using SuperPerms (I personally do, strange as that may sound...), as the extra features will default to Op, and everyone by default can create and destroy their own passages. However, it's worth noting that the .lockout node is checked for first, and will restrict access no matter who the person is, or what other nodes they have. This means that the server owner can actually lock other Ops out from their private area, and the plugin won't question it.

    To-Do List:
    • PRIORITY: Add ability to restrict access on a per-passage level. - in v1.6
    • Add saving of block data (for colored wool, logs, torch placement, etc) - in v0.9
    • Refine saving of block data for block orientation.
    • Allow Ops to toggle passages from any world.
    • Add timer options to passages. in v1.4
    • Add option to enable/disable based on redstone current hitting a switch.
    • Improve redstone support.
    • Add option to activate switches on left click.
    • Figure out how to make system accept things like doors and beds during placement (I feel a massive IF structure coming on...)
    Changelog:
    • v1.6 - Pistons will naturally break when they attempt to push a block out of a passage. Sticky pistons cannot pull blocks out of passages. Added the allow/deny options for passages.
    • v1.5a - The .deny permission has been a pain for several versions now, and has been removed. Working on a command-based replacement.
    Old version changelog (open)

    • v1.5 - Cleaned up code for new syntax, as well as (hopefully) squashing the SuperPerms bug (again). Also killed the unintended bug of being able to stack timed reactivations of a passage.
    • v1.4 - Fixed logic bug in SuperPerms support, added timers and building in creative mode.
    • v1.3a - Hopeful fix for accidentally breaking protection plugins.
    • v1.3 - Tried to make redstone more multi-world friendly, added redstone options to config file, provided variable to allow automatic updating of config if needed later.
    • v1.2a - Added code to Redstone enabling process for stability.
    • v1.2 - Preliminary redstone support.
    • v1.1b - Fixed faulty logic from trying to code at 1am.
    • v1.1a - Quick fix to counter accidentally gaining the deny permission
    • v1.1 - Fixed support for new blocks, as well as removing blocks from passages.
    • v1.0 - Added SuperPerms support, putting this at a comfortable "proper release" point.
    • v0.9.1 - Bugfix for NPE in passage construction.
    • v0.9 - Added storage of block data, with legacy support for older passages.
    • v0.8 - Stable release with source included.
    • v0.1-v0.7 - Unstable versions as I destroyed bugs and added features.

    A Note on Other Plugin Support (open)
    While a lot of other plugins are great matches with this plugin (iConomy, etc), I will not be personally adding support for these options. However, the source code is included in the .jar file, so that anyone who wants to make changes can take a crack at it. Sadly, I'm not the greatest at uniform code structure or commenting, so the only assistance you'll find in there is a small comment at the top of each function to describe it.

    If you add a feature that you believe should be shared (such as permissions support), I have a request: add an option to the config.yml file to disable it. If you're willing to do that, then post it here and tag me in the post, that way I can take a look at it. I'll test it and add it as a proper version, making sure to include your name in the credits section.
     
    Xilador and jesse1212 like this.
  2. Offline

    lordkalem

    errm mk wheres the new video. that old ones kinda... yeah
     
  3. Offline

    Lildirt

    Sorry to spoil this, but you CAN get lockette/LWC and lock it for "g:VIP", that locks it for the group named VIP.

    EDIT: To do it on Lockette, put on the third line of the sign the group name in brackets. Ex. [VIP]

    To do it on LWC, just "/cprivate g:VIP"
     
  4. Offline

    Professor29

    Hmm. Are you talking about a normal door, or linking it to one of the switches of the plugin? My guess is the former...

    @lordkalem It's under the text steps... was originally hidden behind a spoiler, but that has been remedied.
     
  5. Offline

    Lildirt


    I was referring to t2wave, on helping him how to lock his door for groups. I meant it as a NORMAL door, however Lockette can make you use iron doors JUST like a wooden door, as long as you own it.

    Not to down your plugin, it seems kinda neat, but nothing *I* could find a use for..
    (He wanted to make a locked door for his VIP room, I think.)
     
  6. Offline

    Professor29

    @gsgrego Sorry about that taking so long. 1.3 is up, and by default will skip checking redstone power at startup.

    However, I don't have a way of checking what version the config file is with it's current setup, so I had to do some changes to it. I need you guys to delete your current config and have a new one generated (or move it to another folder so you can cut/paste your current options back in), that way it's set up for the new format (not much changed - 3 redstone-based options, and a version variable below the title that needs to remain untouched...)
     
  7. Offline

    XPLMediaHD

    Submitted To Multiplay Game Server Host.
     
  8. Offline

    Professor29

    Not sure what this means... If it means you're trying the plugin out, I'm honored - please tell me how it goes.

    If it means I'm being reported for breaking a rule, please let me know... would prefer total compliance...

    EDIT: On an unrelated note, I have found that I can add to the onBlockBreak hook I have for passage protection in order to allow passage building in creative. Going to require some hammering to get it working, but I'll make sure that there's an option in the config to enable it when it's ready.
     
  9. Offline

    sean_skroht

    Howdy Professor29,

    You're plugin partially breaks the -build command for Residence Plugin. Players on my server complained that other users were able to destroy blocks on their Residence protected areas, which I confirmed
    Please note: Players are still unable to place blocks in other peoples Residence protected areas, so that part of the -build protection isn't affected by your plugin, just the break part.

    So bit by bit I had to try and track down the problem and it ended up being your plugin at fault. If I remove it all is good, if I put it back it breaks Residence. It's a shame really, otherwise your plugin was pretty cool.
     
  10. Offline

    XPLMediaHD

    It means i have submitted it to my server host because they install them to the control panel for people to easily install. So i have submitted it for them to put on the list
     
  11. Offline

    Professor29

    Thanks for the heads up. I added checks into the onBlockBreak listener in the plugin so that it stops listening if the event is cancelled already. Assuming Residences listens where it's supposed to (on lowest), it will react before my plugin does, and this should fix the issue. If I could have you download 1.3a and test it for me, I would appreciate it.

    Ah, that makes sense now. I'm glad you like the plugin, and please let me know how it works for you ^_^
     
  12. Offline

    Schuetrumpf2

    Small bug...I was jacking around with Spass just to see what it could do. So i decided to see if it was possible to use a torch as a removable block. I added 50 to the id list in the settings list and tried it. Worked perfectly. Only drawback is when the switch is pressed and it disappears, it removes the torch as if the block behind it had been removed, meaning it left the torch resource on the ground available for pickup. Makes for very easy item duplication. When the torch is used on a block touching the ground, this does not happen. I also tried stuff like rails and they work just fine... Great plugin. I would +rep, but there is no button for it. :)
     
  13. Offline

    Professor29

    I know about the torch problem, but I'm still trying to work out the kinks to be able to fix it. Only solution I have come up with is to change how I deal with decorations entirely... I currently swap the block you punch to match the block in your hand, which works for a lot of things, but doesn't save how objects are oriented (like torches). Also, I remove the blocks in the order that they are loaded, which means that if the torches are placed after the wall (likely, as it makes decorating easier), the wall is removed before the torch... I'll have some free time to tinker on Thursday/Friday, and I'll see if I can add an option to sort the passage so that torches are bumped to the top of the list... no guarantees though, but I shall try!

    So this weekend's list includes the following right now (for those keeping score)
    - Creative Mode hooks (half-works right now... adds and promptly removes from passage, but progress!)
    - Figuring out how to use Bukkit's scheduler for timed tasks on passages (probably not going to be done this week...)
    - Decide if sorting passages to place "stuck" objects (ladders, vines, torches) first is viable
    - See if it's possible to quickly remove "active" materials and place the decorative material, then save in passage instead of simply morphing the material to match it (will allow things such as doors and beds, but this is not likely to be done soon)

    Lemme know if you guys have other ideas...
     
  14. Offline

    sean_skroht

    Good work bro! I gave v1.3a a whirl and Residence is fine now. Thanks a lot for that!!
     
  15. Offline

    Professor29

    Glad to hear it. It was due to an oversight on my part, and luckily was easy to fix...
     
  16. Offline

    DarthScorcher

    I WANT IT!

    you could um "replace" a friends house

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

    damianmulder

    Is it possible if you make the structure dissapear to walk over the place where the structure is without walking to the wall of the structure that is my first question and my second one is is it possible if you go in the structure and then make it dissapear if you are invisible in the structure then too or can ppl see you then plz respond :)
     
  18. Offline

    Professor29

    Sadly, the answer is no on both points. I haven't added the option of making switches activate when you step on them - I was afraid it would use too many server resources to constantly check where people's feet are... if you use a pressure plate and a toggle circuit, you could feasibly cause the effect, but the pressure plate would be visible...

    As for the invisibility of the player, it's a no as well - I have no experience manipulating packets, which is needed for creating an invisibility effect. There are a few plugins that can do so out there (my personal favorite is MobDisguise), but it's outside the scope of this plugin...
     
  19. Offline

    ladan208

    @Professor29 can you do the same just like changing the blocks instead of removing them?
     
  20. Offline

    Professor29

    Are you talking about toggling between two different blocks instead of from air to solid and back? Just confused on what you mean...
     
  21. Offline

    gsgrego

    Im surprised this plugin isnt more popular anyway im glad your still updating it.
     
  22. Offline

    ladan208

    I need to make a trap thing in my server and i would really like it if you could do so that i can change blocks to example lava when i hit the Button block
     
  23. Offline

    Professor29

    @gsgrego If by "update" you mean "bash forehead into wall to determine torch dupe issue", then it's my pleasure :D

    @ladan I understand - you're looking for an a -> b situation, rather than a -> air. I can look into that, and it would fundamentally change making a passage, since you'd have to build it twice. Also, it would need a different "active" material, so that you can tell it which version of the passage to add to. Can't make any promises, but I shall attempt it on my next day off (Wednesday).
     
  24. Offline

    ladan208

  25. Offline

    Chadavder101

    Professor,
    I was wondering which version is compatible with the last 1.7.3 build.
    Thank You,
    Your Uncle Fry(jk)
     
  26. Offline

    Professor29

    @Chadavder101 1.3a should be compatible with 1.7.3 - the only 1.8 features included are compatible block IDs in a small list, which shouldn't affect performance, as they are just numbers... let me know if you have any issues.
     
  27. Offline

    Chadavder101

    ok thanks, ill test right now

    Well, it didn't spit any error out about this plugin, but I can't get on my server right now. I'll Try it out later today. Thanks for your time.

    Hmm, while i was gone, the server was spamming this:

    [SEVERE] Could not pass event PLAYER_INTERACT to SecretPassage
    java.lang.NoSuchMethodError: org.bukkit.entity.Player.hasPermission(Ljava/lang/String;)Z
    at me.professor29.secretPassage.SPPlayerListener.onPlayerInteract(SPPlayerListener.java:23)
    at org.bukkit.plugin.java.JavaPluginLoader$10.execute(JavaPluginLoader.java:307)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:321)
    at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:168)
    at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:210)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:552)
    at net.minecraft.server.Packet15Place.a(SourceFile:57)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:84)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)

    Just read this post, this would be a nice feature.

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

    Professor29

    @Chadavder101 That error says that your current build of Bukkit doesn't have any SuperPerms built in.. am I correct? If so, you could use version 0.9.1, but that's the only one that doesn't have SuperPerms integrated... At the very least, I can build an alternate version without superperms on Wednesday, that way you have the redstone options and such.

    I've had players do thorough testing on RB 1337... we couldn't find any issues, but please post if you find something we missed...

    As before, make sure to DISABLE the redstone on server start if you use multi-world. I'm trying to find how to delay activation for my plugin, but I've been failing... just like the torch duping X_x

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

    Chadavder101

    craftbukkit-0.0.1-snapshot
    Thats probably what they are all called, but thats what mine is.
     
  30. Offline

    Professor29

    @Chadavder101 Sorry for the delay - the little boy we were expecting on the 15th decided he was done waiting, and came out early. Been at the hospital caring for him and my wife - will upload the permission-less build as soon as I am near my desktop... It won't take long to make (it just requires removing code), but I don't know the exact time...

    Also, the name is always -snapshot, but my question is the Build Number that is shown when you start up bukkit - it's normally one of the first few lines. The exact number will tell me what features your bukkit does (and does not) have, that way I can ensure that it will be problem-free.
     
  31. Offline

    Chadavder101

    Congratulation on your son.

    Craftbukkit version git-Bukkit-0.0.0-904-g9277096-b953jnks (MC: 1.7.2)
     

Share This Page