diff --git a/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvType.kt b/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvType.kt new file mode 100644 index 00000000..f2dce171 --- /dev/null +++ b/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvType.kt @@ -0,0 +1,24 @@ +package org.openrs2.cache.config.inv + +import io.netty.buffer.ByteBuf +import org.openrs2.cache.config.ConfigType + +public class InvType(id: Int) : ConfigType(id) { + public var size: Int = 0 + + override fun read(buf: ByteBuf, code: Int) { + when (code) { + 2 -> size = buf.readUnsignedShort() + else -> throw IllegalArgumentException("Unsupported config code: $code") + } + } + + override fun write(buf: ByteBuf) { + if (size != 0) { + buf.writeByte(2) + buf.writeShort(size) + } + + buf.writeByte(0) + } +} diff --git a/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvTypeList.kt b/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvTypeList.kt new file mode 100644 index 00000000..0900dbcc --- /dev/null +++ b/cache-550/src/main/kotlin/org/openrs2/cache/config/inv/InvTypeList.kt @@ -0,0 +1,19 @@ +package org.openrs2.cache.config.inv + +import org.openrs2.cache.Cache +import org.openrs2.cache.Js5Archive +import org.openrs2.cache.Js5ConfigGroup +import org.openrs2.cache.config.GroupConfigTypeList +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +public class InvTypeList @Inject constructor(cache: Cache) : GroupConfigTypeList( + cache, + archive = Js5Archive.CONFIG, + group = Js5ConfigGroup.INVTYPE +) { + override fun allocate(id: Int): InvType { + return InvType(id) + } +}