下面列出了怎么用net.minecraft.util.io.netty.channel.ChannelPromise的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* The write() method sends packets to the client
* It needs to be overrode in order to listen for outgoing packets
*/
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
if(msg instanceof PacketStatusOutServerInfo) {
PacketStatusOutServerInfo packet = (PacketStatusOutServerInfo) msg;
PingReply reply = ServerInfoPacketHandler.constructReply(packet, ctx);
this.event = new PingEvent(reply);
for(PingListener listener : PingAPI.getListeners()) {
listener.onPing(event);
}
if(!this.event.isCancelled()) {
super.write(ctx, ServerInfoPacketHandler.constructPacket(reply), promise);
}
return;
}
else if(msg instanceof PacketStatusOutPong) {
if(this.event != null && this.event.isPongCancelled()) {
return;
}
}
super.write(ctx, msg, promise);
}
/**
* The write() method sends packets to the client
* It needs to be overrode in order to listen for outgoing packets
*/
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
if(msg instanceof PacketStatusOutServerInfo) {
PacketStatusOutServerInfo packet = (PacketStatusOutServerInfo) msg;
PingReply reply = ServerInfoPacketHandler.constructReply(packet, ctx);
this.event = new PingEvent(reply);
for(PingListener listener : PingAPI.getListeners()) {
listener.onPing(event);
}
if(!this.event.isCancelled()) {
super.write(ctx, ServerInfoPacketHandler.constructPacket(reply), promise);
}
return;
}
else if(msg instanceof PacketStatusOutPong) {
if(this.event != null && this.event.isPongCancelled()) {
return;
}
}
super.write(ctx, msg, promise);
}
/**
* The write() method sends packets to the client
* It needs to be overrode in order to listen for outgoing packets
*/
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
if(msg instanceof PacketStatusOutServerInfo) {
PacketStatusOutServerInfo packet = (PacketStatusOutServerInfo) msg;
PingReply reply = ServerInfoPacketHandler.constructReply(packet, ctx);
this.event = new PingEvent(reply);
for(PingListener listener : PingAPI.getListeners()) {
listener.onPing(event);
}
if(!this.event.isCancelled()) {
super.write(ctx, ServerInfoPacketHandler.constructPacket(reply), promise);
}
return;
}
else if(msg instanceof PacketStatusOutPong) {
if(this.event != null && this.event.isPongCancelled()) {
return;
}
}
super.write(ctx, msg, promise);
}
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
Cancellable cancellable = new Cancellable();
Object pckt = msg;
if (Packet.isAssignableFrom(msg.getClass())) {
pckt = onPacketSend(this.owner, msg, cancellable);
}
if (cancellable.isCancelled()) { return; }
super.write(ctx, pckt, promise);
}