package protocolsupport.protocol.packet.middleimpl;

import io.netty.buffer.ByteBuf;
import protocolsupport.protocol.packet.PacketType;

public interface RunnableTransformOperation extends Runnable, IPacketData {

	@Override
	default PacketType getPacketType() {
		return PacketType.NONE;
	}

	@Override
	default void writeData(ByteBuf to) {
		run();
	}

	@Override
	default void recycle() {
	}

}

@@ -141,17 +141,13 @@
 lic 
-interface
+class
  Run
@@ -174,114 +174,152 @@
 ion 
-extends Runnable, IPacketData %7B%0A%0A%09@Override%0A%09default PacketType getPacketType() %7B%0A%09%09return PacketType.NONE
+implements IPacketData %7B%0A%0A%09protected final Runnable runnable;%0A%09public RunnableTransformOperation(Runnable runnable) %7B%0A%09%09this.runnable = runnable
 ;%0A%09%7D
@@ -328,31 +328,30 @@
 %09@Override%0A%09
-default
+public
  void writeD
@@ -370,16 +370,25 @@
 to) %7B%0A%09%09
+runnable.
 run();%0A%09
@@ -406,15 +406,149 @@
 de%0A%09
-default
+public int getDataLength() %7B%0A%09%09return 0;%0A%09%7D%0A%0A%09@Override%0A%09public PacketType getPacketType() %7B%0A%09%09return PacketType.NONE;%0A%09%7D%0A%0A%09@Override%0A%09public
  voi

Make runnabletransformoperation into a class instead