blob: 79eecac47202ac08c9965252ad66901e381dfeab [file] [log] [blame] [raw]
package us.myles.ViaVersion.exception;
import io.netty.handler.codec.DecoderException;
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 implements CancelCodecException {
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() {
return this;
}
};
public CancelDecoderException() {
super();
}
public CancelDecoderException(String message, Throwable cause) {
super(message, cause);
}
public CancelDecoderException(String message) {
super(message);
}
public CancelDecoderException(Throwable cause) {
super(cause);
}
/**
* Returns a cached CancelDecoderException or a new instance when {@link us.myles.ViaVersion.ViaManager#isDebug()} is true.
*
* @param cause cause for being used when a new instance is creeated
* @return a CancelDecoderException instance
*/
public static CancelDecoderException generate(Throwable cause) {
return Via.getManager().isDebug() ? new CancelDecoderException(cause) : CACHED;
}
}