NettyPlayerConnection.java#write and flush should return a ChannelFuture

This commit is contained in:
Felix Cravic 2020-12-05 20:35:43 +01:00
parent e059d68bed
commit e3f6b73241
2 changed files with 8 additions and 9 deletions

View File

@ -2,6 +2,7 @@ package net.minestom.server.network.player;
import io.netty.buffer.ByteBuf;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import io.netty.channel.socket.SocketChannel;
import net.minestom.server.MinecraftServer;
import net.minestom.server.entity.PlayerSkin;
@ -142,27 +143,27 @@ public class NettyPlayerConnection extends PlayerConnection {
}
}
public void write(@NotNull Object message) {
public ChannelFuture write(@NotNull Object message) {
if (MinecraftServer.shouldProcessNettyErrors()) {
channel.write(message).addListener(future -> {
return channel.write(message).addListener(future -> {
if (!future.isSuccess()) {
future.cause().printStackTrace();
}
});
} else {
channel.write(message, channel.voidPromise());
return channel.write(message, channel.voidPromise());
}
}
public void writeAndFlush(@NotNull Object message) {
public ChannelFuture writeAndFlush(@NotNull Object message) {
if (MinecraftServer.shouldProcessNettyErrors()) {
channel.writeAndFlush(message).addListener(future -> {
return channel.writeAndFlush(message).addListener(future -> {
if (!future.isSuccess()) {
future.cause().printStackTrace();
}
});
} else {
channel.writeAndFlush(message, channel.voidPromise());
return channel.writeAndFlush(message, channel.voidPromise());
}
}

View File

@ -2,7 +2,6 @@ package net.minestom.server.utils;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.Channel;
import net.minestom.server.MinecraftServer;
import net.minestom.server.entity.Player;
import net.minestom.server.listener.manager.PacketListenerManager;
@ -59,8 +58,7 @@ public final class PacketUtils {
final PlayerConnection playerConnection = player.getPlayerConnection();
if (playerConnection instanceof NettyPlayerConnection) {
final NettyPlayerConnection nettyPlayerConnection = (NettyPlayerConnection) playerConnection;
final Channel channel = nettyPlayerConnection.getChannel();
channel.write(framedPacket).addListener((p) -> finalBuffer.release());
nettyPlayerConnection.write(framedPacket).addListener((p) -> finalBuffer.release());
} else {
playerConnection.sendPacket(packet);
finalBuffer.release();