UploadedNov 19, 2016
Supported Bukkit Versions
CoreProtect has an official IRC channel! Join #coreprotect on irc.esper.net | EsperNet Web IRC
NOTICE: Chest rollbacks are broken when using CoreProtect v2.13.2 on a clean install. To prevent this, first install CoreProtect v2.12.0, restart your server, and then upgrade to CoreProtect 2.13.2.
- Release for Spigot 1.9-1.10. This build contains all the changes in CoreProtect 2.14.0 and earlier, minus version specific features.
- Added check to determine if server is running Java 1.7 or higher before starting plugin.
- Changed MySQL connection handler to use a connection timeout instead of a network timeout.
- Fixed dynamic patching system failing to detect JAR file under certain conditions.
- Added logging for all 1.9/1.10 block and entity types.
- Improved internal patching system to dynamically detect new patches.
- Improved purges by having them defragment/recreate the entire database.
- Improved MySQL connection handling & SQLite index handling.
- Changed minimum requirements from Java 1.6 to Java 1.7.
- Fixed internal caches becoming corrupted if the database format (MySQL/SQLite) is switched via "/co reload".
- Fixed lookups with invalid radius parameters returning confusing results.
- Fixed being unable to use "block:skull" as a valid lookup parameter.
- Fixed "/co l u:<user> a:username" randomly failing due to an issue with the UUID cache.
- Fixed purges on SQlite databases failing under certain conditions. [TICKET-536]
- Fixed items dragged across slots in chests not being logged. [TICKET-550]
- Fixed right clicking with the inspector performing a lookup twice. [TICKET-539]
- Fixed slanted rails not being logged as broken when the adjacent block is removed. [TICKET-421]
- Added logging for adding/removing items on armor stands.
- Added logging for sticky pistons pulling blocks.
- Added a logChat function to the API.
- Added a logCommand function to the API.
- Fixed the "coreprotect.inspect" permission not granting access to the "/co l <page>" command.
- Fixed the blockLookup API function returning incorrectly formatted data.
- Added performPurge method to API.
- Added previously removed methods back into API, for compatibility with abandoned plugins.
- Added ability to restrict users, exclude users, and specify actions, for lookups/rollbacks/restores within the API.
- Improved lookup/rollback/restore commands, so that they now fail if an invalid block or entity name was entered.
- Fixed sapling growth failure being logged as sapling placement.
- Fixed broken ParseResult.getType() function in API.
- Fixed several ClassCastException and NullPointerException errors.
- Fixed broken ParseResult.getTypeId() function in API.
- Fixed named pets not retaining names after a rollback.
- Fixed plugin refusing to register with WorldEdit v6+.
- Fixed broken WorldEdit sign logging.
- Added logging for changes made by WorldEdit v6.
- Added logging for new (Minecraft 1.8) door types.
- Added logging for new (Minecraft 1.8) fence gate types.
- Added logging for banner colours and patterns.
- Added logging for armor stands.
- Added custom block names for lookups (granite, polished_granite, diorite, polished_diorite, andesite, and polished_andesite).
- Improved core logging; now uses block and entity names rather than block IDs.
- Improved lookups; they now use block and entity names rather than block IDs.
- Fixed MySQL not properly supporting UTF-8 characters.
- Fixed banners placed in chests not being logged.
- Fixed logging of paintings relying on Bukkit enum values.
- Fixed paintings not being able to rollback or restore in Minecraft 1.8+.
- Fixed item frames not being able to rollback or restore in Minecraft 1.8+.
- Fixed killing horses not logging correct data, such as the horse color.
- Fixed firing an arrow at an item frame logging as "#arrow", rather than the username of the player.
- Fixed server operators being unable to use "/co l u:#container".
- Fixed new MySQL installs not using UTF-8 as the default character set.
- Improved CoreProtect's internal versioning system.
- Added internal support for UUIDs.
- Added name change logging and lookups (action:username).
- Added a new config.yml option for disabling name change logging.
- Fixed EntityDeathEvent errors occurring when using the "MyPet" plugin.
- Fixed StructureGrowEvent errors occurring when another plugin creates a badly formed event.
- Fixed blocks visually disappearing from player inventories when using the inspector.
- Improved management of deprecated Bukkit methods.
- Added logging for items taken out of item frames.
- Added logging for snow generated by Snow Golems.
- Added logging for fire punched out by players.
- Added logging for crops trampled by players.
- Added logging for carpet and double plants broken by water/lava.
- Added support for rolling back & restoring double plants, such as sunflowers.
- Added description information for Minecraft 1.7 block types.
- Fixed "/co reload" not being able to switch between SQLite and MySQL.
- Fixed "coreprotect.lookup.block" permission controlling page lookups.
- Fixed placing stairs not logging the direction they were placed.
- Fixed rolling back a container not setting the correct container direction.
- Improved version system to better reflect the current version number.
- Improved API to use its own versioning system. Code changes are required to utilize the CoreProtect v2.0.8+ API. Updated example code can be found here: http://minerealm.com/community/viewtopic.php?f=32&t=14070
- Added support for usernames containing special characters.
- Added description information for Minecraft 1.6 block types.
- Fixed version system not working with non-standard number formats.
- Fixed replacing a block (ex: snow) not always logging the block removal.
- Fixed rare instances of "Asynchronous entity track" error on rollbacks/restores.
- Improved time taken for performing rollback/restore previews.
- Improved preview interface, now displays block count.
- Added "coreprotect.lookup.block" permission, for blocking block data lookups.
- Added "coreprotect.lookup.click" permission, for blocking interaction lookups.
- Added "coreprotect.lookup.container" permission, for blocking container lookups.
- Added "coreprotect.lookup.kill" permission, for blocking kill lookups.
- Fixed it so upgrades are able to continue if the enchantment data is invalid.
- Fixed entity data not being properly filtered out for rollback/restore previews.
- Fixed water from an ice block not logging as the person who broke the block.
- Fixed piston movement logging the piston extension as a placed block.
- Fixed placing pistons/chests/repeaters not logging the direction the block is facing.
- Fixed asynchronous entity tracking error on the player chat event.
- Fixed rare instances of starting a purge causing the plugin to lock up.
- Fixed not being able to exclude non-standard block IDs in commands.
- Fixed running a purge showing "database busy" instead of "purge in progress".
- Fixed version managing system enforcing arbitrary limits on the version number.
- Fixed custom potions in containers throwing NotSerializableException errors.
- Fixed ClassCastException errors for rollbacks/restores when a container type is changed.
- Fixed killing an entity with a splash potion not logging the username of the killer.
- Fixed player names not always linking to broken item frames / paintings.
- Fixed skulls, cobwebs and tripwire broken by water/lava not being logged.
- Fixed null pointer when accessing API if CoreProtect hasn't yet initialized.
- Fixed TNT minecart explosions logging as "#explosion" instead of "#tnt"
- Fixed multiple users modifying a container at once causing discrepancies in the logs.
- Fixed not being able to do a "#container" rollback after inspecting a chest.
- Fixed custom pagination on container lookups not persisting across pages.
- Fixed a single user being able to start conflicting rollbacks simultaneously.
- Added automatic patching system for CoreProtect database changes.
- Added support for non-standard text length (for usernames/signs).
- Added container transaction support for droppers, hoppers and trapped chests.
- Added support for logging commands stored in command blocks.
- Added complete support for Minecraft 1.5 block types.
- Fixed flower pots not being logged when the block under them is broken.
- Fixed item frames / paintings not logging if destroyed by an obstruction.
- Improved item frame / painting rollback accuracy, by making them run delayed.
- Added player interaction logging for note blocks.
- Added logging for blocks destroyed by Silverfish.
- Fixed it so errors aren't shown on startup if the update server is down.
- Fixed breaking both sides of a double chest quickly causing discrepancies in the logs.
- Fixed TNT destroying double chests logging double the amount of items removed.
- Fixed WorldEdit logging not working if CoreProtect initialized before WorldEdit.
- Fixed certain SNAPSHOT versions of WorldEdit not being compatible with CoreProtect.
- Fixed falling sand/gravel (etc) from above a broken block not being logged.
- Fixed interaction logging so it only works for right clicks.
- Added interaction logging for repeaters, wooden buttons, anvils, hoppers and droppers.
- Improved error message if WorldEdit logging is unable to initialize.
- Further improved performance of event processing.
- Fixed errors being thrown if an arrow is shot by a non-entity.
- Fixed no error message displaying when invalid command entered.
- Added ability to use aliases for help commands (ex: "/co help l")
- Added "/co ro", "/co re", "/co rb" and "/co rs" as command shortcuts.
- Sped up rollbacks/restores, making them run nearly twice as fast.
- Sped up event processing, for even less time spent in the main server thread.
- Fixed errors on startup for systems using non-standard decimal formatting.
- Fixed "coreprotect.*" permission not giving access to reload command.
- Fixed bug with rolled back redstone torches (etc) not always putting out power.
- Fixed bug with rolled back glowstone blocks (etc) not always lighting up surrounding area.
- Fixed MySQL upgrades so invalid enchantment data is filtered out.
- Fixed it so the upgrade still continues properly if the config.yml file is missing.
- Fixed it so if the upgrade fails, database connections are closed so the server doesn't lock up.
- Fixed it so "apply", "cancel", "undo", and "near" aliases use parent permissions.
- Changed it so any child permission can be used as a negative permission against "coreprotect.*"
- Added "coreprotect.lookup.chat" permission, for blocking chat lookups.
- Added "coreprotect.lookup.command" permission, for blocking command lookups.
- Added "coreprotect.lookup.session" permission, for blocking session lookups.
- Changed it so MySQL databases use a more efficient database structure.
- Made it so flat file storage is now done via a single SQLite database.
- Future proof. Can now properly handle non-standard data types.
- Made it so all logging events now use a consumer, rather than generating new threads.
- Made it so block names now display on the lookup page.
- Made it so chests broken in explosions log the items that were in the chest.
- Cleaned up the interface and implemented a new colour theme.
- Made it so using the inspector now does a full block lookup.
- Made it so item transactions now log ALL item data (enchantments, item names, etc)
- Made it so all skull data, such as skull owners and skull rotation, is logged.
- Made it so radius lookups no longer require a time parameter (ex: "/co l r:10" for all nearby data).
- Made it so lookups can now do block-type only searches (ex: "/co l b:56 t:1d")
- Added a default radius of 10, which is auto added if you don't specify a radius. Changeable in config.yml
- Added a maximum radius of 100. Use "r:#global" to do a global search. Changeable in config.yml
- Made it so if you're inside a block that gets rolled back or restored, you get teleported on top of it.
- Added ability to specify number of results shown on lookup pages by using "/co l <page>:<results>".
- Added "/co reload" command for reloading configuration. Permissions can be set with "coreprotect.reload" node.
- Changed "noisy" to "#verbose". Also added a "#silent" option tag for rollback/restores if verbose mode is enabled.
- Added ability to specify multiple users in a rollback/restore/lookup (ex: "/co l u:Notch,Intelli t:1d")
- Added ability to exclude users (ex: "/co l r:5 e:Notch"). Can be used in combination with block ID's.
- Added ability to do global world lookups/rollbacks/restores. (Ex: "/co l u:Notch t:1d r:#nether")
- Made it so purges now use regular time syntax, but require a minimum time of 30 days unless run via console.
- Added ability to create per-world config files, that match the world folder name (ex: world_the_end.yml).
- Added "a:<action>" option for rollback/restores/lookups. See "/co help actions" for info.
- Added ability to search the last inspected container by using "/co l u:#container <params>".
- Added ability to rollback/restore the last inspected container (ex: "/co rollback u:#container,Notch t:1d").
- Added ability to have items taken from containers (etc) rollback by enabling "rollback-items" in config.yml
- Made it so adding "#count" to the end of a lookup command returns the # of rows found.
- Added ability to preview rollbacks/restores by adding "#preview" to the end of your command.
- Added "/co undo" alias as a shortcut to undo a rollback/restore via the opposite action.
- Added "/co near" alias as a shortcut to do a lookup with a radius of 5.
- Added chat logging. Search using "/co l u:Notch a:chat" or "/co l a:chat"
- Added command logging. search using "/co l u:Notch a:command" or "/co l a:command"
- Added login/logout logging. Search using "/co l u:Notch a:login" (etc).
- Made it so all new configuration values are by default enabled for less confusion.
- Added entity kill logging. Search using "/co l u:Notch t:1d a:kill" (etc).
- Added ability to rollback entity kills (ex: "/co rollback a:kill r:5 t:1d")
- Added ability to automatically rollback/restore mob deaths by enabling "rollback-entities" in config.yml
- Added ability to use worldedit selections by using "r:#worldedit" (or just "r:#we").
- Created a Tekkit version of CoreProtect 2.0
- Improved the base code and fixed a ton of minor bugs.
Chest rollbacks are broken when using CoreProtect v2.13.2 on a clean install. To prevent this, first install CoreProtect v2.12.0 restart your server, and then upgrade to CoreProtect 2.13.2.