Disconnect client with TransitionService
This commit is contained in:
@@ -24,7 +24,6 @@ package net.server.channel;
|
||||
import client.Character;
|
||||
import config.YamlConfig;
|
||||
import constants.id.MapId;
|
||||
import database.character.CharacterSaver;
|
||||
import database.drop.DropProvider;
|
||||
import net.ChannelDependencies;
|
||||
import net.netty.ChannelServer;
|
||||
@@ -45,6 +44,7 @@ import server.events.gm.Event;
|
||||
import server.expeditions.Expedition;
|
||||
import server.expeditions.ExpeditionType;
|
||||
import server.maps.*;
|
||||
import service.TransitionService;
|
||||
import tools.PacketCreator;
|
||||
import tools.Pair;
|
||||
|
||||
@@ -126,7 +126,7 @@ public final class Channel {
|
||||
this.merchWlock = rwLock.writeLock();
|
||||
|
||||
try {
|
||||
this.channelServer = initServer(port, world, channel, channelDependencies.characterSaver());
|
||||
this.channelServer = initServer(port, world, channel, channelDependencies.transitionService());
|
||||
expedType.addAll(Arrays.asList(ExpeditionType.values()));
|
||||
|
||||
if (Server.getInstance().isOnline()) { // postpone event loading to improve boot time... thanks Riizade, daronhudson for noticing slow startup times
|
||||
@@ -154,8 +154,8 @@ public final class Channel {
|
||||
}
|
||||
}
|
||||
|
||||
private ChannelServer initServer(int port, int world, int channel, CharacterSaver characterSaver) {
|
||||
ChannelServer channelServer = new ChannelServer(port, world, channel, characterSaver);
|
||||
private ChannelServer initServer(int port, int world, int channel, TransitionService transitionService) {
|
||||
ChannelServer channelServer = new ChannelServer(port, world, channel, transitionService);
|
||||
channelServer.start();
|
||||
return channelServer;
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user