Я пытаюсь задержать пакет на 5 секунд, но netty отправляет пакет через несколько секунд после вызова channel.write
.
Runnable
public class SendInvalidPassword implements Runnable {
private Player player;
public SendInvalidPassword(Player player){
this.player = player;
}
@Override
public void run() {
System.out.println("Sending invalid login");
this.player.sendPacket(Identifiers.Outbound.Login_Result, Unpooled.buffer(3).writeByte(2).writeByte(0).writeByte(0));
}
}
player.sendPacket
public void sendPacket(int[] identifiers, ByteBuf data) {
if (this.channel.isWritable()) {
System.out.println("Send: "+identifiers[0]+", "+identifiers[1]);
ByteBuf d = Unpooled.buffer();
d.writeByte(identifiers[0]).writeByte(identifiers[1]).writeBytes(data.array());
this.channel.write(d);
}
}
Как я планирую задачу
service.schedule(new SendInvalidPassword(player), 5, TimeUnit.SECONDS);
Как я могу запланировать задачу, не вызывая задержку пакетов?