OldReleaseNotes
Older Releases
Old issue?
I'm getting a lot of messages from people who aren't matching the game version of Catacombs with the game version of bukkit they have loaded. Please make sure the Catacombs version you download matches the bukkit version you are using.
Unfortunately it looks like catacombs is going to break on every bukkit update from now on. :( The reason for this is that I had to add a low level call to craftbukkit internals to work around a lighting bug (the dungeon doesn't go dark when its reset when it's in a remote chunk). The release version number is in the function call and this needs to change every release. I reported the bug many moons ago but doesn't have a solution yet (see here and here)
With this in mind I'll do my best to make the updates more quickly when a new bukkit recommend release is available, just send me a polite PM when you see the new recommened release.
Release v2.5
This version will need Vault if you want to use permission or economy plugins
- Added a configuration to allow admins to reduce the amount of normal and special loot that monsters drop in dungeons (MobDropReductionPct: 0 is the default).
- Changed it so Admins can use the blocked commands in dungeons even when the dungeons aren't suspended.
- Changed the code so the whole command is checked against the blocked commands list (not just the start of the command).
- Fixed a bug when using ID numbers for materials rather than the bukkit names.
- Added an option to the config file for Slime spawners. However the spawners don't generate any slimes so you'll have to wait for other changes before this is useful.
- Added configurations to allow admins to block players teleporting to locations inside enabled dungeons (e.g /back) and/or to teleport out of enabled dungeons (e.g /home). These configurations allow extra control in addition to the BannedCommands list. The catacombs 'goto', 'end' and recall commands still work (they have their own permissions).
- Fixed an issue with lava or water leaking out if the sides of special rooms when under fill isn't being used and the dungeon is built through air.
- Added configuration to allow players who die in a dungeon to respawn in the hut above it.
- Added a '/cat load <world>' command to force dungeons to be loaded (or reloaded) in worlds that are dynamically loaded long after startup.
- Added code to automatically load and unload dungeons when worlds are dynamically loaded and unloaded.
- Fixed an issue with the cached list of placeable blocks not refreshing after a change of style.
Release v2.4
This version will need Vault if you want to use permission or economy plugins
- Changed code to use Vault rather than WEPIF (for permissions) and Register (for economy). This significantly simplifies the code, it's maintenance and should also make Catacombs easier to setup. Installing Vault is optional, it's not required. If you don't install Vault then Catacombs will simply fall back on ops.txt to see if a player has Op permission, and also no cash will be given for killing monsters inside dungeons. Other than that everything should function fine.
- Changed the way flints are created to allow different durability codes (this allows SuperCapes to be given as chest loot).
- Fixed a bug associated with building dungeons that end above level 128.
- Change the way dispensers, furnaces etc are destroyed to match the way chests are destroyed to help work around some intermittent client side crashes.
- Added new configuration options to control the chances of finding small chest loot in the medium and big chests, and also an option to empty out the less significant half of the double (end of level) chests.
- Change code so players don't need recall permission to use the recall button.
- Optimized the code that checks if blocks are inside dungeons. The code will now check against a bounding cuboid for the entire dungeon before pushing down to check all the levels. The order the coordinate checks are done in was also optimized.
- Recoded all the bukkit events so each dungeon gets notified of it's own events. This simplifies the event code and makes it simpler to have different dungeons handle the events in different ways.
- Fixed an issue in the amount of experience retained when a player dies in a dungeon caused by changes in bukkit.
- Removed the SaveDungeon config attribute, as dungeons must be saved for correct operation of the plugin.
- Added command to allow existing dungeon doors to be converted from wood to iron, to avoid the noise of zombies hitting them. '/cat iron <name>' converts a named dungeon. '/cat iron' converts the dungeon you are standing in. '/cat ironall' converts all loaded dungeons.
- Added an option to allow admins to restrict dungeons so players can't enter them in armour.
Release v2.3
- Changed the way book are created to allow different durability codes (this allows BookWorm books to be given as chest loot).
- Changed code to allow incomplete dungeons to be unplanned.
- Add config option to allow some percentage of the dungeon doors to be iron (this helps avoid the zombies making lots of noise banging on wooden doors).
- Add admin option to allow players to open/close iron doors by clicking on them in dungeons.
- Added config list to allow control of the blocks players can place in a dungeon (incase you want to allow players to place redstone torches (the bukkit name is redstone_torch_on)
- Add configuration to allow Endermen spawners to be created (although they won't be angry when they spawn because currently there doesn't appear to be a mechanism to allow this - unlike wolves and pigmen - which makes this feature not very useful for the moment unless you want a load of passive Endermen).
- Add signs around the dungeons to make the end and the dungeon depth clearer.
Release v2.2
- Recoded the way the secret doors are built to resolve some intermittent door problems a couple of users have had.
- Fixed code so that dungeons in worlds that aren't loaded on the server now don't crash with a null pointer exception.
- Added API calls so dungeons or all the dungeons in a world can be late loaded (and unloaded) when the server is already running.
- Extended the loot specification to allow enchanted items to be added to chests. Previously loot was specified using 3 fields separated by ':' (e.g 'dirt:75:3-6' which means a 75% chance of 3-6 dirt blocks). Now any additional fields after the first 3 will be taken as enchantments to add. Each enchantment consists of 2 parts separated by a '/'
- The enchantment type, this can be either the bukkit name (either case) from here http://jd.bukkit.org/doxygen/db/d2b/Enchantment_8java_source.html or the ID number (aka EID) http://www.minecraftwiki.net/wiki/Enchanting
- The enchantment level.
No checks are made on the number of enchantments, or the maximum levels, or the enchantment types or the item types, because I'm not here to deliberately limit what you can and can't add to chests. For example this is how to give a 100% chance of 1 diamond sword with sharpness(5) and aspect of fire(2) on it 'diamond_sword:100:1:damage_all/5:fire_aspect/2'
Release v2.1
- Added configuration option for random anvils in dungeons.
- Added work around for client side crash when chests in dungeons are deleted.
- Fixed code so beds in dungeons are deleted correctly without dropping a bed.
- Added work around for light levels not updating when the torches are removed during a reset and no players are nearby.
Release v2.0
- Added an option to allow the button at the end to recall the presser rather than resetting the dungeon. If both reset and recall options are true then the reset wins.
- Fixed an issue in the order the permissions plugins were being loaded relative to Catacombs.
- Re-enabled replacing chests when dungeons get deleted. This will cause a client side crash due to a bucket/minecraft problem, but it's probably better to do this than leave the empty chests buried underground.
- Updated deprecated function calls
Release v1.9
- This release is for those using bukkit compatible with MC 1.2.3 or above.
- Fixed some issues that occurred when players died in dungeons and the code tried to restore their gear. These issues were caused by changes in the way bukkit handled empty slots [you used to get Material.AIR returned now you more sensibly get a null pointer]
Release v1.8
- Fixed the code so deleted and unprotected dungeons really do get removed from the database.
- Minecraft 1.2.3 change the way doors work. In Catacombs I fixed the hinge positions for double doors in new dungeons and added code to go around at start up and fix any existing legacy dungeons. Any open doors will be closed by this operation. Also changed the reset door closing code to function correctly with the new scheme.
Release v1.7
- Changed the default wepif.yml file that gets created so that DinnerBone's permission handler (aka Bukkit permissions API) is off by default. It will not change wepif.yml files that already exist, so if you are not running worldedit and you'd like Catacombs to create a new file for you, remove the old one and restart the server. This should help protect users with simpler setups from running into permissions problems. Admins actually using Bukkit permissions API will need to enable it manually in the wepif.yml file.
Release v1.6
- Fixed a null pointer exception you get when all the permission resolvers are disabled.
Release v1.5
- Cake blocks are now restored on fences with air above them on reset. Partially eaten cake is also restored to full.
- Added 2 additional block types to the config file to control the floor and ceiling blocks. For legacy dungeons these will default to the major block. In the config file the default for both of these will be cobblestone for new dungeons.
- Prevented grass spreading out from under the wolf spawners across a dirt floor.
- Added feature that should allow torches to be placed in dungeons even when they are protected by other plugins (like worldguard)
- Updated my permissions handler to use sk89q's WEPIF permissions handler code. Hopefully this will improve integration with permissions handlers in general.
- Changed player death options so they function in dungeons even without the AdvancedCombat option being set.
- Updated the Event code to the new bukkit style. This makes the following admin configurations options now obsolete (because there is no time to be saved by not calling the listeners). MessyCreepers, MessyEndermen, SecretDoorOff, CalmSpawns & DungeonProtectOff
- Record the world name and the dungeon start coordinate in the map files from now on.
- Updated the Enderman pickup and place events to use the latest versions of the bukkit calls (EntityChangeBlockEvent).
Release v1.4
- Added extra code to fix any broken secret doors at start up.
- Fixed a bug with the MobsOnlySpawnUnderground option (however mobs will still spawn in forests and cave mouthes so be warned).
- Added code to allow small amounts (fractions) if cash to be given for monster kills
Release v1.3
- Fixed potion loot so that splash potions can be created. The syntax is like this potion/16425:10:1 (this means a 10% chance of splash potion of strength II).
- The first room of each level can now be a special room
- Added code to allow special rooms to be placed in any of 4 orientations.
- Changed code stairs down re-use the special room code, allowing more interesting final rooms in the future.
- Added config percentage for Creeper spawners
- Added option to control PvP damage inside dungeons (by default it is off).
- Fixed Advanced combat bug when TNT explodes near a player.
- Fixed bugs caused by dungeons in worlds that no longer exist.
- Added config option to cancel most monsters spawning on the surface (monsters will still spawn under trees, overhangs and in caves or dungeons).
- Added config option to cancel all monsters spawns except those in dungeons.
- Added config option to prevent any ore displaced by the dungeon level from being collected in the/a medium chest on the same level.
- Fix plugin clash with WorldGuard that stopped secret doors working in dungeons that are worldguard protected.
- Changed the code so empty and filling buckets is only prevented in protected dungeons
- Big tidy up on the dungeon protection code, made suspend/enable an attribute of the dungeon rather than the level. In theory this shouldn't have changed the functionality but it's possible I might have broken something.
- Added timed reset feature for dungeons. '/cat time <name> <time>' The command changes the reset timer for the named dungeon (or the dungeon you are in). The times are specified as sequence of numbers followed by letters (s=second, m=minute,h=hour,d=day). For example '/cat time dungeon1 5h30m' means dungeon1 will be reset every 5 and a half hours (starting from now). The time can also be a range, so 5h30m-6h30m would set the dungeon up to reset every 5.5 to 6.5 hours. The automatic reset is disabled by setting the reset time to zero (0s or 0m or 0h or 0d)
- Made some changes to hopefully avoid some secret door operation issues.
- Levers in dungeons now get cleared too when a dungeon is reset.
Release v1.2
- Added chance of finding enchanting tables (with book cases)
- Added potion making stands on the top of work benches.
- Worked around bug with tough AdvancedCombat creatures getting killed in one shot by enchanted weapons.
- Added a '/cat unplan <name>' command to discard a planned dungeon that hasn't been built. This is useful when unbuilt dungeons can't be built because they overlap.
- Fixed code so cash isn't give for kills outside the dungeon.
- Added options to automatically charge players to keep their gear on them when they die in dungeons. This saves cluttering the dungeons and everybody having to swap and sort out equipment every time anybody dies.
- 85% of experience levels are now saved for player deaths in dungeons.
- Fixed an AdvancedCombat bug there healers were able to heal dead players.
- Added taunt and aggro reducing moves to AdvancedCombat
- Sorted out some item durability balances for AdvancedCombat
- Fixed threat transfer bug on player death
- Added some more special rooms and fixed a couple of minor mapping bugs
- Added silverfish spawners (disabled them - don't have enough bukkit hooks yet)
- Removed legacy support for old MySQL databases (people have had plenty of time to convert to the new format), also removed use of lennardf1989 handy MyDatabase wrapper. There's nothing wrong with the wrapper itself it just seems much easier to work directly with sqlite (or MySQL) than the javax persistence routines. Now this is gone it is easier to save extra info to the database (which I'll be doing in v1.3).
- Prevented gold messages when players get 0 gold. Made the AdvancedCombat rewards obey the GoldOff configuration.
Release v1.1
- Added complex new combat mechanics See AdvancedCombat. This is off by default. Other than this new option this release is the same as v1.0
Release v1.0
- Added an option for blaze spawners
- Changed the default options so that secret doors will only work in dungeons by default
- Fixed the code so that dungeon resets don't reset secret doors when they are disabled in the config file.
- Added a style called 'grand' to the default config file that builds dungeons with wider corridors and larger rooms (more suitable for groups). Use '/cat style grand' to select this, then plan and build as normal.
- Added a new syntax to allow items with byte codes (like dyes and potions) to be given as loot. Put a '/' after the item name followed by the byte code e.g 'potion/1:10:1' would give one regen potion in 10% of the chests
- Added a '/cat reload' command to reload the config file in game (or from the console).
- Fixed the code so that arrow kills get rewarded too.
- Turned off a rather verbose console message that occurred when new options were being added to the config file.
Release v0.9
- Fixed an in-game Null pointer exception during planning caused by special end rooms
- Fixed bug which caused lava to be able to ignite things in dungeons
- Fixed problem getting stuck in walls when teleporting to the dungeon end
- Fixed problem with blocks getting messed up (byte code was lost) when reseting secret doors
- Fixed serious bug in the dungeon overlap checking code (now also reports offending dungeon)
- Confirmed spawner protection config option works. Set this to 'true' to force players to place torches around spawners to disable them rather than removing them.
- Converted code to use bukkit's new configuration code to avoid deprecated warnings during compile
- Dungeon maps now get saved as text files when dungeons are built
- Added a series of debug commands to help identify user problems (list <name>, dump, map)
- '/cat which' or '/cat ?' will now report the name of the dungeon in the crosshairs if you aren't in a dungeon (and it's close enough).
- Integrated lots of code related to boss mobs that will guard the final chest currently disabled while I run some more tests on it (due in v1.0)
Release v0.8
- Added arrow traps in random locations. Contents of the dispensers is configurable
- Added configuration to totally fill the area above the ceiling with dungeon blocks
- Added configuration to allow a dungeon reset button at the end of the dungeon
- Updates to allow most commands to be sent from the console (plan, scatter and gold commands need to be done in game at present).
- Added configuration to allow control over which blocks are breakable (these settings are server wide - not per dungeon). The default list contains torch,web and mushrooms.
- Added code to ensure chunks are loaded/fresh to solve teleport problems.
- Stopped Endermen placing blocks (only picking up blocks was blocked previously)
Release v0.7
- Added a couple of beds to the hut.
- Fixed bug, removed extra loot on double chest refills.
- Changed secret door code so it will work with any block (not just cobble/mossycobble)
- Changed suspend/enable dungeon commands so they work with ceilings that aren't cobble/mossycobble
- Added options to allow catacombs to be built from almost any pair of (non-gravity effected blocks). These are configured as part of the style in config.yml. Choose the blocks carefully. Don't come crying to me when the secret doors in your melon/pumpkin dungeon don't work or when your sand dungeons collapse. To control data values use "wool:13", "smooth_brick:2" etc for blue wool or cracked bricks respectively. The names must be valid bukkit names see here for the names Material.html The name check is not case sensitive.
- Added code to allow special (predefined) rooms to be included in the dungeon.
- Added configurations so you can choose the size of "Hut" you get at the top of the dungeon. Current options are default, small, tiny, pit, medium, large
- Dungeon builds happen over time rather than all at once.
- Added configuration to allow admins to control which blocks are considered natural. For example. If you add 'air' to the list (set the floor depth to 4 or set the UnderFill configuration to make sure you have room for secret doors) you can build down from the sky, for example.
- Added '/cat end <name>' to teleport admins to the end of the dungeon
- Changed reset/enable/suspend/goto/end commands so they default to the dungeon you are in if a dungeon name isn't given.
- Changed '/cat list' so it lists the dungeons in alphabetical order.
- Changed code so delete and reset commands teleport any players inside the dungeon up into the relative safety of the hut first (not the surface as before)
- Added checks to make sure dungeons can't be build that intersect
- Added checks to ensure dungeons are still all natural when you build them
- Uploaded the source code to https://github.com/Blockhead2/Catacombs
- Added code to prevent water and lava being picked up or put down in dungeon
- Added code to prevent lava pools burning your woolen or wood dungeons down.
Version 0.6
A number of changes to the config.yml this release. you might want to generate a fresh file and then make your changes.
- A big update to the Catacombs configuration system. The existing configuration file (config.yml) should still be ok (except for any custom loot lists you've done - sorry not auto converting this time because I mentioned it was temporary I will convert if the format changes again). Old files will have some redundant variables in it so rename config.yml and regen if you can.
- The chest loot is now fully configurable. See the examples in the config file. Create a line for each type of loot you want the chest to possibly contain. Each line should consist of 3 parts with ':' between them (no spaces). The names must be valid bukkit names see here for the names Material.html. The name check is case insensitive.
<name of the item>:<percentage chance>:<num>
or
<name of the item>:<percentage chance>:<min_num>-<max_num>
e.g diamond:50:3-5 There is a good chance of a handful of diamonds
- Added /style to report the dungeon style (default is 'catacomb')
- Added /style <name> to change to the dungeon planner/loot gen to a different style For example if you carefully add the lines below to your config.yml and then '/cat style grand' the values below will override the default 'catacomb' values where they both exist. Notice even the loot can be customized. Changing styles before calling '/cat reset <dungeon>' is handy if you want to define several of your own custom loot lists to refill chests with. Be warned the style is server wide and resets to 'catacomb' when you log.
grand:
Archway:
DoubleWidthPct: 100
Depth:
room: 4
Corridor:
Width3Pct: 20
Width2Pct: 80
Max: 15
Min: 6
Room:
Max: 20
Min: 8
Clutter:
ChestPct: 50
CorridorPct: 20
RadiusMax: 40
Loot:
Medium:
List:
- torch:100:32
- Here's an example of the kind of map you can get with the 'grand' settings and here is a Picture
- Added supported economy tools to the softdepend list in plugin.yml
- Added a configuration option to allow admins to block certain commands when players are inside an enabled dungeon. The default list is this:
Admin:
BannedCommands:
- /spawn
- /kill
- /warp
- /setwarp
- /home
Version 0.5
- Removed the need for a MySQL database (moved to a wrapped version of bukkit's integrated sqlite and java persistence to save the data - Credit to lennardf1989 for making the handy MyDatabase wrapper available). Existing MySQL databases will be converted into the new format during the first run. After this the existence of the sqlite file will mean the MySQL configuration options will be un-used. The raw map for each level is now also saved to the database which means that in future releases I'll be able to restore webs and mob spawners when a dungeon is reset.
- Part fixed the delete dungeon option. This now works without crashing the client by avoiding deleting the chests.
- Replaced my cash for monsters scheme with 'Register' (by Nijikokun) which provides support for multiple economy plugins (iConomy4/5/6, EssentialsEco, Currency, BOSEconomy6/7). The configuration variable Admin.Economy can be set to any of these values to iConomy/BOSEconomy/Essentials/Currency to control which one is used if several are present.
- Added admin configuration to turn off the listener that prevents Endermen picking up blocks. The default is 'false' which stops Endermen messing up the dungeon (maybe making it impassable).
- Added a '/cat suspend <name>' command to allow admins to light up a dungeon, to stop monsters spawning and to disable the block protection so that changes can be made. Also added '/cat enable <name>' to cancel suspend.
- Added a '/cat which' command to tell you the name of the dungeon you are in.
- Added a '/cat goto' command to teleport you to the top of the dungeon
- Added a '/cat recall' command that will teleport players to the top of the dungeon if they are within 4 blocks of the final chest on the bottom level.
- Stopped creepers outside dungeons damaging the dungeon.
- Fixed a multiworld bug when admins where in a different world to the dungeon they were deleting/unprotecting etc
Version 0.4
- Checked with Bukkit version 1185
- Stop Endermen moving blocks in dungeons as they can block corridors/rooms
- Added CaveSpider spawners
- Implemented '/cat plan <name> <depth> <radius>' command
- Added a '/cat resetall' command to reset all dungeons. This is handy on servers where some dungeons have been created and the admins want to schedule an automatic periodic reset (using a command scheduling plugin).
- Added crude loot configuration into config.yml (plan on adding more flexible scheme as some point in the future).
- Added code to kick players to the surface if they are in a dungeon being reset or deleted.
- Getting strange client side crashes with bukkit 1185 when deleting dungeons, this feature (delete) has been disabled for the moment.
Version 0.3
- Added Soul Sand into the floor in some rooms to slow movement down
- Increased the number of initial mushrooms in rooms that contain them
- Integrated with iConomy. If iConomy is present it will add looted coins to the users balance. Set "Admin.GoldOff = true" in the configuration to totally stop monsters in dungeons dropping gold. ...Gold.Min and ...Gold.Max can be used to configure the amount of coins dropped (N.B these are currently whole numbers not fractions).
- Added a "/cat reset <name>" command to reset a dungeon. This command closes doors, clears torches, refills the chests. Chests in the hut are left unchanged, other chests are cleared before being restocked. Mushrooms, spawners and webs aren't restocked if they have been destroyed.
- Added some extra tidy up during dungeon delete. One up shot of this is the trap door in the top hut is now destroyed correctly.
- Changed block place,damage,break routines to integrate better with other plugins
Version 0.2
- First public release of Catacombs