diff --git a/cache-client/pom.xml b/cache-client/pom.xml
index f138a45e94..ef6c8cb073 100644
--- a/cache-client/pom.xml
+++ b/cache-client/pom.xml
@@ -41,10 +41,16 @@
cache
${project.version}
+
- net.runelite
- protocol
- ${project.version}
+ io.netty
+ netty-all
+ 4.1.0.Final
+
+
+ org.projectlombok
+ lombok
+ provided
diff --git a/cache-client/src/main/java/net/runelite/cache/client/CacheClient.java b/cache-client/src/main/java/net/runelite/cache/client/CacheClient.java
index 273da5d5fa..2ca319c84a 100644
--- a/cache-client/src/main/java/net/runelite/cache/client/CacheClient.java
+++ b/cache-client/src/main/java/net/runelite/cache/client/CacheClient.java
@@ -49,14 +49,14 @@ import net.runelite.cache.fs.Storage;
import net.runelite.cache.fs.Store;
import net.runelite.cache.index.ArchiveData;
import net.runelite.cache.index.IndexData;
+import net.runelite.cache.util.Crc32;
+import net.runelite.protocol.api.handshake.UpdateHandshakePacket;
+import net.runelite.protocol.api.login.HandshakeResponseType;
+import net.runelite.protocol.api.update.ArchiveRequestPacket;
+import net.runelite.protocol.handshake.UpdateHandshakeEncoder;
import net.runelite.protocol.update.decoders.HandshakeResponseDecoder;
import net.runelite.protocol.update.encoders.ArchiveRequestEncoder;
import net.runelite.protocol.update.encoders.EncryptionEncoder;
-import net.runelite.protocol.api.update.ArchiveRequestPacket;
-import net.runelite.protocol.api.login.HandshakeResponseType;
-import net.runelite.cache.util.Crc32;
-import net.runelite.protocol.api.handshake.UpdateHandshakePacket;
-import net.runelite.protocol.handshake.UpdateHandshakeEncoder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/cache-client/src/main/java/net/runelite/cache/client/HandshakeResponseHandler.java b/cache-client/src/main/java/net/runelite/cache/client/HandshakeResponseHandler.java
index bcbb01bafb..9f5bf7b65f 100644
--- a/cache-client/src/main/java/net/runelite/cache/client/HandshakeResponseHandler.java
+++ b/cache-client/src/main/java/net/runelite/cache/client/HandshakeResponseHandler.java
@@ -29,10 +29,10 @@ import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.SimpleChannelInboundHandler;
import java.util.concurrent.CompletableFuture;
-import net.runelite.protocol.update.decoders.ArchiveResponseDecoder;
-import net.runelite.protocol.api.update.EncryptionPacket;
import net.runelite.protocol.api.handshake.HandshakeResponsePacket;
import net.runelite.protocol.api.login.HandshakeResponseType;
+import net.runelite.protocol.api.update.EncryptionPacket;
+import net.runelite.protocol.update.decoders.ArchiveResponseDecoder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/protocol-api/src/main/java/net/runelite/protocol/api/handshake/HandshakePacket.java b/cache-client/src/main/java/net/runelite/protocol/api/handshake/HandshakePacket.java
similarity index 100%
rename from protocol-api/src/main/java/net/runelite/protocol/api/handshake/HandshakePacket.java
rename to cache-client/src/main/java/net/runelite/protocol/api/handshake/HandshakePacket.java
diff --git a/protocol-api/src/main/java/net/runelite/protocol/api/handshake/HandshakeResponsePacket.java b/cache-client/src/main/java/net/runelite/protocol/api/handshake/HandshakeResponsePacket.java
similarity index 100%
rename from protocol-api/src/main/java/net/runelite/protocol/api/handshake/HandshakeResponsePacket.java
rename to cache-client/src/main/java/net/runelite/protocol/api/handshake/HandshakeResponsePacket.java
diff --git a/protocol-api/src/main/java/net/runelite/protocol/api/handshake/HandshakeType.java b/cache-client/src/main/java/net/runelite/protocol/api/handshake/HandshakeType.java
similarity index 100%
rename from protocol-api/src/main/java/net/runelite/protocol/api/handshake/HandshakeType.java
rename to cache-client/src/main/java/net/runelite/protocol/api/handshake/HandshakeType.java
diff --git a/protocol-api/src/main/java/net/runelite/protocol/api/handshake/LoginHandshakePacket.java b/cache-client/src/main/java/net/runelite/protocol/api/handshake/LoginHandshakePacket.java
similarity index 100%
rename from protocol-api/src/main/java/net/runelite/protocol/api/handshake/LoginHandshakePacket.java
rename to cache-client/src/main/java/net/runelite/protocol/api/handshake/LoginHandshakePacket.java
diff --git a/protocol-api/src/main/java/net/runelite/protocol/api/handshake/UpdateHandshakePacket.java b/cache-client/src/main/java/net/runelite/protocol/api/handshake/UpdateHandshakePacket.java
similarity index 100%
rename from protocol-api/src/main/java/net/runelite/protocol/api/handshake/UpdateHandshakePacket.java
rename to cache-client/src/main/java/net/runelite/protocol/api/handshake/UpdateHandshakePacket.java
diff --git a/protocol-api/src/main/java/net/runelite/protocol/api/login/HandshakeResponseType.java b/cache-client/src/main/java/net/runelite/protocol/api/login/HandshakeResponseType.java
similarity index 100%
rename from protocol-api/src/main/java/net/runelite/protocol/api/login/HandshakeResponseType.java
rename to cache-client/src/main/java/net/runelite/protocol/api/login/HandshakeResponseType.java
diff --git a/protocol-api/src/main/java/net/runelite/protocol/api/update/ArchiveRequestPacket.java b/cache-client/src/main/java/net/runelite/protocol/api/update/ArchiveRequestPacket.java
similarity index 100%
rename from protocol-api/src/main/java/net/runelite/protocol/api/update/ArchiveRequestPacket.java
rename to cache-client/src/main/java/net/runelite/protocol/api/update/ArchiveRequestPacket.java
diff --git a/protocol-api/src/main/java/net/runelite/protocol/api/update/ArchiveResponsePacket.java b/cache-client/src/main/java/net/runelite/protocol/api/update/ArchiveResponsePacket.java
similarity index 100%
rename from protocol-api/src/main/java/net/runelite/protocol/api/update/ArchiveResponsePacket.java
rename to cache-client/src/main/java/net/runelite/protocol/api/update/ArchiveResponsePacket.java
diff --git a/protocol-api/src/main/java/net/runelite/protocol/api/update/EncryptionPacket.java b/cache-client/src/main/java/net/runelite/protocol/api/update/EncryptionPacket.java
similarity index 100%
rename from protocol-api/src/main/java/net/runelite/protocol/api/update/EncryptionPacket.java
rename to cache-client/src/main/java/net/runelite/protocol/api/update/EncryptionPacket.java
diff --git a/protocol/src/main/java/net/runelite/protocol/handshake/HandshakeDecoder.java b/cache-client/src/main/java/net/runelite/protocol/handshake/HandshakeDecoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/handshake/HandshakeDecoder.java
rename to cache-client/src/main/java/net/runelite/protocol/handshake/HandshakeDecoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/handshake/HandshakeResponseEncoder.java b/cache-client/src/main/java/net/runelite/protocol/handshake/HandshakeResponseEncoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/handshake/HandshakeResponseEncoder.java
rename to cache-client/src/main/java/net/runelite/protocol/handshake/HandshakeResponseEncoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/handshake/LoginHandshakeEncoder.java b/cache-client/src/main/java/net/runelite/protocol/handshake/LoginHandshakeEncoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/handshake/LoginHandshakeEncoder.java
rename to cache-client/src/main/java/net/runelite/protocol/handshake/LoginHandshakeEncoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/handshake/UpdateHandshakeEncoder.java b/cache-client/src/main/java/net/runelite/protocol/handshake/UpdateHandshakeEncoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/handshake/UpdateHandshakeEncoder.java
rename to cache-client/src/main/java/net/runelite/protocol/handshake/UpdateHandshakeEncoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/update/decoders/ArchiveRequestDecoder.java b/cache-client/src/main/java/net/runelite/protocol/update/decoders/ArchiveRequestDecoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/update/decoders/ArchiveRequestDecoder.java
rename to cache-client/src/main/java/net/runelite/protocol/update/decoders/ArchiveRequestDecoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/update/decoders/ArchiveResponseDecoder.java b/cache-client/src/main/java/net/runelite/protocol/update/decoders/ArchiveResponseDecoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/update/decoders/ArchiveResponseDecoder.java
rename to cache-client/src/main/java/net/runelite/protocol/update/decoders/ArchiveResponseDecoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/update/decoders/EncryptionDecoder.java b/cache-client/src/main/java/net/runelite/protocol/update/decoders/EncryptionDecoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/update/decoders/EncryptionDecoder.java
rename to cache-client/src/main/java/net/runelite/protocol/update/decoders/EncryptionDecoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/update/decoders/HandshakeResponseDecoder.java b/cache-client/src/main/java/net/runelite/protocol/update/decoders/HandshakeResponseDecoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/update/decoders/HandshakeResponseDecoder.java
rename to cache-client/src/main/java/net/runelite/protocol/update/decoders/HandshakeResponseDecoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/update/decoders/LoggedInDecoder.java b/cache-client/src/main/java/net/runelite/protocol/update/decoders/LoggedInDecoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/update/decoders/LoggedInDecoder.java
rename to cache-client/src/main/java/net/runelite/protocol/update/decoders/LoggedInDecoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/update/decoders/LoggedOutDecoder.java b/cache-client/src/main/java/net/runelite/protocol/update/decoders/LoggedOutDecoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/update/decoders/LoggedOutDecoder.java
rename to cache-client/src/main/java/net/runelite/protocol/update/decoders/LoggedOutDecoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/update/decoders/UpdateOpcodes.java b/cache-client/src/main/java/net/runelite/protocol/update/decoders/UpdateOpcodes.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/update/decoders/UpdateOpcodes.java
rename to cache-client/src/main/java/net/runelite/protocol/update/decoders/UpdateOpcodes.java
diff --git a/protocol/src/main/java/net/runelite/protocol/update/encoders/ArchiveRequestEncoder.java b/cache-client/src/main/java/net/runelite/protocol/update/encoders/ArchiveRequestEncoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/update/encoders/ArchiveRequestEncoder.java
rename to cache-client/src/main/java/net/runelite/protocol/update/encoders/ArchiveRequestEncoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/update/encoders/ArchiveResponseEncoder.java b/cache-client/src/main/java/net/runelite/protocol/update/encoders/ArchiveResponseEncoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/update/encoders/ArchiveResponseEncoder.java
rename to cache-client/src/main/java/net/runelite/protocol/update/encoders/ArchiveResponseEncoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/update/encoders/EncryptionEncoder.java b/cache-client/src/main/java/net/runelite/protocol/update/encoders/EncryptionEncoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/update/encoders/EncryptionEncoder.java
rename to cache-client/src/main/java/net/runelite/protocol/update/encoders/EncryptionEncoder.java
diff --git a/protocol/src/main/java/net/runelite/protocol/update/encoders/XorEncoder.java b/cache-client/src/main/java/net/runelite/protocol/update/encoders/XorEncoder.java
similarity index 100%
rename from protocol/src/main/java/net/runelite/protocol/update/encoders/XorEncoder.java
rename to cache-client/src/main/java/net/runelite/protocol/update/encoders/XorEncoder.java
diff --git a/protocol/src/test/java/net/runelite/protocol/update/encoders/ArchiveResponseEncoderTest.java b/cache-client/src/test/java/net/runelite/protocol/update/encoders/ArchiveResponseEncoderTest.java
similarity index 100%
rename from protocol/src/test/java/net/runelite/protocol/update/encoders/ArchiveResponseEncoderTest.java
rename to cache-client/src/test/java/net/runelite/protocol/update/encoders/ArchiveResponseEncoderTest.java
index 8cf508c834..f939431760 100644
--- a/protocol/src/test/java/net/runelite/protocol/update/encoders/ArchiveResponseEncoderTest.java
+++ b/cache-client/src/test/java/net/runelite/protocol/update/encoders/ArchiveResponseEncoderTest.java
@@ -31,8 +31,8 @@ import java.util.List;
import java.util.Random;
import net.runelite.cache.fs.Container;
import net.runelite.cache.fs.jagex.CompressionType;
-import net.runelite.protocol.update.decoders.ArchiveResponseDecoder;
import net.runelite.protocol.api.update.ArchiveResponsePacket;
+import net.runelite.protocol.update.decoders.ArchiveResponseDecoder;
import org.junit.Assert;
import org.junit.Test;
diff --git a/protocol/src/test/java/net/runelite/protocol/update/encoders/XorEncoderTest.java b/cache-client/src/test/java/net/runelite/protocol/update/encoders/XorEncoderTest.java
similarity index 100%
rename from protocol/src/test/java/net/runelite/protocol/update/encoders/XorEncoderTest.java
rename to cache-client/src/test/java/net/runelite/protocol/update/encoders/XorEncoderTest.java
diff --git a/pom.xml b/pom.xml
index 12ab17d09b..cb5770eead 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,8 +121,6 @@
runelite-script-assembler-plugin
http-api
http-service
- protocol-api
- protocol
diff --git a/protocol-api/pom.xml b/protocol-api/pom.xml
deleted file mode 100644
index c5fefbdbeb..0000000000
--- a/protocol-api/pom.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
- 4.0.0
-
-
- net.runelite
- runelite-parent
- 1.6.8-SNAPSHOT
-
-
- protocol-api
- Protocol API
-
-
-
- net.runelite
- runelite-api
- ${project.version}
-
-
- org.slf4j
- slf4j-api
-
-
- com.google.guava
- guava
-
-
- org.projectlombok
- lombok
- provided
-
-
-
- junit
- junit
- 4.12
- test
-
-
-
diff --git a/protocol/pom.xml b/protocol/pom.xml
deleted file mode 100644
index 26e83ab67c..0000000000
--- a/protocol/pom.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
- 4.0.0
-
-
- net.runelite
- runelite-parent
- 1.6.8-SNAPSHOT
-
-
- protocol
- Protocol
-
-
-
- net.runelite
- protocol-api
- ${project.version}
-
-
- net.runelite
- cache
- ${project.version}
-
-
-
- com.google.guava
- guava
-
-
- io.netty
- netty-all
- 4.1.0.Final
-
-
- org.projectlombok
- lombok
- provided
-
-
-
- junit
- junit
- 4.12
- test
-
-
-