diff --git a/gradle.properties b/gradle.properties index 83036c8..8c7199f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx2G group=com.griefcraft -version=2.4.0 +version=2.4.1 description=Inventory protection & management utilizing SQLite or MySQL as its backend. github=https://github.com/pop4959/LWCX diff --git a/src/main/java/com/griefcraft/listeners/LWCBlockListener.java b/src/main/java/com/griefcraft/listeners/LWCBlockListener.java index d0b832b..7d073d9 100644 --- a/src/main/java/com/griefcraft/listeners/LWCBlockListener.java +++ b/src/main/java/com/griefcraft/listeners/LWCBlockListener.java @@ -471,6 +471,14 @@ public void onBlockPlaceMonitor(BlockPlaceEvent event) { Protection current = lwc.findProtection(block.getLocation()); if (current != null) { if (!current.isBlockInWorld()) { + // Try updating the protection if the player is admin + if (lwc.canAdminProtection(player, current)) { + // Update the protection, this block is being replaced + BlockCache blockCache = BlockCache.getInstance(); + current.setBlockId(blockCache.getBlockId(event.getBlock())); + current.save(); + return; + } // Removing corrupted protection current.remove(); } else { diff --git a/src/main/java/com/griefcraft/modules/modes/BaseModeModule.java b/src/main/java/com/griefcraft/modules/modes/BaseModeModule.java index 1420aa0..c2ffed4 100644 --- a/src/main/java/com/griefcraft/modules/modes/BaseModeModule.java +++ b/src/main/java/com/griefcraft/modules/modes/BaseModeModule.java @@ -60,11 +60,9 @@ public void onCommand(LWCCommandEvent event) { String mode = args[0].toLowerCase(); Player player = (Player) sender; - if (!lwc.isModeWhitelisted(player, mode)) { - if (!lwc.isAdmin(sender) && !lwc.isModeEnabled(mode)) { - lwc.sendLocale(player, "protection.modes.disabled"); - return; - } + if (!lwc.isModeEnabled(mode) || (!lwc.isModeWhitelisted(player, mode) && !lwc.isAdmin(sender))) { + lwc.sendLocale(player, "protection.modes.disabled"); + return; } event.setCancelled(false);