Adjust chat/kicks, revert vl decrease method for nopwnage.

This commit is contained in:
asofold 2012-09-15 19:22:25 +02:00
parent af51326125
commit a501b6e2e6
7 changed files with 21 additions and 22 deletions

View File

@ -455,7 +455,7 @@ public class NoCheatPlus extends JavaPlugin implements Listener {
// TODO: display time for which the player is banned.
event.setResult(Result.KICK_OTHER);
// TODO: Make message configurable.
event.setKickMessage("You are temporarily denied to join server.");
event.setKickMessage("You are temporarily denied to join this server.");
}
}

View File

@ -174,7 +174,7 @@ public class ChatConfig extends AsyncCheckConfig {
noPwnageDebug = config.getBoolean(ConfPaths.CHAT_NOPWNAGE_DEBUG, false);
noPwnageLevel = config.getInt(ConfPaths.CHAT_NOPWNAGE_LEVEL);
// VL decreasing factor, hidden option.
noPwnageVLFactor = (float) config.getDouble(ConfPaths.CHAT_NOPWNAGE_VL_FACTOR, 0.95);
noPwnageVLFactor = (float) config.getDouble(ConfPaths.CHAT_NOPWNAGE_VL_FACTOR, 0.9);
noPwnageBannedCheck = config.getBoolean(ConfPaths.CHAT_NOPWNAGE_BANNED_CHECK);
noPwnageBannedTimeout = config.getLong(ConfPaths.CHAT_NOPWNAGE_BANNED_TIMEOUT);

View File

@ -61,7 +61,7 @@ public class ChatData extends AsyncCheckData {
public double captchaVL;
public double colorVL;
public double globalChatVL;
public ActionFrequency noPwnageVL = new ActionFrequency(10, 3000);
public double noPwnageVL;
// Data of the globalchat check.
public final ActionFrequency globalChatFrequency = new ActionFrequency(10, 3000);
@ -87,7 +87,7 @@ public class ChatData extends AsyncCheckData {
noPwnageCaptchTries = noPwnageReloginWarnings = 0;
captchaVL = 0D;
// colorVL <- is spared to avoid problems with spam + captcha success.
// noPwnageVL <- Is handled by the ActionFrequency forgtting mechanism, currently (call clear otherwise).
noPwnageVL = 0;
noPwnageSpeed.clear(System.currentTimeMillis());
noPwnageJoinTime = noPwnageLastMessageTime = noPwnageLastMovedTime = noPwnageLastWarningTime = noPwnageLeaveTime = noPwnageReloginWarningTime = 0L;
noPwnageGeneratedCaptcha = noPwnageLastMessage = "";

View File

@ -60,7 +60,7 @@ public class ChatListener implements Listener, INotifyReload {
commandExclusions.clear();
commandExclusions.feedAll(config.getStringList(ConfPaths.CHAT_NOPWNAGE_EXCLUSIONS), false, true);
chatCommands.clear();
chatCommands.feedAll(config.getStringList(ConfPaths.CHAT_GLOBALCHAT_COMMANDS), false, true);
chatCommands.feedAll(config.getStringList(ConfPaths.CHAT_HANDLEASCHAT), false, true);
}
@EventHandler(priority=EventPriority.MONITOR)

View File

@ -115,9 +115,6 @@ public class NoPwnage extends AsyncCheck implements ICaptcha{
boolean cancel = false;
final long now = System.currentTimeMillis();
// Forget expired VL.
data.noPwnageVL.update(now);
if (shouldCheckCaptcha(cc, data)) {
checkCaptcha(player, message, cc, data, isMainThread);
@ -190,15 +187,15 @@ public class NoPwnage extends AsyncCheck implements ICaptcha{
player.getName())));
// Increment the violation level.
data.noPwnageVL.add(now, (float) (suspicion / 10D));
data.noPwnageVL += (double) suspicion / 10D ;
// Find out if we need to kick the player or not.
cancel = executeActions(player, data.noPwnageVL.getScore(cc.noPwnageVLFactor), suspicion / 10D, cc.noPwnageActions,
cancel = executeActions(player, data.noPwnageVL, suspicion / 10D, cc.noPwnageActions,
isMainThread);
}
// else
// // Reduce the violation level. <- Done automatically by queue.
// data.noPwnageVL *= 0.95D;
else
// Reduce the violation level. <- Done automatically by queue.
data.noPwnageVL *= 0.95D;
// Store the message and some other data.
data.noPwnageLastMessage = message;
@ -207,7 +204,7 @@ public class NoPwnage extends AsyncCheck implements ICaptcha{
lastGlobalMessageTime = now;
if (cc.noPwnageDebug){
final String msg = "[NoCheatPlus][nopwnage] Message ("+player.getName()+"/"+message.length()+"): suspicion="+suspicion +", vl="+CheckUtils.fdec3.format(data.noPwnageVL.getScore(cc.noPwnageVLFactor));
final String msg = "[NoCheatPlus][nopwnage] Message ("+player.getName()+"/"+message.length()+"): suspicion="+suspicion +", vl="+CheckUtils.fdec3.format(data.noPwnageVL);
CheckUtils.scheduleOutput(msg);
}
@ -325,7 +322,7 @@ public class NoPwnage extends AsyncCheck implements ICaptcha{
data.noPwnageReloginWarnings++;
} else if (now - data.noPwnageReloginWarningTime < cc.noPwnageReloginWarningTimeout)
// Find out if we need to ban the player or not.
cancel = executeActions(player, (double) data.noPwnageVL.getScore(cc.noPwnageVLFactor), 0D, cc.noPwnageActions, true);
cancel = executeActions(player, (double) data.noPwnageVL, 0D, cc.noPwnageActions, true);
}
// Store his joining time.

View File

@ -166,6 +166,9 @@ public abstract class ConfPaths {
* "88,d88 888 888 "88 888 888
*/
private static final String CHAT = CHECKS + "chat.";
@GlobalConfig
public static final String CHAT_HANDLEASCHAT = CHAT + "handleaschat";
private static final String CHAT_COLOR = CHAT + "color.";
public static final String CHAT_COLOR_CHECK = CHAT_COLOR + "active";
@ -180,8 +183,6 @@ public abstract class ConfPaths {
public static final String CHAT_GLOBALCHAT_FREQUENCY = CHAT_GLOBALCHAT + "frequency.";
public static final String CHAT_GLOBALCHAT_FREQUENCY_WEIGHT = CHAT_GLOBALCHAT_FREQUENCY + "weight";
public static final String CHAT_GLOBALCHAT_FREQUENCY_FACTOR = CHAT_GLOBALCHAT_FREQUENCY + "factor";
@GlobalConfig
public static final String CHAT_GLOBALCHAT_COMMANDS = CHAT_GLOBALCHAT + "commands";
// (Some of the following paths must be public for generic config reading.)
// Extended global checks.
private static final String CHAT_GLOBALCHAT_GL = CHAT_GLOBALCHAT + "global.";

View File

@ -144,7 +144,7 @@ public class DefaultConfig extends ConfigFile {
set(ConfPaths.CHAT_GLOBALCHAT_LEVEL, 80);
set(ConfPaths.CHAT_GLOBALCHAT_FREQUENCY_FACTOR, 0.9D);
set(ConfPaths.CHAT_GLOBALCHAT_FREQUENCY_WEIGHT, 6);
set(ConfPaths.CHAT_GLOBALCHAT_COMMANDS,
set(ConfPaths.CHAT_HANDLEASCHAT,
new LinkedList<String>(Arrays.asList(new String[]{"/me"})));
set(ConfPaths.CHAT_GLOBALCHAT_GL_CHECK, true);
set(ConfPaths.CHAT_GLOBALCHAT_GL_WEIGHT, 0.5);
@ -157,7 +157,7 @@ public class DefaultConfig extends ConfigFile {
set(ConfPaths.CHAT_GLOBALCHAT_PP_PREFIXES_CHECK, false);
set(ConfPaths.CHAT_GLOBALCHAT_PP_SIMILARITY_CHECK , false);
//
set(ConfPaths.CHAT_GLOBALCHAT_ACTIONS, "log:globalchat:0:5:f cancel cmd:tellglchat vl>20 log:globalchat:0:5:cf cancel cmd:kickglchat");
set(ConfPaths.CHAT_GLOBALCHAT_ACTIONS, "log:globalchat:0:5:f cancel cmd:tellglchat vl>20 log:globalchat:0:5:cf cancel cmd:kickglchat vl>50 log:globalchat:0:5:cf cancel cmd:tempkick5");
// nopwnage
set(ConfPaths.CHAT_NOPWNAGE_CHECK, true);
@ -168,7 +168,7 @@ public class DefaultConfig extends ConfigFile {
set(ConfPaths.CHAT_NOPWNAGE_BANNED_TIMEOUT, 5000L);
set(ConfPaths.CHAT_NOPWNAGE_BANNED_WEIGHT, 100);
set(ConfPaths.CHAT_NOPWNAGE_CAPTCHA_CHECK, true);
set(ConfPaths.CHAT_NOPWNAGE_CAPTCHA_CHECK, false);
set(ConfPaths.CHAT_NOPWNAGE_CAPTCHA_CHARACTERS,
"abcdefghjkmnpqrtuvwxyzABCDEFGHJKMNPQRTUVWXYZ2346789");
set(ConfPaths.CHAT_NOPWNAGE_CAPTCHA_LENGTH, 6);
@ -217,7 +217,7 @@ public class DefaultConfig extends ConfigFile {
set(ConfPaths.CHAT_NOPWNAGE_WARN_PLAYER_MESSAGE,
"&cPlease don't spam, be careful with what you say. DON'T repeat what you just said either, unless you want to be kicked or even banned.");
set(ConfPaths.CHAT_NOPWNAGE_ACTIONS, "cancel log:nopwnage:2:5:cf cmd:kicknopwnage");
set(ConfPaths.CHAT_NOPWNAGE_ACTIONS, "cancel log:nopwnage:0:5:cf cmd:kicknopwnage vl>150 cancel log:nopwnage:0:5:cf cmd:tempkick5");
/*
@ -378,7 +378,7 @@ public class DefaultConfig extends ConfigFile {
set(ConfPaths.STRINGS + ".instanteat", start + "eats food [food] too fast" + end);
set(ConfPaths.STRINGS + ".instantheal", start + "tried to regenerate health faster than normal" + end);
set(ConfPaths.STRINGS + ".kick", "kick [player]");
set(ConfPaths.STRINGS + ".kicknopwnage", "ncp kick [player] You're not allowed to spam this server!");
set(ConfPaths.STRINGS + ".kicknopwnage", "ncp tempkick [player] 1 You're not allowed to spam this server!");
set(ConfPaths.STRINGS + ".kickcaptcha", "ncp kick [player] Enter the captcha!");
set(ConfPaths.STRINGS + ".kickfrequency", "ncp kick [player] How about doing that less often?");
set(ConfPaths.STRINGS + ".kickglchat", "ncp kick [player] Too many chat messages, take a break.");
@ -390,6 +390,7 @@ public class DefaultConfig extends ConfigFile {
set(ConfPaths.STRINGS + ".nopwnage", start + "acted like spamming (IP: [ip])" + end);
set(ConfPaths.STRINGS + ".noswing", start + "didn't swing arm" + end);
set(ConfPaths.STRINGS + ".tellglchat", tell + "&cNCP: &eChat can by annoying at times...");
set(ConfPaths.STRINGS + ".tempkick1", "ncp tempkick [player] 1 Wait a minute!");
set(ConfPaths.STRINGS + ".tempkick5", "ncp tempkick [player] 5 You have five minutes to think about it!");
// Update internal factory based on all the new entries to the "actions" section.