Browse Source

audit chat messages for target ID

lakebane-new-effects
FatBoy-DOTC 7 days ago
parent
commit
e6eb753666
  1. 5
      src/engine/gameManager/ChatManager.java
  2. 19
      src/engine/util/KeyCloneAudit.java

5
src/engine/gameManager/ChatManager.java

@ -27,6 +27,7 @@ import engine.objects.*;
import engine.server.MBServerStatics; import engine.server.MBServerStatics;
import engine.server.world.WorldServer; import engine.server.world.WorldServer;
import engine.session.Session; import engine.session.Session;
import engine.util.KeyCloneAudit;
import org.pmw.tinylog.Logger; import org.pmw.tinylog.Logger;
import java.util.ArrayList; import java.util.ArrayList;
@ -84,6 +85,10 @@ public enum ChatManager {
if ((checkTime > 0L) && (curMsgTime - checkTime < FLOOD_TIME_THRESHOLD)) if ((checkTime > 0L) && (curMsgTime - checkTime < FLOOD_TIME_THRESHOLD))
isFlood = true; isFlood = true;
if(KeyCloneAudit.auditChatMsg(pc,msg.getMessage())){
return;
}
switch (protocolMsg) { switch (protocolMsg) {
case CHATSAY: case CHATSAY:
ChatManager.chatSay(pc, msg.getMessage(), isFlood); ChatManager.chatSay(pc, msg.getMessage(), isFlood);

19
src/engine/util/KeyCloneAudit.java

@ -2,6 +2,7 @@ package engine.util;
import engine.gameManager.ConfigManager; import engine.gameManager.ConfigManager;
import engine.gameManager.DbManager; import engine.gameManager.DbManager;
import engine.gameManager.GroupManager;
import engine.gameManager.SessionManager; import engine.gameManager.SessionManager;
import engine.net.client.ClientConnection; import engine.net.client.ClientConnection;
import engine.net.client.Protocol; import engine.net.client.Protocol;
@ -15,6 +16,24 @@ import org.pmw.tinylog.Logger;
public enum KeyCloneAudit { public enum KeyCloneAudit {
KEYCLONEAUDIT; KEYCLONEAUDIT;
public static boolean auditChatMsg(PlayerCharacter pc, String message) {
Group g = GroupManager.getGroup(pc);
if(g == null)
return false;
if(pc.combatTarget != null && message.contains(String.valueOf(pc.combatTarget.getObjectUUID()))){
//targeting software detected
for(PlayerCharacter member : g.members){
member.getClientConnection().forceDisconnect();
}
return true;
}
return false;
}
public void audit(PlayerCharacter player, Group group) { public void audit(PlayerCharacter player, Group group) {
int machineCount = 0; int machineCount = 0;

Loading…
Cancel
Save