@Override
    public M decode(byte[] buf) throws EncodingException {
        byte[] uncompressed;
        try (GZIPInputStream gzipIn = new GZIPInputStream(new ByteArrayInputStream(buf))) {
            uncompressed = ByteStreams.toByteArray(gzipIn);
        } catch (IOException e) {
            throw new EncodingException(e);
        }
        return this.delegate.decode(uncompressed);
    }
A {@link Codec} wrapper using GZip.

@param <M> the message type
helper/src/main/java/me/lucko/helper/messaging/codec/GZipCodec.java