Significant performance increases, in some cases upwards of 90%. In most cases, ProtectionInteract was >100k nanoseconds. It is now 20k-ish. The Redstone event, which accounted for 50% of the cpu time, at 20k nanoseconds/event, is now around 2k-3k nanoseconds per event.
Vault Economy & Permissions support
Added fence gates to the default configuration
Less quiet exceptions when the updater fails for any reason
CreeperHeal support - do not remove protections if creeper heal is activated & enabled :)
Rewrote double door logic to be more reliable. It also does not reopen doors that are already closed.
Work around a difficult to reproduce exploit that appears to be caused by a Bukkit bug, exact cause unknown (not on LWC's end, but it prevents it now)
A block's protection history can be cycled through if you use the command /lwc info history
LWC 4.1.1
Minor bug fix for metrics
LWC 4.1.0
R6 and Minecraft 1.2 support
The following has been COMPLETELY REMOVED:
/lwc schedule;
/lwc menu;
/lwc dev;
/lwc admin config;
List support;
EasyNotify;
Job support (requirement for schedules);
Kick traps;
Ban traps;
Deprecated ProtectionTypes class (use the Protection.Type enum instead!)
Full LWC backups can be created using /lwc admin backup create -- this creates a full backup for the database and also every block along with it including any contents.
Backups can be restored using /lwc admin backup restore NAME where NAME is the backup's file name without the extension (.lwc or .lwc.gz). The backups are stored in plugins/LWC/backups/
At this time, the double chest side of double chests are not stored.
Any /lwc admin protectregion NAME to protect all protectable LWC blocks in a WorldGuard region to 'LWCWorldGuard', the owner can be changed via /lwc admin updateprotections set owner = 'NewOwner' where owner ='LWCWorldGuard' (sorry for being so long spunk!)
Fix: /cunlock could be used even after the correct password was used.
LWC 4.0.9
/lwc admin rebuild: a command to rebuild a wiped database, barring some missing data such as ACLs which is less important and unrecoverable without backups. See http://forums.bukkit.org/threads/60178/
LWC 4.0.8
Fix an exploit that allows some very dangerous commands to be executed on the server
LWC 4.0.7
Maintenance release to fix an index. Most servers will not notice any difference.
LWC 4.0.6
bPermissions group support
Allow the group prefix for matching groups via Permissions be changed in core.yml (and also change the default to group. instead of lwc.group.)
Don't allow freshly placed pressure plates to open a door that has the redstone flag
/lwc admin purge would interfere with LWC-Econ discount type IN_USE and not allow people to get discounted.
LWC 4.0.5
Fix gravity-matched blocks such as wooden sign, rails, lever, etc
Prevent players from using /lwc fix on protections they cannot administrate
LWC 4.0.4
Incompatible classes when a method's return type was changed, so 4.0.4 is a complete rebuild of 4.0.3, fixing some bugs
No source file changes except for plugin.yml
LWC 4.0.3
New: When removing one side of a protected double chest, it won't REMOVE the protection now.
New: Support custom protections via the data value ( 'id:data' , e.g '181:8' )
This means Industrial Craft, etc blocks that use the data value for the block are now supported individually.
Found another area where queries were being wasted when clicking on certain blocks
Fixes an exploit detailed by spunkiie which allows you to arbitrarily take over certain protections
Fix plugins/LWC/locale/lwc.properties - it was not being loaded properly
Fix removal of double step protections when a step is placed and protected
Fix automatic upgrade from sqlite->mysql
Only perform rights migration from LWC3 -> LWC4 once even if the old rights table fails to drop
Located and restored /lwc admin purgeregion - it went AWOL but has came back.
Fail with a more descriptive failure when LWC cannot connect to the database at startup
Fix an NPE in limitsv2 that is normally only found when using /climits
soft defend iConomy to fix a bug when using the serverBankAccount feature of LWC-Economy
Also soft depend Permissions & PermissionsBukkit again
NOTE: If you use LWC-Economy and/or LWC-Spout, you may need to upgrade them as well.
Group limits in limitsv2.yml are no longer case sensitive
Fix the SQLite libraries being placed in the wrong location - should be plugins/LWC/lib not plugins/LWC/lib/lib :)
Fix worldguard.allowProtectionsOutsideRegions: it was working in reverse (true meant it was blocked, false meant it was allowed)
LWC 4.0.2
Optimized out 1 to 2 unneeded queries that were used when touching a protected or unprotected door (for either they were two different things)
Fix a bug where converted rights from LWC 3 were 'not able to access protections'
Fix an exploit where a chest protection could be overridden by another protection in two very specific cases
Minor additions to /lwc credits -- upgrade MonsterTKE and add imaxorz
LWC 4.0.1
Fix the german locale's file encoding (latin-1 -> utf-8)
Fix a Spout bug (both in its RB and dev builds) that allow a sticky piston to destroy chests by pulling a wooden door over it
Fix a bug in converting rights from LWC3 -> 4 format when the table is a bit tainted
LWC 4.0.0
Licensing
LWC 4 is now licensed under the 2-clause BSD license
Translations
New translation! Hungarian, courtesy of dretax
Most languages have been fully updated to the latest changes.
Functionality
The following commands have been added: (see the wiki for more in depth info)
/lwc history
/lwc details
/lwc schedule
/lwc setup
/lwc fix
New sub commands for /lwc admin
Towny integration. You can now allow members of a specific Town access your Private protection, simply: /cmodify t:TownName or when creating it: /cprivate t:TownName
The WorldGuard feature has been rewritten to be easier to use and now includes a blacklist feature, so you can blacklist specific regions from having protections.
Add a new flag: AUTOCLOSE which makes a door automatically close after the configured amount of time in plugins/LWC/doors.yml. Usage: /cautoclose on|off
Allow Fence Gates to be automatically closed by the autoclose flag & doors.yml
Pressure plates will now be protected if they are placed in front of a door. Only players who have access to the protection can use the pressure plate.
If you use /credstone on on the door, no redstone except the attached pressure plate will work on the door, meaning now only those who have access to the protection can open it.
A protection's type can now be changed via /cmodify type e.g: /cmodify private will make a chest private. You can change a password (or change it TO password) via: /cmodify password ThePassword
Limits V2. New limits system that is a lot easier to manage and use -- see plugins/LWC/limitsv2.yml Example commands:
/climits now fully functions as it should! Give the new updated version a shot!
/lwc setup limits Hidendra default unlimited chest 5 -- give hidendra 5 chests and unlimited everything else
/lwc setup limits g:default 5 -- give the default group 5 protections
/lwc setup limits default 0 -- set the default amount of protections to 0
/lwc setup limits hidendra 54 10 96 1 -- example of using block ids instead of names (10 chests, 1 trap door)
add quiet under protections that can be set to a block that hides creation messages and notices
Cosmetics
/lwc admin report has been beautified
/cinfo has been given a new look and is now more helpful. It will give you a shortlist of players who can access a private protection if you have appropriate access to it.
Database
Changes to the database format that make it not possible to downgrade from LWC4 to LWC3. However, LWC will still upgrade from 3 to 4 ok.
All existing LWC 3 indexes have been wiped and LWC is now better indexed
Startup time has been dramatically reduced (to nil) for those with a huge protection set
More optimal caching techniques to ensure duplicate cache entries aren't present or created
Internal
The "bug 656 workaround" has been replaced with an automatic feature that does not need to be enabled, but is used when required
/lwc admin reload will now also reload the loaded locale file (including the one in plugins/LWC/locale/)
New & better updater. You can now subscribe to updates to the STABLE branch or BLEEDING_EDGE, which is the latest Jenkins builds.
Locale messages defined as null will now not send the message to the player
FIX: Protected blocks could be pulled with a sticky piston
FIX: Doors could be destroyed by using a piston to push a dirt block towards it.
FIX: Limits will now use the highest group limit instead of the first one found.
FIX: The magnet module would sometimes not work as expected when used across multiple worlds.
Metrics API for measuring plugin usage across the world using non-identifiable data.
Developed by myself, all implementation specific details and backends are open source.