Show correct ban reason

This commit is contained in:
P0nk
2024-09-29 17:30:09 +02:00
parent d00b4ed678
commit 50524a7740
6 changed files with 48 additions and 25 deletions

View File

@@ -49,6 +49,7 @@ import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Objects;
import java.util.Optional;
public final class LoginPasswordHandler implements PacketHandler {
@@ -107,22 +108,18 @@ public final class LoginPasswordHandler implements PacketHandler {
}
if (account.banned()) {
c.sendPacket(PacketCreator.getLoginFailed(3));
// TODO: send ban reason instead of login failed, something like this:
// c.sendPacket(PacketCreator.getPermBan(c.getGReason()));
byte banReason = Objects.requireNonNullElse(account.banReason(), (byte) 0);
c.sendPacket(PacketCreator.getPermBan(banReason));
return;
}
if (account.loginState() != LoginState.LOGGED_OUT) {
c.sendPacket(PacketCreator.getLoginFailed(7));
return;
}
c.setAccount(account);
if (!account.acceptedTos()) {
c.sendPacket(PacketCreator.getLoginFailed(23));
return;
boolean tempBanDisabled = false;
Calendar tempban = null;
if (!tempBanDisabled && (tempban = c.getTempBanCalendarFromDB()) != null) {
if (tempban.getTimeInMillis() > Calendar.getInstance().getTimeInMillis()) {
c.sendPacket(PacketCreator.getTempBan(tempban.getTimeInMillis(), c.getGReason()));
return;
}
}
boolean banCheckDisabled = false;
@@ -138,13 +135,10 @@ public final class LoginPasswordHandler implements PacketHandler {
c.sendPacket(PacketCreator.getTempBan());
}
*/
boolean tempBanDisabled = false;
Calendar tempban = null;
if (!tempBanDisabled && (tempban = c.getTempBanCalendarFromDB()) != null) {
if (tempban.getTimeInMillis() > Calendar.getInstance().getTimeInMillis()) {
c.sendPacket(PacketCreator.getTempBan(tempban.getTimeInMillis(), c.getGReason()));
return;
}
if (account.loginState() != LoginState.LOGGED_OUT) {
c.sendPacket(PacketCreator.getLoginFailed(7));
return;
}
Integer failureCode = checkMultiClient(c);
@@ -153,6 +147,13 @@ public final class LoginPasswordHandler implements PacketHandler {
return;
}
c.setAccount(account);
if (!account.acceptedTos()) {
c.sendPacket(PacketCreator.getLoginFailed(23));
return;
}
if (!accountService.setLoggedIn(c)) {
c.sendPacket(PacketCreator.getLoginFailed(7));
}