mirror of
https://github.com/ViaVersion/ViaVersion.git
synced 2024-10-31 23:59:33 +01:00
Fix cancelexception printing
This commit is contained in:
parent
6513df10e7
commit
7588609c56
@ -6,6 +6,7 @@ import io.netty.handler.codec.ByteToMessageDecoder;
|
||||
import us.myles.ViaVersion.api.data.UserConnection;
|
||||
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
||||
import us.myles.ViaVersion.exception.CancelDecoderException;
|
||||
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||
import us.myles.ViaVersion.util.PipelineUtil;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
@ -52,7 +53,8 @@ public class BukkitDecodeHandler extends ByteToMessageDecoder {
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
if (PipelineUtil.containsCause(cause, CancelDecoderException.class)) return; // ProtocolLib compat
|
||||
if (PipelineUtil.containsCause(cause, ViaCodecException.class)) return; // ProtocolLib compat
|
||||
|
||||
super.exceptionCaught(ctx, cause);
|
||||
if (!NMSUtil.isDebugPropertySet()) {
|
||||
cause.printStackTrace(); // Print if CB doesn't already do it
|
||||
|
@ -6,6 +6,7 @@ import io.netty.handler.codec.MessageToByteEncoder;
|
||||
import us.myles.ViaVersion.api.data.UserConnection;
|
||||
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
||||
import us.myles.ViaVersion.exception.CancelEncoderException;
|
||||
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||
import us.myles.ViaVersion.handlers.ChannelHandlerContextWrapper;
|
||||
import us.myles.ViaVersion.handlers.ViaHandler;
|
||||
import us.myles.ViaVersion.util.PipelineUtil;
|
||||
@ -33,7 +34,6 @@ public class BukkitEncodeHandler extends MessageToByteEncoder implements ViaHand
|
||||
this.minecraftEncoder = minecraftEncoder;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void encode(final ChannelHandlerContext ctx, Object o, final ByteBuf bytebuf) throws Exception {
|
||||
if (versionField != null) {
|
||||
@ -65,7 +65,8 @@ public class BukkitEncodeHandler extends MessageToByteEncoder implements ViaHand
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
if (PipelineUtil.containsCause(cause, CancelEncoderException.class)) return; // ProtocolLib compat
|
||||
if (PipelineUtil.containsCause(cause, ViaCodecException.class)) return; // ProtocolLib compat
|
||||
|
||||
super.exceptionCaught(ctx, cause);
|
||||
if (!NMSUtil.isDebugPropertySet()) {
|
||||
cause.printStackTrace(); // Print if CB doesn't already do it
|
||||
|
@ -6,6 +6,7 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToMessageDecoder;
|
||||
import us.myles.ViaVersion.api.data.UserConnection;
|
||||
import us.myles.ViaVersion.exception.CancelDecoderException;
|
||||
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -36,7 +37,7 @@ public class BungeeDecodeHandler extends MessageToMessageDecoder<ByteBuf> {
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
if (cause instanceof CancelDecoderException) return;
|
||||
if (cause instanceof ViaCodecException) return;
|
||||
super.exceptionCaught(ctx, cause);
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ import io.netty.handler.codec.MessageToMessageEncoder;
|
||||
import us.myles.ViaVersion.api.data.UserConnection;
|
||||
import us.myles.ViaVersion.bungee.util.BungeePipelineUtil;
|
||||
import us.myles.ViaVersion.exception.CancelEncoderException;
|
||||
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -77,7 +78,7 @@ public class BungeeEncodeHandler extends MessageToMessageEncoder<ByteBuf> {
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
if (cause instanceof CancelEncoderException) return;
|
||||
if (cause instanceof ViaCodecException) return;
|
||||
super.exceptionCaught(ctx, cause);
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import us.myles.ViaVersion.api.Via;
|
||||
* Thrown during packet decoding when an incoming packet should be cancelled.
|
||||
* Specifically extends {@link DecoderException} to prevent netty from wrapping the exception.
|
||||
*/
|
||||
public class CancelDecoderException extends DecoderException {
|
||||
public class CancelDecoderException extends DecoderException implements ViaCodecException {
|
||||
public static final CancelDecoderException CACHED = new CancelDecoderException("This packet is supposed to be cancelled; If you have debug enabled, you can ignore these") {
|
||||
@Override
|
||||
public Throwable fillInStackTrace() {
|
||||
|
@ -7,7 +7,7 @@ import us.myles.ViaVersion.api.Via;
|
||||
* Thrown during packet encoding when an outgoing packet should be cancelled.
|
||||
* Specifically extends {@link EncoderException} to prevent netty from wrapping the exception.
|
||||
*/
|
||||
public class CancelEncoderException extends EncoderException {
|
||||
public class CancelEncoderException extends EncoderException implements ViaCodecException {
|
||||
public static final CancelEncoderException CACHED = new CancelEncoderException("This packet is supposed to be cancelled; If you have debug enabled, you can ignore these") {
|
||||
@Override
|
||||
public Throwable fillInStackTrace() {
|
||||
|
@ -0,0 +1,10 @@
|
||||
package us.myles.ViaVersion.exception;
|
||||
|
||||
/**
|
||||
* Shared dummy interface for {@link CancelDecoderException} and {@link CancelEncoderException}.
|
||||
*
|
||||
* @see CancelEncoderException
|
||||
* @see CancelDecoderException
|
||||
*/
|
||||
public interface ViaCodecException {
|
||||
}
|
@ -91,13 +91,14 @@ public class PipelineUtil {
|
||||
* @param c The exception to look for
|
||||
* @return True if the stack trace contained it as its cause or if t is an instance of c.
|
||||
*/
|
||||
public static boolean containsCause(Throwable t, Class<? extends Throwable> c) {
|
||||
do {
|
||||
if (t != null) {
|
||||
if (c.isAssignableFrom(t.getClass())) return true;
|
||||
t = t.getCause();
|
||||
public static boolean containsCause(Throwable t, Class<?> c) {
|
||||
while (t != null) {
|
||||
if (c.isAssignableFrom(t.getClass())) {
|
||||
return true;
|
||||
}
|
||||
} while (t != null);
|
||||
|
||||
t = t.getCause();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.ByteToMessageDecoder;
|
||||
import us.myles.ViaVersion.api.data.UserConnection;
|
||||
import us.myles.ViaVersion.exception.CancelDecoderException;
|
||||
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||
import us.myles.ViaVersion.util.PipelineUtil;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
@ -52,7 +53,7 @@ public class SpongeDecodeHandler extends ByteToMessageDecoder {
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
if (cause instanceof CancelDecoderException) return;
|
||||
if (cause instanceof ViaCodecException) return;
|
||||
super.exceptionCaught(ctx, cause);
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
import us.myles.ViaVersion.api.data.UserConnection;
|
||||
import us.myles.ViaVersion.exception.CancelEncoderException;
|
||||
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||
import us.myles.ViaVersion.handlers.ChannelHandlerContextWrapper;
|
||||
import us.myles.ViaVersion.handlers.ViaHandler;
|
||||
import us.myles.ViaVersion.util.PipelineUtil;
|
||||
@ -48,7 +49,7 @@ public class SpongeEncodeHandler extends MessageToByteEncoder<Object> implements
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
if (cause instanceof CancelEncoderException) return;
|
||||
if (cause instanceof ViaCodecException) return;
|
||||
super.exceptionCaught(ctx, cause);
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToMessageDecoder;
|
||||
import us.myles.ViaVersion.api.data.UserConnection;
|
||||
import us.myles.ViaVersion.exception.CancelDecoderException;
|
||||
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -36,7 +37,7 @@ public class VelocityDecodeHandler extends MessageToMessageDecoder<ByteBuf> {
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
if (cause instanceof CancelDecoderException) return;
|
||||
if (cause instanceof ViaCodecException) return;
|
||||
super.exceptionCaught(ctx, cause);
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import io.netty.handler.codec.MessageToMessageDecoder;
|
||||
import io.netty.handler.codec.MessageToMessageEncoder;
|
||||
import us.myles.ViaVersion.api.data.UserConnection;
|
||||
import us.myles.ViaVersion.exception.CancelEncoderException;
|
||||
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||
import us.myles.ViaVersion.util.PipelineUtil;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
@ -80,7 +81,7 @@ public class VelocityEncodeHandler extends MessageToMessageEncoder<ByteBuf> {
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
if (cause instanceof CancelEncoderException) return;
|
||||
if (cause instanceof ViaCodecException) return;
|
||||
super.exceptionCaught(ctx, cause);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user