Disconnect client with TransitionService

This commit is contained in:
P0nk
2023-08-10 21:58:26 +02:00
parent d5682a5f65
commit cb31121fe7
16 changed files with 83 additions and 74 deletions

View File

@@ -31,19 +31,27 @@ import net.packet.InPacket;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import server.ItemInformationProvider;
import server.TimerManager;
import server.life.LifeFactory;
import server.life.Monster;
import server.maps.MapObject;
import server.maps.MapObjectType;
import server.quest.Quest;
import service.TransitionService;
import tools.PacketCreator;
import tools.Randomizer;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;
public final class AdminCommandHandler extends AbstractPacketHandler {
private static final Logger log = LoggerFactory.getLogger(AdminCommandHandler.class);
private final TransitionService transitionService;
public AdminCommandHandler(TransitionService transitionService) {
this.transitionService = transitionService;
}
@Override
public void handlePacket(InPacket p, Client c) {
@@ -95,7 +103,7 @@ public final class AdminCommandHandler extends AbstractPacketHandler {
target.ban(description + " " + reason);
} else {
target.block(type, duration, description);
target.sendPolice(duration, reason, 6000);
sendPolice(target.getClient(), reason);
}
c.sendPacket(PacketCreator.getGMEffect(4, (byte) 0));
} else if (Character.ban(victim, reason, false)) {
@@ -183,4 +191,11 @@ public final class AdminCommandHandler extends AbstractPacketHandler {
break;
}
}
private void sendPolice(Client c, String reason) {
c.sendPacket(PacketCreator.sendPolice(String.format("You have been blocked by the#b %s Police for %s.#k", "Cosmic", reason)));
c.getPlayer().setBanned();
TimerManager.getInstance().schedule(() -> transitionService.disconnect(c, false, false),
TimeUnit.SECONDS.toMillis(6));
}
}