Optional permission caching

This commit is contained in:
boy0001 2015-03-12 20:28:08 +11:00
parent a1d476321f
commit 27f6675d8f
3 changed files with 20 additions and 11 deletions

View File

@ -781,6 +781,9 @@ public class PlotSquared {
options.put("max_plots", Settings.MAX_PLOTS); options.put("max_plots", Settings.MAX_PLOTS);
options.put("schematics.save_path", Settings.SCHEMATIC_SAVE_PATH); options.put("schematics.save_path", Settings.SCHEMATIC_SAVE_PATH);
options.put("uuid.read-from-disk", Settings.UUID_FROM_DISK); options.put("uuid.read-from-disk", Settings.UUID_FROM_DISK);
options.put("cache.permissions", Settings.PERMISSION_CACHING);
options.put("titles", Settings.TITLES); options.put("titles", Settings.TITLES);
options.put("teleport.on_login", Settings.TELEPORT_ON_LOGIN); options.put("teleport.on_login", Settings.TELEPORT_ON_LOGIN);
options.put("worldedit.require-selection-in-mask", Settings.REQUIRE_SELECTION); options.put("worldedit.require-selection-in-mask", Settings.REQUIRE_SELECTION);
@ -795,6 +798,7 @@ public class PlotSquared {
log(C.PREFIX.s() + "&6Debug Mode Enabled (Default). Edit the config to turn this off."); log(C.PREFIX.s() + "&6Debug Mode Enabled (Default). Edit the config to turn this off.");
} }
Settings.PERMISSION_CACHING = config.getBoolean("cache.permissions");
Settings.CONFIRM_CLEAR = config.getBoolean("confirmation.clear"); Settings.CONFIRM_CLEAR = config.getBoolean("confirmation.clear");
Settings.CONFIRM_DELETE = config.getBoolean("confirmation.delete"); Settings.CONFIRM_DELETE = config.getBoolean("confirmation.delete");
Settings.CONFIRM_UNLINK = config.getBoolean("confirmation.unlink"); Settings.CONFIRM_UNLINK = config.getBoolean("confirmation.unlink");

View File

@ -32,6 +32,7 @@ public class Settings {
* Default UUID_FECTHING: false * Default UUID_FECTHING: false
*/ */
public static boolean UUID_FECTHING = false; public static boolean UUID_FECTHING = false;
public static boolean PERMISSION_CACHING = false;
public static boolean UUID_FROM_DISK = false; public static boolean UUID_FROM_DISK = false;
/** /**
* *

View File

@ -5,6 +5,7 @@ import java.util.UUID;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.util.bukkit.BukkitUtil; import com.intellectualcrafters.plot.util.bukkit.BukkitUtil;
import com.intellectualcrafters.plot.util.bukkit.UUIDHandler; import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
@ -40,6 +41,7 @@ public class BukkitPlayer implements PlotPlayer {
@Override @Override
public boolean hasPermission(final String perm) { public boolean hasPermission(final String perm) {
if (Settings.PERMISSION_CACHING) {
if (this.noPerm.contains(perm)) { if (this.noPerm.contains(perm)) {
return false; return false;
} }
@ -54,6 +56,8 @@ public class BukkitPlayer implements PlotPlayer {
this.hasPerm.add(perm); this.hasPerm.add(perm);
return true; return true;
} }
return this.player.hasPermission(perm);
}
@Override @Override
public void sendMessage(final String message) { public void sendMessage(final String message) {