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

    davis7457

    For some reason evrytime I make a switch and try to activate it, it sayz "your not allowed to active this passage"


     
  3. Offline

    Professor29

    Toasticuss leonofthewind davis7457 It's the same error I've been fighting with for a few versions. I'm going to see if there's errors in my logic for activating passages, as the switches seem to be the only problem with the SuperPerms support. Sadly, been away from my PC for the last week, so coding has been stalled. I'll be working on this and adding the new version of listeners for the plugin as soon as I get home.

    Toasticuss The NoPerms version is actually built to work with a very old version of Bukkit (build 753), which predates the addition of Creative Mode. What's bizarre is that the code for the switches perfectly matches on both versions - the only change is me using .hasPermission() instead of .isOp(), which is why I'm flabbergasted as to why it's failing so spectacularly.
     
  4. Offline

    Untar1

    A big problem-you forgot to make it so that OPs can use it too.
    Because i created a door and cant use it
     
  5. Offline

    Don Redhorse

    in SPPlayerListener you have a problem with the code of the onPlayerInteract event, it should be:

    1) check if event is cancelled first
    2) check if right clicked
    3) than to do the rest

    Also I don't really know why but with '*' I get the message you are not allowed to activate switches.

    ok. I know why... line 229 in SecretPassage checks for rights secretpassage.deny.whatever... which I have, you should probably also check if people have the "admin" rights in this statement, if they have both ignore that part.

    that shouldn't happen because I have both permissions you are looking for..

    nevertheless the code flow is wrong as it will check this for every playerinteract..

    haven't really looked into the code but also it looks like SwitchBlock is missing the world information
     
  6. Offline

    Professor29

    krix Toasticuss leonofthewind Davis Untar1 I've made changes to the code, as well as the specific part that is giving me grief. Please test 1.5 if you can, let me know if you still can't activate passages as Op (I checked it as both Op and a standard player, both for my passages and another player's).

    Thank you for the help with the code, it pointed out some bad errors I had made (including the fact that anyone unable to use the plugin would be hit with a deny message whenever they right clicked anything...). I'm hoping the change will squash the bug on activating passages, but let me know if it doesn't. What worries me is that the message should only show up when you have a specific permissions node (secretpassage.deny.thenameofthepassage), which is generated at run-time and set to false by default... any idea why it might be firing off without that? (I already added the admin check to it, for safety's sake. There's an "antilockout" perm that I added a while back due to plugins that gave all permissions nodes to users)

    Also, I'm working on the black/whitelist feature. Do you guys want it to work as both, or should I restrict to one? My current plan is to allow either, but you can change it by using the opposite command...
     
  7. Offline

    Don Redhorse

    the code in the main plugin class didn't had that check IIRC... I'm using PEX which has the old '*' which means EVERYTHING... so also the deny rights if you check with hasPermission ..

    I know that using '*' is stupid, but I use it for testing... otherwise I have only limited rights (haven't tested that though).

    concerning if statements you should also try to test the stuff first which fails more often... saves cpu cycles.. and especially with permissions that can be a bunch... there is a plugin which does test how long it takes to figure out permissions in general
     
  8. Offline

    Professor29

    You're correct - I added it back in. Not sure when I removed the check, as that's why the permission is there in the first place...

    I'll see what I can do about revamping the IF statements, but as a general rule the entire thing needs some cleaning... Thank you for going through the code to help, and I'm sorry for the lack of structure.... self-taught, so I build it in a way that makes sense to me....
     
  9. Offline

    Luneth2

    Im an OP
    and when i click it, it says im not allowed
    but normal people can do it..

    I want the exact opposide of this.

    how do i do that?
     
  10. Offline

    Don Redhorse

    wait for a fix, see the last 3 - 4 messages above.

    there is nothing wrong with being self-taught.. I just started coding again 3 month ago after more than 20 years not looking at code... and that was Turbo Pascal.

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

    Professor29

    Grab v1.5a and you shouldn't have issues with activating. However, the plugin is designed to allow anyone the ability to activate passages, and there isn't a full lockout option without using a SuperPerms plugin. If you use one, just give your players "secretpassage.lockout" and they won't be able to access any facet of the plugin. Or, you can use the /spass toggle (Passage) command to activate them, and remove all the switches for your passages. Ops by default have access to it, while players do not, so you could lock them out that way as well.

    I actually don't know what Turbo Pascal is used for. I've heard the name, but only in passage from an old teacher who introduced me to coding by handing me a floppy disc with Quick Basic on it... I've looked at your plugins and they're all very impressive - any tips on how to improve this one?
    --------------------
    And as before: Do you guys want the restriction options to function as whitelists, blacklists, or have the option for both? I'm hoping to get input from users before just coding it and throwing it out, that way it matches your needs...
     
  12. Offline

    Luneth2


    Will there be an update for it?
     
  13. Offline

    Professor29

    Not in the way you're looking for, sadly. The plugin is set up to allow each person to be able to build passages, and there won't be commands to lock specific people out of it - the main reason I included superPerms support was to allow partial and complete lockdown of the plugin.

    However, I will be adding a per-passage lockdown feature, so you'll be able to prevent anyone else using the passages you have constructed using commands. They will still be able to make their own passages unless you use a superPerms manager to lock them out though.
     
  14. Offline

    Don Redhorse

    well most of them are based on work other people did.. so I read a lot of source code.. but I also did read some quite good books about Design Patterns and how to Code better in Java... Bad smells etc but I still have problems with OO, Generics and some more sophisticated stuff.

    option for both... if that make sense... I don't know exactly what you want to restrict.. and how much code it would take to do it..
     
  15. Offline

    Professor29

    Yeah.. OO just makes my head hurt. My logic is that the listeners act as nerves, which communicate with the main class (brain). If there's an item that has a bunch of things associated with it (such as managing the passages and switches), that's broken off into a subsection to keep it neatly bound together... like I said, just what makes sense to me...

    Simply the activation of passages, that way you can use them as a sort of "secret access" hatch. My idea is 2 commands, both of which will only work while you are actively working on a passage:
    /spass allow (add|remove|all) (Name), (Name), (Name) - Sets up a whitelist on the passage, allowing only the creator and those listed to be able to activate its switches. If the user doesn't type add, remove, or all, it defaults to add. I'll check against the online and offline players, and the name will have to be a match that isn't case sensitive. By typing /spass allow all, it clears the existing white or black list, defaulting to normal procedure.

    /spass deny (add|remove|all) (Name), (Name), (Name) - Sets specific people who cannot use the passage. As before, will default to add, and using all will allow only the creator access. I'm not sure if I should allow Ops to bypass this, seeing as its definition varies from server to server, but I'll be putting permissions nodes in to allow unfettered access to all passages, even those you are specifically locked out of.

    It would save these in a new folder: Access. Each passage will create its own access file, and it would look something like this:

    testPass.dat
    black
    TheHacker, Griefer90210, CheezMan

    or like this:

    testPass.dat
    white
    MyHomie, Bro, B3stFriend

    Creating a black/white list when one is already in place will overwrite it, as well as the access file. I'm not sure if I should add a safeguard to this, such as requiring a command (ex: /spass (allow|deny) clear), or if it should just do it.
     
  16. Offline

    Don Redhorse

    sounds good... don't forget a list / info command to show the current config.. than you don't need a safeguard :)
     
  17. Offline

    krix

    at com.earth2me.essentials.User.<init>(User.java:31)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:463)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:439)
    at com.earth2me.essentials.EssentialsPlayerListener.onPlayerMove(Essenti
    alsPlayerListener.java:84)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:310)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:340)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:187)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:96)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:535)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:433)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    18:16:24 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:24 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:24 [SEVERE] Could not pass event PLAYER_MOVE to Essentials
    unacceptable character '⌂' (0x7F) special characters are not allowed
    in "<reader>", position 616
    at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.ja
    va:98)
    at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:191)
    at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:63)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:423)
    at org.bukkit.util.config.Configuration.load(Configuration.java:92)
    at com.earth2me.essentials.EssentialsConf.load(EssentialsConf.java:110)
    at com.earth2me.essentials.UserData.reloadConfig(UserData.java:34)
    at com.earth2me.essentials.UserData.<init>(UserData.java:28)
    at com.earth2me.essentials.User.<init>(User.java:31)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:463)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:439)
    at com.earth2me.essentials.EssentialsPlayerListener.onPlayerMove(Essenti
    alsPlayerListener.java:84)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:310)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:340)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:187)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:96)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:535)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:433)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    18:16:24 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:24 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:24 [SEVERE] Could not pass event PLAYER_MOVE to Essentials
    unacceptable character '⌂' (0x7F) special characters are not allowed
    in "<reader>", position 616
    at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.ja
    va:98)
    at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:191)
    at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:63)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:423)
    at org.bukkit.util.config.Configuration.load(Configuration.java:92)
    at com.earth2me.essentials.EssentialsConf.load(EssentialsConf.java:110)
    at com.earth2me.essentials.UserData.reloadConfig(UserData.java:34)
    at com.earth2me.essentials.UserData.<init>(UserData.java:28)
    at com.earth2me.essentials.User.<init>(User.java:31)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:463)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:439)
    at com.earth2me.essentials.EssentialsPlayerListener.onPlayerMove(Essenti
    alsPlayerListener.java:84)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:310)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:340)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:187)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:96)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:535)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:433)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    18:16:24 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:24 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:24 [SEVERE] Could not pass event PLAYER_MOVE to Essentials
    unacceptable character '⌂' (0x7F) special characters are not allowed
    in "<reader>", position 616
    at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.ja
    va:98)
    at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:191)
    at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:63)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:423)
    at org.bukkit.util.config.Configuration.load(Configuration.java:92)
    at com.earth2me.essentials.EssentialsConf.load(EssentialsConf.java:110)
    at com.earth2me.essentials.UserData.reloadConfig(UserData.java:34)
    at com.earth2me.essentials.UserData.<init>(UserData.java:28)
    at com.earth2me.essentials.User.<init>(User.java:31)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:463)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:439)
    at com.earth2me.essentials.EssentialsPlayerListener.onPlayerMove(Essenti
    alsPlayerListener.java:84)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:310)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:340)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:187)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:96)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:535)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:433)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    18:16:24 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:24 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:24 [SEVERE] Could not pass event PLAYER_MOVE to Essentials
    unacceptable character '⌂' (0x7F) special characters are not allowed
    in "<reader>", position 616
    at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.ja
    va:98)
    at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:191)
    at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:63)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:423)
    at org.bukkit.util.config.Configuration.load(Configuration.java:92)
    at com.earth2me.essentials.EssentialsConf.load(EssentialsConf.java:110)
    at com.earth2me.essentials.UserData.reloadConfig(UserData.java:34)
    at com.earth2me.essentials.UserData.<init>(UserData.java:28)
    at com.earth2me.essentials.User.<init>(User.java:31)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:463)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:439)
    at com.earth2me.essentials.EssentialsPlayerListener.onPlayerMove(Essenti
    alsPlayerListener.java:84)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:310)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:340)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:187)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:96)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:535)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:433)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    18:16:24 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:24 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:24 [SEVERE] Could not pass event PLAYER_MOVE to Essentials
    unacceptable character '⌂' (0x7F) special characters are not allowed
    in "<reader>", position 616
    at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.ja
    va:98)
    at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:191)
    at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:63)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:423)
    at org.bukkit.util.config.Configuration.load(Configuration.java:92)
    at com.earth2me.essentials.EssentialsConf.load(EssentialsConf.java:110)
    at com.earth2me.essentials.UserData.reloadConfig(UserData.java:34)
    at com.earth2me.essentials.UserData.<init>(UserData.java:28)
    at com.earth2me.essentials.User.<init>(User.java:31)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:463)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:439)
    at com.earth2me.essentials.EssentialsPlayerListener.onPlayerMove(Essenti
    alsPlayerListener.java:84)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:310)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:340)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:187)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:96)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:535)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:433)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    18:16:25 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:25 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:25 [SEVERE] Could not pass event PLAYER_MOVE to Essentials
    unacceptable character '⌂' (0x7F) special characters are not allowed
    in "<reader>", position 616
    at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.ja
    va:98)
    at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:191)
    at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:63)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:423)
    at org.bukkit.util.config.Configuration.load(Configuration.java:92)
    at com.earth2me.essentials.EssentialsConf.load(EssentialsConf.java:110)
    at com.earth2me.essentials.UserData.reloadConfig(UserData.java:34)
    at com.earth2me.essentials.UserData.<init>(UserData.java:28)
    at com.earth2me.essentials.User.<init>(User.java:31)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:463)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:439)
    at com.earth2me.essentials.EssentialsPlayerListener.onPlayerMove(Essenti
    alsPlayerListener.java:84)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:310)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:340)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:187)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:96)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:535)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:433)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    18:16:25 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:25 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:25 [SEVERE] Could not pass event PLAYER_MOVE to Essentials
    unacceptable character '⌂' (0x7F) special characters are not allowed
    in "<reader>", position 616
    at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.ja
    va:98)
    at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:191)
    at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:63)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:423)
    at org.bukkit.util.config.Configuration.load(Configuration.java:92)
    at com.earth2me.essentials.EssentialsConf.load(EssentialsConf.java:110)
    at com.earth2me.essentials.UserData.reloadConfig(UserData.java:34)
    at com.earth2me.essentials.UserData.<init>(UserData.java:28)
    at com.earth2me.essentials.User.<init>(User.java:31)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:463)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:439)
    at com.earth2me.essentials.EssentialsPlayerListener.onPlayerMove(Essenti
    alsPlayerListener.java:84)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:310)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:340)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:187)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:96)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:535)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:433)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    18:16:26 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:26 [SEVERE] File broken: C:\Users\Kristoffer\Desktop\mc2\plugins\Essential
    s\userdata\rustigold.yml
    18:16:26 [SEVERE] Could not pass event PLAYER_MOVE to Essentials
    unacceptable character '⌂' (0x7F) special characters are not allowed
    in "<reader>", position 616
    at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.ja
    va:98)
    at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:191)
    at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:63)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:423)
    at org.bukkit.util.config.Configuration.load(Configuration.java:92)
    at com.earth2me.essentials.EssentialsConf.load(EssentialsConf.java:110)
    at com.earth2me.essentials.UserData.reloadConfig(UserData.java:34)
    at com.earth2me.essentials.UserData.<init>(UserData.java:28)
    at com.earth2me.essentials.User.<init>(User.java:31)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:463)
    at com.earth2me.essentials.Essentials.getUser(Essentials.java:439)
    at com.earth2me.essentials.EssentialsPlayerListener.onPlayerMove(Essenti
    alsPlayerListener.java:84)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:310)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:340)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:187)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:96)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:535)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:433)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    >
     
  18. Offline

    Professor29

    Did that show up after installing my plugin? The error you posted is for the Essentials suite, specifically a portion where they try to get the player that initiated an OnPlayerMove event... my plugin doesn't use any OnPlayerMove events, and doesn't change any player info, so I don't know why it would cause that error.... I'd look into their source, but (last I checked) Essentials was a closed-source plugin suite, so only the devs have access....

    Does that error cause any issues with SecretPassage?
     
  19. Offline

    bratling2011

    i cant download i click on the link the it comes up with a white screen
     
  20. Offline

    Professor29

    I double checked the link, and it's currently active... can you try right-clicking and choosing "Save Target As"? I've been able to bypass download problems on my comp before using that method... just depends on your browser...
     
  21. Offline

    coronangel

    okay is it possible to add 2 switches because i tried like on one floor up and another about 3 blocks down i tried the second switch and it opens but only opens for about 2 seconds then closes and i tried changing the timer on t but only the first switch got a timer
     
  22. Offline

    Professor29

    Two switches is possible, but the timer is on a per-passage basis, not a per-switch basis, so the passage will always react the same. Also, the timer is in ticks, not seconds... need to add an option for that. Basically, 20 ticks = 1 second, so if you put 30 delay it will only be open for 1.5 seconds. If you want to remove the timer, just set it to 0 on the passage.
     
  23. Offline

    coronangel

    oh and another thing so i made a secret house in the sky and theirs nothing in it and is it possible to decorate it with furnaces blocks without having to put netherrack and changing them and will it stay invisible when i switch the house to be invisible
     
  24. Offline

    Professor29

    The only blocks that change will be the ones that were originally netherrack... the system was built that way to allow any shape to be concealed, instead of only flat or connecting shapes. Also, the plugin doesn't make it invisible; it swaps from block to air and back. It means that any blocks placed inside a chest or furnace will disappear when the block disappears... please be careful what you put in that house.
     
  25. Offline

    Chevalier

    Hello, I've foud a problem with this plugin, and my server remove it. I thingit is the best plugin and I ask to resolve the problem...
    The problem is the player can dupplicate blocks with the plugin. For it, do a passage, with a diamand block or other. Put a piston and push the block. Next, you can pix it and do it again and again.
    Is i possibl to correct this problem or have we to to without the plugin:(.
    I hope for a solution!
    Please...
     
  26. Offline

    Professor29

    Just fished through the Bukkit API, and there's a method that will let me check which blocks are moved by a piston before allowing it to move. I can use that to fix the problem, as I completely overlooked pistons...

    Also, in other good news, I finally have access to my code again, so expect to see the initial versions of allow/refuse within the week. Please let me know if you have any other issues that need to be fixed, as I'm hoping to roll them out at the same time...

    About the large, bold announcement that is now on the forums: I've gone over the compatibility requirements for R5, and none of the sections being changed by the Bukkit staff are used by SecretPassage. If anything DOES break, please let me know and I will do a patch update to fix it to tide people over before 1.6 comes out.

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

    sjrc6

    i have created a fun game rather like spleef it has to do with the fact you can glitch this plug-in with world edit
    i was wondering if any one wanted to help posibly make a new clasic game with me just leave a reply
     
  28. Offline

    Daxonbeast

    Update Please!
    Thanks!
     
  29. Offline

    StrangeOne101

    Awesome plugin! Very creative too! I would highly recommend this plugin and it even works with 1.2.3 :D
     
  30. Offline

    Professor29

    Yup, but I still want the white/black listing options added on the 1.2.3 version... the code is done, I'm testing it now. Give me an hour to tweak it and it should be ready (it also should fix the piston dupe issue)

    Working on it. Also got some ideas while digging through the code - update in an hour or so.

    Would you prefer it if you had the option of excluding certain blocks from the protection? To make spleef easier, you could exclude snow blocks, allowing them to be broken in passages.

    Ok, this is fun: Plugin properly stops pistons from pushing on the passage, up until the point where the passage is closed while the piston is set to extend. Due to some internal chain of events, the block is changed to air and bypassed by the event, but the block is still pushed by the piston, allowing duplication. I'm going to take the easy way out if all else fails and simply "pop" the piston if it tries to push a passage, but add an hour to the eta while I exhaust my options...

    Ok... five posts in a row. Sadly don't have time to redo the main post, so I'm leaving this here. It has piston protection (breaks the piston if it tries to pop out a block), as well as the following commands:
    /spass access - Lists the white/blacklisting commands
    /spass access allow (Name) (Name) (Name) (Name) - Sets the passage you are currently working on to use a whitelist, and adds the names to it. It checks against all online and offline players to make sure the person exists - I'll expand this later to allow you to type partial names, but out of time for tonight.
    /spass access deny (Name) (Name) (Name) (Name) - As above, but blacklist.
    /spass access remove (Name) (Name) (Name) (Name) - Removes named people from the passage's access list.
    /spass access clear - Resets passage protocol to allow anyone to use it.

    Example: PassageOwner makes a door and types "/spass access deny TheDude FakeName MyBud PassageOwner SuperOp". The plugin will add TheDude, MyBud, and SuperOp to the blacklist - they can't use it. It won't add PassageOwner because he's the owner, and FakeName is a fake name, so it is rejected. Also, even though SuperOp is on the blacklist, his access to Op powers will allow him to bypass the restriction. I will make this configurable tomorrow, as well as add some other options - just out of time for tonight.

    Link is here.

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

    Professor29

    Question for anyone watching this thread: Adding the access commands made me realize just how long the commands for the plugin can get. I was wondering if you guys would prefer the option of being able to type the plugin's commands without using the main command (so /spass create would become /create). If so, I'd probably have to force the commands to be the defaults, rather than being changeable in the config.

    Also, would you be interested in having every block placed in creative mode automatically added to a passage? A switch would still need to be built as normal, but I can add options to bypass the active materials - they're there to allow you to work around the passage whilst building it.
     

Share This Page