Added more settings/permissions on request.

This commit is contained in:
NeatMonster 2012-08-18 16:57:54 +02:00
parent 858f610e79
commit 811b1d4023
7 changed files with 104 additions and 94 deletions

View File

@ -70,14 +70,14 @@ public class LogAction extends ActionWithParameters {
if (configurationFile.getBoolean(ConfPaths.LOGGING_ACTIVE) if (configurationFile.getBoolean(ConfPaths.LOGGING_ACTIVE)
&& !violationData.player.hasPermission(violationData.actions.permissionSilent)) { && !violationData.player.hasPermission(violationData.actions.permissionSilent)) {
final String message = super.getMessage(violationData); final String message = super.getMessage(violationData);
if (toChat && configurationFile.getBoolean(ConfPaths.LOGGING_LOGTOINGAMECHAT)) if (toChat && configurationFile.getBoolean(ConfPaths.LOGGING_INGAMECHAT))
for (final Player otherPlayer : Bukkit.getServer().getOnlinePlayers()) for (final Player otherPlayer : Bukkit.getServer().getOnlinePlayers())
if (otherPlayer.hasPermission(Permissions.ADMINISTRATION_NOTIFY)) if (otherPlayer.hasPermission(Permissions.ADMINISTRATION_NOTIFY))
otherPlayer.sendMessage(ChatColor.RED + "NCP: " + ChatColor.WHITE otherPlayer.sendMessage(ChatColor.RED + "NCP: " + ChatColor.WHITE
+ CheckUtils.replaceColors(message)); + CheckUtils.replaceColors(message));
if (toConsole && configurationFile.getBoolean(ConfPaths.LOGGING_LOGTOCONSOLE)) if (toConsole && configurationFile.getBoolean(ConfPaths.LOGGING_CONSOLE))
System.out.println("[NoCheatPlus] " + CheckUtils.removeColors(message)); System.out.println("[NoCheatPlus] " + CheckUtils.removeColors(message));
if (toFile && configurationFile.getBoolean(ConfPaths.LOGGING_LOGTOFILE)) if (toFile && configurationFile.getBoolean(ConfPaths.LOGGING_FILE))
CheckUtils.fileLogger.info(CheckUtils.removeColors(message)); CheckUtils.fileLogger.info(CheckUtils.removeColors(message));
} }
return false; return false;

View File

@ -89,16 +89,19 @@ public class ChatListener implements Listener {
final String command = event.getMessage().split(" ")[0].substring(1).toLowerCase(); final String command = event.getMessage().split(" ")[0].substring(1).toLowerCase();
// Protect some commands to prevent players for seeing which plugins are installed. // Protect some commands to prevent players for seeing which plugins are installed.
if (ChatConfig.getConfig(player).protectPlugins if (ChatConfig.getConfig(player).protectPlugins)
&& (command.equals("?") || command.equals("about") || command.equals("help") if ((command.equalsIgnoreCase("help") || command.equalsIgnoreCase("?"))
|| command.equals("plugins") || command.equals("pl")) && !player.hasPermission(Permissions.ADMINISTRATION_BUKKIT_HELP)
&& !player.hasPermission(Permissions.ADMINISTRATION_PLUGINS)) { || (command.equalsIgnoreCase("plugins") || command.equalsIgnoreCase("pl"))
event.getPlayer().sendMessage( && !player.hasPermission(Permissions.ADMINISTRATION_BUKKIT_PLUGINS)
ChatColor.RED + "I'm sorry, but you do not have permission to perform this command. " || (command.equalsIgnoreCase("version") || command.equalsIgnoreCase("ver"))
+ "Please contact the server administrators if you believe that this is in error."); && !player.hasPermission(Permissions.ADMINISTRATION_BUKKIT_VERSION)) {
event.setCancelled(true); event.getPlayer().sendMessage(
return; ChatColor.RED + "I'm sorry, but you do not have permission to perform this command. "
} + "Please contact the server administrators if you believe that this is in error.");
event.setCancelled(true);
return;
}
// Prevent /op and /deop commands from being used in chat. // Prevent /op and /deop commands from being used in chat.
if (ChatConfig.getConfig(player).opInConsoleOnly && (command.equals("op") || command.equals("deop"))) { if (ChatConfig.getConfig(player).opInConsoleOnly && (command.equals("op") || command.equals("deop"))) {

View File

@ -25,10 +25,11 @@ public abstract class ConfPaths {
*/ */
private static final String LOGGING = "logging."; private static final String LOGGING = "logging.";
public static final String LOGGING_ACTIVE = LOGGING + "active"; public static final String LOGGING_ACTIVE = LOGGING + "active";
public static final String LOGGING_LOGTOFILE = LOGGING + "file"; public static final String LOGGING_CONSOLE = LOGGING + "console";
public static final String LOGGING_LOGTOCONSOLE = LOGGING + "console"; public static final String LOGGING_DEBUG = LOGGING + "debug";
public static final String LOGGING_LOGTOINGAMECHAT = LOGGING + "ingamechat"; public static final String LOGGING_FILE = LOGGING + "file";
public static final String LOGGING_DEBUGMESSAGES = LOGGING + "debugmessages"; public static final String LOGGING_FILENAME = LOGGING + "filename";
public static final String LOGGING_INGAMECHAT = LOGGING + "ingamechat";
/* /*
* e e ,e, 888 888 * e e ,e, 888 888

View File

@ -166,7 +166,7 @@ public class ConfigManager {
fileHandler = null; fileHandler = null;
} }
final File logFile = new File(folder, "nocheatplus.log"); final File logFile = new File(folder, global.getString(ConfPaths.LOGGING_FILENAME));
try { try {
try { try {
logFile.getParentFile().mkdirs(); logFile.getParentFile().mkdirs();

View File

@ -36,10 +36,11 @@ public class DefaultConfig extends ConfigFile {
* "8",P" "8",P" "8",P" * "8",P" "8",P" "8",P"
*/ */
set(ConfPaths.LOGGING_ACTIVE, true); set(ConfPaths.LOGGING_ACTIVE, true);
set(ConfPaths.LOGGING_DEBUGMESSAGES, false); set(ConfPaths.LOGGING_DEBUG, false);
set(ConfPaths.LOGGING_LOGTOFILE, true); set(ConfPaths.LOGGING_CONSOLE, true);
set(ConfPaths.LOGGING_LOGTOCONSOLE, true); set(ConfPaths.LOGGING_FILE, true);
set(ConfPaths.LOGGING_LOGTOINGAMECHAT, true); set(ConfPaths.LOGGING_FILENAME, "nocheatplus.log");
set(ConfPaths.LOGGING_INGAMECHAT, true);
/* /*
* e e ,e, 888 888 * e e ,e, 888 888

View File

@ -13,7 +13,7 @@ package fr.neatmonster.nocheatplus.players;
* The various permission nodes used by NoCheatPlus. * The various permission nodes used by NoCheatPlus.
*/ */
public class Permissions { public class Permissions {
private static final String NOCHEATPLUS = "nocheatplus"; private static final String NOCHEATPLUS = "nocheatplus";
/* /*
* e Y8b 888 ,e, ,e, d8 d8 ,e, * e Y8b 888 ,e, ,e, d8 d8 ,e,
@ -22,12 +22,17 @@ public class Permissions {
* d888888888b Y888 888 888 888 888 888 888 888 888 Y88D 888 888 ,ee 888 888 888 Y888 888P 888 888 * d888888888b Y888 888 888 888 888 888 888 888 888 Y88D 888 888 ,ee 888 888 888 Y888 888P 888 888
* d8888888b Y8b "88 888 888 888 888 888 888 888 888 d,dP 888 888 "88 888 888 888 "88 88" 888 888 * d8888888b Y8b "88 888 888 888 888 888 888 888 888 d,dP 888 888 "88 888 888 888 "88 88" 888 888
*/ */
private static final String ADMINISTRATION = NOCHEATPLUS + ".admin"; private static final String ADMINISTRATION = NOCHEATPLUS + ".admin";
public static final String ADMINISTRATION_NOTIFY = ADMINISTRATION + ".notify";
public static final String ADMINISTRATION_PLUGINS = ADMINISTRATION + ".plugins";
public static final String ADMINISTRATION_RELOAD = ADMINISTRATION + ".reload";
private static final String CHECKS = NOCHEATPLUS + ".checks"; private static final String ADMINISTRATION_BUKKIT = ADMINISTRATION + ".bukkit";
public static final String ADMINISTRATION_BUKKIT_HELP = ADMINISTRATION_BUKKIT + ".help";
public static final String ADMINISTRATION_BUKKIT_PLUGINS = ADMINISTRATION_BUKKIT + ".plugins";
public static final String ADMINISTRATION_BUKKIT_VERSION = ADMINISTRATION_BUKKIT + ".version";
public static final String ADMINISTRATION_NOTIFY = ADMINISTRATION + ".notify";
public static final String ADMINISTRATION_RELOAD = ADMINISTRATION + ".reload";
private static final String CHECKS = NOCHEATPLUS + ".checks";
/* /*
* 888 88b, 888 888 888 88b, 888 * 888 88b, 888 888 888 88b, 888
@ -36,11 +41,11 @@ public class Permissions {
* 888 88b, 888 Y888 888P Y888 , 888 b 888 88b, 888 888 , ,ee 888 888 b * 888 88b, 888 Y888 888P Y888 , 888 b 888 88b, 888 888 , ,ee 888 888 b
* 888 88P' 888 "88 88" "88,e8' 888 8b 888 88P' 888 "YeeP" "88 888 888 8b * 888 88P' 888 "88 88" "88,e8' 888 8b 888 88P' 888 "YeeP" "88 888 888 8b
*/ */
private static final String BLOCKBREAK = CHECKS + ".blockbreak"; private static final String BLOCKBREAK = CHECKS + ".blockbreak";
public static final String BLOCKBREAK_DIRECTION = BLOCKBREAK + ".direction"; public static final String BLOCKBREAK_DIRECTION = BLOCKBREAK + ".direction";
public static final String BLOCKBREAK_FASTBREAK = BLOCKBREAK + ".fastbreak"; public static final String BLOCKBREAK_FASTBREAK = BLOCKBREAK + ".fastbreak";
public static final String BLOCKBREAK_NOSWING = BLOCKBREAK + ".noswing"; public static final String BLOCKBREAK_NOSWING = BLOCKBREAK + ".noswing";
public static final String BLOCKBREAK_REACH = BLOCKBREAK + ".reach"; public static final String BLOCKBREAK_REACH = BLOCKBREAK + ".reach";
/* /*
* 888 88b, 888 888 888 d8 d8 * 888 88b, 888 888 888 d8 d8
@ -49,9 +54,9 @@ public class Permissions {
* 888 88b, 888 Y888 888P Y888 , 888 b 888 888 888 888 888 , 888 ,ee 888 Y888 , 888 * 888 88b, 888 Y888 888P Y888 , 888 b 888 888 888 888 888 , 888 ,ee 888 Y888 , 888
* 888 88P' 888 "88 88" "88,e8' 888 8b 888 888 888 888 "YeeP" 888 "88 888 "88,e8' 888 * 888 88P' 888 "88 88" "88,e8' 888 8b 888 888 888 888 "YeeP" 888 "88 888 "88,e8' 888
*/ */
private static final String BLOCKINTERACT = CHECKS + ".blockinteract"; private static final String BLOCKINTERACT = CHECKS + ".blockinteract";
public static final String BLOCKINTERACT_DIRECTION = BLOCKINTERACT + ".direction"; public static final String BLOCKINTERACT_DIRECTION = BLOCKINTERACT + ".direction";
public static final String BLOCKINTERACT_REACH = BLOCKINTERACT + ".reach"; public static final String BLOCKINTERACT_REACH = BLOCKINTERACT + ".reach";
/* /*
* 888 88b, 888 888 888 88e 888 * 888 88b, 888 888 888 88e 888
@ -60,12 +65,12 @@ public class Permissions {
* 888 88b, 888 Y888 888P Y888 , 888 b 888 888 ,ee 888 Y888 , 888 , * 888 88b, 888 Y888 888P Y888 , 888 b 888 888 ,ee 888 Y888 , 888 ,
* 888 88P' 888 "88 88" "88,e8' 888 8b 888 888 "88 888 "88,e8' "YeeP" * 888 88P' 888 "88 88" "88,e8' 888 8b 888 888 "88 888 "88,e8' "YeeP"
*/ */
private static final String BLOCKPLACE = CHECKS + ".blockplace"; private static final String BLOCKPLACE = CHECKS + ".blockplace";
public static final String BLOCKPLACE_DIRECTION = BLOCKPLACE + ".direction"; public static final String BLOCKPLACE_DIRECTION = BLOCKPLACE + ".direction";
public static final String BLOCKPLACE_FASTPLACE = BLOCKPLACE + ".fastplace"; public static final String BLOCKPLACE_FASTPLACE = BLOCKPLACE + ".fastplace";
public static final String BLOCKPLACE_NOSWING = BLOCKPLACE + ".noswing"; public static final String BLOCKPLACE_NOSWING = BLOCKPLACE + ".noswing";
public static final String BLOCKPLACE_REACH = BLOCKPLACE + ".reach"; public static final String BLOCKPLACE_REACH = BLOCKPLACE + ".reach";
public static final String BLOCKPLACE_SPEED = BLOCKPLACE + ".speed"; public static final String BLOCKPLACE_SPEED = BLOCKPLACE + ".speed";
/* /*
* e88'Y88 888 d8 * e88'Y88 888 d8
@ -74,9 +79,9 @@ public class Permissions {
* Y888 ,d 888 888 ,ee 888 888 * Y888 ,d 888 888 ,ee 888 888
* "88,d88 888 888 "88 888 888 * "88,d88 888 888 "88 888 888
*/ */
private static final String CHAT = CHECKS + ".chat"; private static final String CHAT = CHECKS + ".chat";
public static final String CHAT_COLOR = CHAT + ".color"; public static final String CHAT_COLOR = CHAT + ".color";
public static final String CHAT_NOPWNAGE = CHAT + ".nopwnage"; public static final String CHAT_NOPWNAGE = CHAT + ".nopwnage";
/* /*
* 888'Y88 ,e, 888 d8 * 888'Y88 ,e, 888 d8
@ -87,16 +92,16 @@ public class Permissions {
* , 88P * , 88P
* "8",P" * "8",P"
*/ */
private static final String FIGHT = CHECKS + ".fight"; private static final String FIGHT = CHECKS + ".fight";
public static final String FIGHT_ANGLE = FIGHT + ".angle"; public static final String FIGHT_ANGLE = FIGHT + ".angle";
public static final String FIGHT_CRITICAL = FIGHT + ".critical"; public static final String FIGHT_CRITICAL = FIGHT + ".critical";
public static final String FIGHT_DIRECTION = FIGHT + ".direction"; public static final String FIGHT_DIRECTION = FIGHT + ".direction";
public static final String FIGHT_GODMODE = FIGHT + ".godmode"; public static final String FIGHT_GODMODE = FIGHT + ".godmode";
public static final String FIGHT_INSTANTHEAL = FIGHT + ".instantheal"; public static final String FIGHT_INSTANTHEAL = FIGHT + ".instantheal";
public static final String FIGHT_KNOCKBACK = FIGHT + ".knockback"; public static final String FIGHT_KNOCKBACK = FIGHT + ".knockback";
public static final String FIGHT_NOSWING = FIGHT + ".noswing"; public static final String FIGHT_NOSWING = FIGHT + ".noswing";
public static final String FIGHT_REACH = FIGHT + ".reach"; public static final String FIGHT_REACH = FIGHT + ".reach";
public static final String FIGHT_SPEED = FIGHT + ".speed"; public static final String FIGHT_SPEED = FIGHT + ".speed";
/* /*
* 888 d8 * 888 d8
@ -107,10 +112,10 @@ public class Permissions {
* 888 * 888
* 888 * 888
*/ */
private static final String INVENTORY = CHECKS + ".inventory"; private static final String INVENTORY = CHECKS + ".inventory";
public static final String INVENTORY_DROP = INVENTORY + ".drop"; public static final String INVENTORY_DROP = INVENTORY + ".drop";
public static final String INVENTORY_INSTANTBOW = INVENTORY + ".instantbow"; public static final String INVENTORY_INSTANTBOW = INVENTORY + ".instantbow";
public static final String INVENTORY_INSTANTEAT = INVENTORY + ".instanteat"; public static final String INVENTORY_INSTANTEAT = INVENTORY + ".instanteat";
/* /*
* e e ,e, * e e ,e,
@ -121,17 +126,17 @@ public class Permissions {
* , 88P * , 88P
* "8",P" * "8",P"
*/ */
private static final String MOVING = CHECKS + ".moving"; private static final String MOVING = CHECKS + ".moving";
public static final String MOVING_BOATSANYWHERE = MOVING + ".boatsanywhere"; public static final String MOVING_BOATSANYWHERE = MOVING + ".boatsanywhere";
public static final String MOVING_CREATIVEFLY = MOVING + ".creativefly"; public static final String MOVING_CREATIVEFLY = MOVING + ".creativefly";
public static final String MOVING_MOREPACKETS = MOVING + ".morepackets"; public static final String MOVING_MOREPACKETS = MOVING + ".morepackets";
public static final String MOVING_MOREPACKETSVEHICLE = MOVING + ".morepacketsvehicle"; public static final String MOVING_MOREPACKETSVEHICLE = MOVING + ".morepacketsvehicle";
public static final String MOVING_NOFALL = MOVING + ".nofall"; public static final String MOVING_NOFALL = MOVING + ".nofall";
public static final String MOVING_OVERRIDEBUKKIT = MOVING + ".overridebukkit"; public static final String MOVING_OVERRIDEBUKKIT = MOVING + ".overridebukkit";
public static final String MOVING_SURVIVALFLY = MOVING + ".survivalfly"; public static final String MOVING_SURVIVALFLY = MOVING + ".survivalfly";
public static final String MOVING_SURVIVALFLY_BLOCKING = MOVING_SURVIVALFLY + ".blocking"; public static final String MOVING_SURVIVALFLY_BLOCKING = MOVING_SURVIVALFLY + ".blocking";
public static final String MOVING_SURVIVALFLY_SNEAKING = MOVING_SURVIVALFLY + ".sneaking"; public static final String MOVING_SURVIVALFLY_SNEAKING = MOVING_SURVIVALFLY + ".sneaking";
public static final String MOVING_SURVIVALFLY_SPRINTING = MOVING_SURVIVALFLY + ".sprinting"; public static final String MOVING_SURVIVALFLY_SPRINTING = MOVING_SURVIVALFLY + ".sprinting";
/* /*
* e e 888 ,e, dP,e, ,e, d8 ,e, * e e 888 ,e, dP,e, ,e, d8 ,e,
@ -140,32 +145,32 @@ public class Permissions {
* d8b Y8b Y8b Y888 888P Y888 888 888 888 888 Y888 , ,ee 888 888 888 Y888 888P 888 888 Y88D * d8b Y8b Y8b Y888 888P Y888 888 888 888 888 Y888 , ,ee 888 888 888 Y888 888P 888 888 Y88D
* d888b Y8b Y8b "88 88" "88 888 888 888 888 "88,e8' "88 888 888 888 "88 88" 888 888 d,dP * d888b Y8b Y8b "88 88" "88 888 888 888 888 "88,e8' "88 888 888 888 "88 88" 888 888 d,dP
*/ */
private static final String MODS = NOCHEATPLUS + ".mods"; private static final String MODS = NOCHEATPLUS + ".mods";
private static final String CJB = MODS + ".cjb"; private static final String CJB = MODS + ".cjb";
public static final String CJB_FLY = CJB + ".fly"; public static final String CJB_FLY = CJB + ".fly";
public static final String CJB_RADAR = CJB + ".radar"; public static final String CJB_RADAR = CJB + ".radar";
public static final String CJB_XRAY = CJB + ".xray"; public static final String CJB_XRAY = CJB + ".xray";
private static final String MINECRAFTAUTOMAP = MODS + ".minecraftautomap"; private static final String MINECRAFTAUTOMAP = MODS + ".minecraftautomap";
public static final String MINECRAFTAUTOMAP_CAVE = MINECRAFTAUTOMAP + ".cave"; public static final String MINECRAFTAUTOMAP_CAVE = MINECRAFTAUTOMAP + ".cave";
public static final String MINECRAFTAUTOMAP_ORES = MINECRAFTAUTOMAP + ".ores"; public static final String MINECRAFTAUTOMAP_ORES = MINECRAFTAUTOMAP + ".ores";
public static final String MINECRAFTAUTOMAP_RADAR = MINECRAFTAUTOMAP + ".radar"; public static final String MINECRAFTAUTOMAP_RADAR = MINECRAFTAUTOMAP + ".radar";
private static final String REI = MODS + ".rei"; private static final String REI = MODS + ".rei";
public static final String REI_CAVE = REI + ".cave"; public static final String REI_CAVE = REI + ".cave";
public static final String REI_RADAR = REI + ".radar"; public static final String REI_RADAR = REI + ".radar";
private static final String SMARTMOVING = MODS + ".smartmoving"; private static final String SMARTMOVING = MODS + ".smartmoving";
public static final String SMARTMOVING_CLIMBING = SMARTMOVING + ".climbing"; public static final String SMARTMOVING_CLIMBING = SMARTMOVING + ".climbing";
public static final String SMARTMOVING_CRAWLING = SMARTMOVING + ".crawling"; public static final String SMARTMOVING_CRAWLING = SMARTMOVING + ".crawling";
public static final String SMARTMOVING_FLYING = SMARTMOVING + ".flying"; public static final String SMARTMOVING_FLYING = SMARTMOVING + ".flying";
public static final String SMARTMOVING_JUMPING = SMARTMOVING + ".jumping"; public static final String SMARTMOVING_JUMPING = SMARTMOVING + ".jumping";
public static final String SMARTMOVING_SLIDING = SMARTMOVING + ".sliding"; public static final String SMARTMOVING_SLIDING = SMARTMOVING + ".sliding";
public static final String SMARTMOVING_SWIMMING = SMARTMOVING + ".swimming"; public static final String SMARTMOVING_SWIMMING = SMARTMOVING + ".swimming";
private static final String ZOMBE = MODS + ".zombe"; private static final String ZOMBE = MODS + ".zombe";
public static final String ZOMBE_FLY = ZOMBE + ".fly"; public static final String ZOMBE_FLY = ZOMBE + ".fly";
public static final String ZOMBE_NOCLIP = ZOMBE + ".noclip"; public static final String ZOMBE_NOCLIP = ZOMBE + ".noclip";
public static final String ZOMBE_CHEAT = ZOMBE + ".cheat"; public static final String ZOMBE_CHEAT = ZOMBE + ".cheat";
} }

View File

@ -88,7 +88,7 @@ public class LagMeasureTask implements Runnable {
// If the previous second took to long, skip checks during this second. // If the previous second took to long, skip checks during this second.
skipCheck = lastInGameSecondDuration > 2000; skipCheck = lastInGameSecondDuration > 2000;
if (ConfigManager.getConfigFile().getBoolean(ConfPaths.LOGGING_DEBUGMESSAGES)) if (ConfigManager.getConfigFile().getBoolean(ConfPaths.LOGGING_DEBUG))
if (oldStatus != skipCheck && skipCheck) if (oldStatus != skipCheck && skipCheck)
System.out.println("[NoCheatPlus] Detected server lag, some checks will not work."); System.out.println("[NoCheatPlus] Detected server lag, some checks will not work.");
else if (oldStatus != skipCheck && !skipCheck) else if (oldStatus != skipCheck && !skipCheck)