Fix showing ban message box (#1826)

* fix: getplayertoken ban message popup

* feat: insure no packet handle when banned

* feat: using session state instead of account
This commit is contained in:
Dang Hoang Phuc
2022-10-07 22:07:20 +07:00
committed by GitHub
parent 0b9cab5ad5
commit a520bc9416
3 changed files with 32 additions and 22 deletions

View File

@@ -4,6 +4,7 @@ import static emu.grasscutter.config.Configuration.*;
import java.util.Set;
import emu.grasscutter.game.Account;
import emu.grasscutter.server.event.game.ReceivePacketEvent;
import org.reflections.Reflections;
@@ -68,6 +69,9 @@ public class GameServerPacketHandler {
if (state != SessionState.WAITING_FOR_TOKEN) {
return;
}
} else if (state == SessionState.ACCOUNT_BANNED) {
session.close();
return;
} else if (opcode == PacketOpcodes.PlayerLoginReq) {
if (state != SessionState.WAITING_FOR_LOGIN) {
return;
@@ -83,7 +87,8 @@ public class GameServerPacketHandler {
}
// Invoke event.
ReceivePacketEvent event = new ReceivePacketEvent(session, opcode, payload); event.call();
ReceivePacketEvent event = new ReceivePacketEvent(session, opcode, payload);
event.call();
if (!event.isCanceled()) // If event is not canceled, continue.
handler.handle(session, header, event.getPacketData());
} catch (Exception ex) {