mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2024-09-30 07:27:29 +02:00
Adjust chat/kicks, revert vl decrease method for nopwnage.
This commit is contained in:
parent
af51326125
commit
a501b6e2e6
@ -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.");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 = "";
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
@ -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.";
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user