Redo hwid bans - reduce amount of db queries on login

Works by loading all hwid bans on startup and querying the collection in memory
rather than making calls on every login.
This commit is contained in:
P0nk
2024-10-01 07:04:25 +02:00
parent 7661cd0f75
commit af02f8b744
20 changed files with 235 additions and 55 deletions

View File

@@ -10,6 +10,7 @@ import net.server.coordinator.session.SessionCoordinator.AntiMulticlientResult;
import net.server.world.World;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import service.BanService;
import service.TransitionService;
import tools.PacketCreator;
@@ -19,9 +20,11 @@ import java.net.UnknownHostException;
public class CharSelectedWithPicHandler extends AbstractPacketHandler {
private static final Logger log = LoggerFactory.getLogger(CharSelectedWithPicHandler.class);
private final BanService banService;
private final TransitionService transitionService;
public CharSelectedWithPicHandler(TransitionService transitionService) {
public CharSelectedWithPicHandler(BanService banService, TransitionService transitionService) {
this.banService = banService;
this.transitionService = transitionService;
}
@@ -54,8 +57,9 @@ public class CharSelectedWithPicHandler extends AbstractPacketHandler {
c.updateMacs(macs);
c.updateHwid(hwid);
c.setHwid(hwid);
if (c.hasBannedMac() || c.hasBannedHWID()) {
if (banService.isBanned(c) || c.hasBannedMac()) {
SessionCoordinator.getInstance().closeSession(c, true);
return;
}