Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-11-20 06:50:08 +01:00
Fix cancelexception printing
Dieser Commit ist enthalten in:
Ursprung
6513df10e7
Commit
7588609c56
@ -6,6 +6,7 @@ import io.netty.handler.codec.ByteToMessageDecoder;
|
|||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
||||||
import us.myles.ViaVersion.exception.CancelDecoderException;
|
import us.myles.ViaVersion.exception.CancelDecoderException;
|
||||||
|
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||||
import us.myles.ViaVersion.util.PipelineUtil;
|
import us.myles.ViaVersion.util.PipelineUtil;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
@ -52,7 +53,8 @@ public class BukkitDecodeHandler extends ByteToMessageDecoder {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
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);
|
super.exceptionCaught(ctx, cause);
|
||||||
if (!NMSUtil.isDebugPropertySet()) {
|
if (!NMSUtil.isDebugPropertySet()) {
|
||||||
cause.printStackTrace(); // Print if CB doesn't already do it
|
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.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
||||||
import us.myles.ViaVersion.exception.CancelEncoderException;
|
import us.myles.ViaVersion.exception.CancelEncoderException;
|
||||||
|
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||||
import us.myles.ViaVersion.handlers.ChannelHandlerContextWrapper;
|
import us.myles.ViaVersion.handlers.ChannelHandlerContextWrapper;
|
||||||
import us.myles.ViaVersion.handlers.ViaHandler;
|
import us.myles.ViaVersion.handlers.ViaHandler;
|
||||||
import us.myles.ViaVersion.util.PipelineUtil;
|
import us.myles.ViaVersion.util.PipelineUtil;
|
||||||
@ -33,7 +34,6 @@ public class BukkitEncodeHandler extends MessageToByteEncoder implements ViaHand
|
|||||||
this.minecraftEncoder = minecraftEncoder;
|
this.minecraftEncoder = minecraftEncoder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void encode(final ChannelHandlerContext ctx, Object o, final ByteBuf bytebuf) throws Exception {
|
protected void encode(final ChannelHandlerContext ctx, Object o, final ByteBuf bytebuf) throws Exception {
|
||||||
if (versionField != null) {
|
if (versionField != null) {
|
||||||
@ -65,7 +65,8 @@ public class BukkitEncodeHandler extends MessageToByteEncoder implements ViaHand
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
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);
|
super.exceptionCaught(ctx, cause);
|
||||||
if (!NMSUtil.isDebugPropertySet()) {
|
if (!NMSUtil.isDebugPropertySet()) {
|
||||||
cause.printStackTrace(); // Print if CB doesn't already do it
|
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 io.netty.handler.codec.MessageToMessageDecoder;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.exception.CancelDecoderException;
|
import us.myles.ViaVersion.exception.CancelDecoderException;
|
||||||
|
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -36,7 +37,7 @@ public class BungeeDecodeHandler extends MessageToMessageDecoder<ByteBuf> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||||
if (cause instanceof CancelDecoderException) return;
|
if (cause instanceof ViaCodecException) return;
|
||||||
super.exceptionCaught(ctx, cause);
|
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.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.bungee.util.BungeePipelineUtil;
|
import us.myles.ViaVersion.bungee.util.BungeePipelineUtil;
|
||||||
import us.myles.ViaVersion.exception.CancelEncoderException;
|
import us.myles.ViaVersion.exception.CancelEncoderException;
|
||||||
|
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -77,7 +78,7 @@ public class BungeeEncodeHandler extends MessageToMessageEncoder<ByteBuf> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||||
if (cause instanceof CancelEncoderException) return;
|
if (cause instanceof ViaCodecException) return;
|
||||||
super.exceptionCaught(ctx, cause);
|
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.
|
* Thrown during packet decoding when an incoming packet should be cancelled.
|
||||||
* Specifically extends {@link DecoderException} to prevent netty from wrapping the exception.
|
* 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") {
|
public static final CancelDecoderException CACHED = new CancelDecoderException("This packet is supposed to be cancelled; If you have debug enabled, you can ignore these") {
|
||||||
@Override
|
@Override
|
||||||
public Throwable fillInStackTrace() {
|
public Throwable fillInStackTrace() {
|
||||||
|
@ -7,7 +7,7 @@ import us.myles.ViaVersion.api.Via;
|
|||||||
* Thrown during packet encoding when an outgoing packet should be cancelled.
|
* Thrown during packet encoding when an outgoing packet should be cancelled.
|
||||||
* Specifically extends {@link EncoderException} to prevent netty from wrapping the exception.
|
* 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") {
|
public static final CancelEncoderException CACHED = new CancelEncoderException("This packet is supposed to be cancelled; If you have debug enabled, you can ignore these") {
|
||||||
@Override
|
@Override
|
||||||
public Throwable fillInStackTrace() {
|
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
|
* @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.
|
* @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) {
|
public static boolean containsCause(Throwable t, Class<?> c) {
|
||||||
do {
|
while (t != null) {
|
||||||
if (t != null) {
|
if (c.isAssignableFrom(t.getClass())) {
|
||||||
if (c.isAssignableFrom(t.getClass())) return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
t = t.getCause();
|
t = t.getCause();
|
||||||
}
|
}
|
||||||
} while (t != null);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import io.netty.channel.ChannelHandlerContext;
|
|||||||
import io.netty.handler.codec.ByteToMessageDecoder;
|
import io.netty.handler.codec.ByteToMessageDecoder;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.exception.CancelDecoderException;
|
import us.myles.ViaVersion.exception.CancelDecoderException;
|
||||||
|
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||||
import us.myles.ViaVersion.util.PipelineUtil;
|
import us.myles.ViaVersion.util.PipelineUtil;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
@ -52,7 +53,7 @@ public class SpongeDecodeHandler extends ByteToMessageDecoder {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||||
if (cause instanceof CancelDecoderException) return;
|
if (cause instanceof ViaCodecException) return;
|
||||||
super.exceptionCaught(ctx, cause);
|
super.exceptionCaught(ctx, cause);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import io.netty.channel.ChannelHandlerContext;
|
|||||||
import io.netty.handler.codec.MessageToByteEncoder;
|
import io.netty.handler.codec.MessageToByteEncoder;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.exception.CancelEncoderException;
|
import us.myles.ViaVersion.exception.CancelEncoderException;
|
||||||
|
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||||
import us.myles.ViaVersion.handlers.ChannelHandlerContextWrapper;
|
import us.myles.ViaVersion.handlers.ChannelHandlerContextWrapper;
|
||||||
import us.myles.ViaVersion.handlers.ViaHandler;
|
import us.myles.ViaVersion.handlers.ViaHandler;
|
||||||
import us.myles.ViaVersion.util.PipelineUtil;
|
import us.myles.ViaVersion.util.PipelineUtil;
|
||||||
@ -48,7 +49,7 @@ public class SpongeEncodeHandler extends MessageToByteEncoder<Object> implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||||
if (cause instanceof CancelEncoderException) return;
|
if (cause instanceof ViaCodecException) return;
|
||||||
super.exceptionCaught(ctx, cause);
|
super.exceptionCaught(ctx, cause);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import io.netty.channel.ChannelHandlerContext;
|
|||||||
import io.netty.handler.codec.MessageToMessageDecoder;
|
import io.netty.handler.codec.MessageToMessageDecoder;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.exception.CancelDecoderException;
|
import us.myles.ViaVersion.exception.CancelDecoderException;
|
||||||
|
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -36,7 +37,7 @@ public class VelocityDecodeHandler extends MessageToMessageDecoder<ByteBuf> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||||
if (cause instanceof CancelDecoderException) return;
|
if (cause instanceof ViaCodecException) return;
|
||||||
super.exceptionCaught(ctx, cause);
|
super.exceptionCaught(ctx, cause);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ import io.netty.handler.codec.MessageToMessageDecoder;
|
|||||||
import io.netty.handler.codec.MessageToMessageEncoder;
|
import io.netty.handler.codec.MessageToMessageEncoder;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.exception.CancelEncoderException;
|
import us.myles.ViaVersion.exception.CancelEncoderException;
|
||||||
|
import us.myles.ViaVersion.exception.ViaCodecException;
|
||||||
import us.myles.ViaVersion.util.PipelineUtil;
|
import us.myles.ViaVersion.util.PipelineUtil;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
@ -80,7 +81,7 @@ public class VelocityEncodeHandler extends MessageToMessageEncoder<ByteBuf> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||||
if (cause instanceof CancelEncoderException) return;
|
if (cause instanceof ViaCodecException) return;
|
||||||
super.exceptionCaught(ctx, cause);
|
super.exceptionCaught(ctx, cause);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren