X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2FAbstractFilter.java;h=981f42ec3f1354bf2053dda1223ffb388eee87a1;hb=3a12209e82233cd79677a0d847321f41b41aa9a5;hp=6fa6511cf8addc1b3d609528cc7b7b7d9c347806;hpb=633a841142f978235ed9f745b6ba16c278963e62;p=sonitus.git diff --git a/src/main/java/net/pterodactylus/sonitus/data/AbstractFilter.java b/src/main/java/net/pterodactylus/sonitus/data/AbstractFilter.java index 6fa6511..981f42e 100644 --- a/src/main/java/net/pterodactylus/sonitus/data/AbstractFilter.java +++ b/src/main/java/net/pterodactylus/sonitus/data/AbstractFilter.java @@ -124,19 +124,22 @@ public abstract class AbstractFilter implements Filter { } @Override - public void process(byte[] buffer) throws IOException { - outputStream.write(buffer); + public void process(DataPacket dataPacket) throws IOException { + if (dataPacket.metadata().isPresent() && !dataPacket.metadata().get().equalsIgnoreComment(this.metadata.get())) { + metadataUpdated(dataPacket.metadata().get()); + } + outputStream.write(dataPacket.buffer()); outputStream.flush(); } @Override - public byte[] get(int bufferSize) throws IOException { + public DataPacket get(int bufferSize) throws IOException { byte[] buffer = new byte[bufferSize]; int read = inputStream.read(buffer); if (read == -1) { throw new EOFException(); } - return Arrays.copyOf(buffer, read); + return new DataPacket(metadata(), Arrays.copyOf(buffer, read)); } //