Bunny Doors
1 Bunny Doors
This plugin lets you lock specific doors and chests on your server with a particular key. Only players with that key can open the door.
- Quick Start : https://github.com/jonnay/BunnyDoors/wiki/Quickstart
- Documentation : https://github.com/jonnay/BunnyDoors/wiki/
- Source Code : https://github.com/jonnay/BunnyDoors/
There are plenty of plugins that give you specific custom permissions for doors but this plugin is different. The point of this plugin is to emulate old-school JRPG doors (Think Dragon Quest). It aims to be easy for you to create doors that require keys. I've been wanting doors-with-permissions for a long time now, and decided to roll my own.
Make Citizens NPCs give your players special keys for completing quests! Give your theif Hero class the ability to pick locks! Give VIPs special access! So many possibilities!
1.1 Features
- Create an unlimited number of doors, and an unlimited number of keys to unlock them!
- Use with any permissions system.
- Simple Spout integration, with more coming!
- Keys are implemented as permissions, so you can use it with a variety of other plugins to enhance your experience.
- With Vault installed, you can put keys inside of chests!
2 Requirements
Bunny Doors will work, as is, out of the box, without any other plugin. It is HIGHLY recommended that you have a region protection plugin like Worldguard. (If you know of any other region protection plugins, then I'd like to hear about them, so I can update this document)
The only requirements around a protection plugin, is they must block a user from placing or removing blocks in the area where your door is.
Beyond the protection plugin of your choice, if you have Spout or Vault installed, then BunnyDoors will give you extra functionality. It's called progressive enhancement baby, and it rules.
2.1 Protection Plugins
2.2 Vault: http://dev.bukkit.org/server-mods/vault/
- Gives you access to the
/bunnykey give
command - Allows keys to be put inside of chests
2.3 Spout: http://dev.bukkit.org/server-mods/spout/
- Allows keys to be put inside of chests
- Sends "Achievement Get!" style notifications when the user opens their inventory, or gets a key from a chest.
3 Open source!
I am leaning plugin development by looking at other peoples source, and basically standing upon the shoulders of bukkit giants. So NOT making this plugin open source would be insane, and kinda lame.
Source code: https://github.com/jonnay/BunnyDoors
Instead of large grand plans, I have a set of very small discreet releases planned. If anyone wants to help, they are more then welcome to fork the repo, and I will pull the changes (assuming they work). Please feel free down download an contribute.
finally, there is a better then even chance that at some point, I will stop developing this plugin (due to time constraints, hatred of writing java, or a case of hey-look-at-that-shiny-thing-over-there). When that inevitability happens, I want to make sure that you, as a server admin, can update the plugin for whatever new version of Bukkit comes out. It also means
4 Changelog
- 0.1
- First version
- 0.2
-
- Added Serialization scheme
- added config file, with ability to customize keys
- added /bunnydoor lock command
- added /bunnydoor unlock command
- added /bunnydoor reload command
- 0.3
-
- added /bunnykey command (with list, listall and add subcommands)
- locked doors close after 10 seconds.
- debugging is turned off (Sorry about the spam)
- 0.4
-
- fixed /bunnykey permissions issue
- implemented /bunnykey give command
- added ability to turn off devilstats in the config. (this should have been in there earlier. Sorry)
- Fixed a door bug where the bottom half of the door gets copied into the top
- Door info now displays more info about doors (i.e. who locked it) It's prettier too.
- 0.5
-
- Added very basic spout support through the notification interface. Note that this is only a "soft dependency". You don't need spout to make it go!
- 0.6
-
- Chests are now lockable too.
- Added API Call for other plugins
- A key can be put inside of chests with
/bunnykey put <key>
and taken out with/bunnykey take
- 0.7
-
- Fixed a problem with the keys being listed in the inventory for non-spoutcraft clients
- Trap Doors are lockable!
- Item Keys!
- Config option to set when the door auto-closes (closeDoorAfter)
- Config option on to control when the key notification text is sent to vanilla clients (notifyVanillaClientsOn) use 0 to disable it completely
Date: 2012-02-18 14:46:01 MST
Author: Jonathan Arkell
Org version 7.7 with Emacs version 24
0.7 Released! If it isn't available on bukkitdev, you can get it here:
https://github.com/downloads/jonnay/BunnyDoors/BunnyDoors.0.7.jar
If you want to test the single-use item keys, here is a pre-test jar.
https://github.com/downloads/jonnay/BunnyDoors/BunnyDoors.0.7-pre2.jar
edit: Now it has trapdoors! There are a few bugfixes I want to get in before a final 0.7 release. Hopefully sometime Friday or this weekend!
Very close to a new version. Into the testing cycle. Hopefully soon! Code is in git as usual.
Just to keep everyone in the loop:
Single use keys are being worked on. there will be a new entry in the config for them. I think I have found a reasonable solution for them (whoo hoo!). 0.7 should have the one-time keys and trapdoors.
After that, I will try to attack spout again... but this time I have a SEKRUT weapon. So it might be easier. :P I'll also do player grants (Should be pretty easy).
Again, I have a busy weekend, so you wont see much progress till the middle of the week (maybe?). I'll make sure what I have is committed to the git repo!
Edit: Trapdoors, not trapedoors. :P (remember kids, if you edit your comment, its polite to mention why you did it!)
I prefer Bunny Doors over COLOUR keys. It allows spout compatibility, which is always a plus.
@jase3905
Well, after months of inactivity, I figured I could build something similar myself. As it turns out it looks like we are building pretty different plugins with different implementations.
I don't see how it is really that close at all, that is, unless you're really trying to take ownership of the idea of locking doors! ;)
I see you took our idea once you saw we hadn't worked on colorkeys for a month or so, lol. Not a complete copy, but... pretty close.
FYI, ColorKeys is released, and is fully functional.
Guess we have some competition now, lol.
Best of luck to you :)
@adamclow309
I've figured out a quasi-reasonable kludge for 1-time keys, and how to make them work for a vanilla(?) bukkit server. Developing it won't be particularly easy (but it will be fun!). At most it would take the spout server plugin.
Seeing as how that is the most coveted feature thus far.. that'll be next.
I was curious if it would be possible to give a key out as a reward. I use mobarena a lot, and I like making my users have to "earn" their heroes. So, I place doors to block them from accessing heroes, I of course need to lock them though....after completing a certain amount of successful wave of monsters, rewards are given out as items...can I give a bunny key this way. I would be way helpful. That, and if the key was a one time use. Please and thank you for a reply or help.
The latest file is still up for review... so here is a github link: https://github.com/downloads/jonnay/BunnyDoors/BunnyDoors_0.6.jar
Enjoy!
@MCFUser5585029
Locked Chests, and Keys inside of Chests are almost ready to go. There is a small problem with the retrieval of the key. It'll be done soon, maybe today if we're both lucky!
@wirher
I added the getKeysForPlayer api call, and it should be ready for 0.6. Let me know if you have problems with it, okay?
As usual, the code is in the git repository.
I'll get round to downloading this for my server once you let keys be placed in chests, and taken from chests too
@wirher
Well, Cursory Spout supoort is there. As for an API to gather info about the keys a player has, this is do able. I'll fire that on the roadmap for version 0.6. Would something like this work foor you?
Also, I implemented keys as permissions under the hood. So if you can look at permissions, you can also see what keys the player has.
edit: Fixed signature of call. (derp)
Hey jonnay23, when you add spout support could you add a little api which could help with gathering infos about players key? I mean maybe few methods which will return list with keys. I need something like this to my plugin for auto creating player page on my WWW with stats like finished quests, skills, lvls and keys.
Not yet. But that shouldn't be too hard to implement, assuming that keys are kept as permissions instead of actual items. While I am there I'll implement locking of chests.
I won't get to it till next week though.
Great, can keys be placed/gained in chests?
Spout support is hard. That feature is taking a lot longer then I expected, so I put in a stop-gap feature for now.
If the user has spoutcraft installed, when the inventory is opened, a notification will pop up telling them what keys they have.
This isn't the last word on spout integration, only the first!
Well, spout support is on the way. I am having beginner issues with setting up teh widgets. Code is in Git if someone wnats to help.. *nudge* ;)
I am HOPING in the next few days to have the keys displayed on the inventory screen if spout is installed on the server. If the user is using Spoutcraft, then they will get a pretty picture as well!
Once that works, I'll make it so that you can customize how the keys look, and include a few different cool defaults.
Also, if you dont have spout installed, that'll be fine. The plugin will work just fine without it. or should.
I will definatly get it for my server once it supports spout.