forked from openrs2/openrs2
This will allow the RSA private key to be injected in the login packet codec.master
parent
af3477776c
commit
73defefef4
@ -0,0 +1,81 @@ |
||||
package org.openrs2.protocol |
||||
|
||||
import com.google.inject.AbstractModule |
||||
import com.google.inject.PrivateModule |
||||
import com.google.inject.TypeLiteral |
||||
import com.google.inject.multibindings.Multibinder |
||||
import org.openrs2.buffer.BufferModule |
||||
import org.openrs2.crypto.CryptoModule |
||||
import org.openrs2.protocol.js5.Js5RemoteDownstream |
||||
import org.openrs2.protocol.login.ClientOutOfDateCodec |
||||
import org.openrs2.protocol.login.InitCrossDomainConnectionCodec |
||||
import org.openrs2.protocol.login.InitGameConnectionCodec |
||||
import org.openrs2.protocol.login.InitJaggrabConnectionCodec |
||||
import org.openrs2.protocol.login.InitJs5RemoteConnectionCodec |
||||
import org.openrs2.protocol.login.IpLimitCodec |
||||
import org.openrs2.protocol.login.Js5OkCodec |
||||
import org.openrs2.protocol.login.LoginDownstream |
||||
import org.openrs2.protocol.login.LoginUpstream |
||||
import org.openrs2.protocol.login.RequestWorldListCodec |
||||
import org.openrs2.protocol.login.ServerFullCodec |
||||
import org.openrs2.protocol.world.WorldListDownstream |
||||
import org.openrs2.protocol.world.WorldListResponseCodec |
||||
|
||||
public object ProtocolModule : AbstractModule() { |
||||
public override fun configure() { |
||||
install(BufferModule) |
||||
install(CryptoModule) |
||||
|
||||
bindProtocol( |
||||
LoginUpstream::class.java, |
||||
InitGameConnectionCodec::class.java, |
||||
InitJs5RemoteConnectionCodec::class.java, |
||||
InitJaggrabConnectionCodec::class.java, |
||||
RequestWorldListCodec::class.java, |
||||
InitCrossDomainConnectionCodec::class.java |
||||
) |
||||
|
||||
bindProtocol( |
||||
LoginDownstream::class.java, |
||||
ClientOutOfDateCodec::class.java, |
||||
ServerFullCodec::class.java, |
||||
IpLimitCodec::class.java |
||||
) |
||||
|
||||
bindProtocol( |
||||
Js5RemoteDownstream::class.java, |
||||
Js5OkCodec::class.java, |
||||
ClientOutOfDateCodec::class.java, |
||||
ServerFullCodec::class.java, |
||||
IpLimitCodec::class.java |
||||
) |
||||
|
||||
bindProtocol( |
||||
WorldListDownstream::class.java, |
||||
WorldListResponseCodec::class.java |
||||
) |
||||
} |
||||
|
||||
private fun bindProtocol( |
||||
annotation: Class<out Annotation>, |
||||
vararg codecs: Class<out PacketCodec<*>> |
||||
) { |
||||
install(object : PrivateModule() { |
||||
override fun configure() { |
||||
val binder = Multibinder.newSetBinder(binder(), PACKET_CODEC_TYPE_LITERAL) |
||||
for (codec in codecs) { |
||||
binder.addBinding().to(codec) |
||||
} |
||||
|
||||
bind(Protocol::class.java) |
||||
.annotatedWith(annotation) |
||||
.to(Protocol::class.java) |
||||
|
||||
expose(Protocol::class.java) |
||||
.annotatedWith(annotation) |
||||
} |
||||
}) |
||||
} |
||||
|
||||
private val PACKET_CODEC_TYPE_LITERAL = object : TypeLiteral<PacketCodec<*>>() {} |
||||
} |
@ -0,0 +1,8 @@ |
||||
package org.openrs2.protocol.js5 |
||||
|
||||
import javax.inject.Qualifier |
||||
|
||||
@Qualifier |
||||
@Retention(AnnotationRetention.RUNTIME) |
||||
@Target(AnnotationTarget.FIELD, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION) |
||||
public annotation class Js5RemoteDownstream |
@ -1,8 +1,10 @@ |
||||
package org.openrs2.protocol.login |
||||
|
||||
import org.openrs2.protocol.EmptyPacketCodec |
||||
import javax.inject.Singleton |
||||
|
||||
public object ClientOutOfDateCodec : EmptyPacketCodec<LoginResponse.ClientOutOfDate>( |
||||
@Singleton |
||||
public class ClientOutOfDateCodec : EmptyPacketCodec<LoginResponse.ClientOutOfDate>( |
||||
packet = LoginResponse.ClientOutOfDate, |
||||
opcode = 6 |
||||
) |
||||
|
@ -1,8 +1,10 @@ |
||||
package org.openrs2.protocol.login |
||||
|
||||
import org.openrs2.protocol.EmptyPacketCodec |
||||
import javax.inject.Singleton |
||||
|
||||
public object InitCrossDomainConnectionCodec : EmptyPacketCodec<LoginRequest.InitCrossDomainConnection>( |
||||
@Singleton |
||||
public class InitCrossDomainConnectionCodec : EmptyPacketCodec<LoginRequest.InitCrossDomainConnection>( |
||||
opcode = 'G'.code, |
||||
packet = LoginRequest.InitCrossDomainConnection |
||||
) |
||||
|
@ -1,8 +1,10 @@ |
||||
package org.openrs2.protocol.login |
||||
|
||||
import org.openrs2.protocol.EmptyPacketCodec |
||||
import javax.inject.Singleton |
||||
|
||||
public object InitJaggrabConnectionCodec : EmptyPacketCodec<LoginRequest.InitJaggrabConnection>( |
||||
@Singleton |
||||
public class InitJaggrabConnectionCodec : EmptyPacketCodec<LoginRequest.InitJaggrabConnection>( |
||||
packet = LoginRequest.InitJaggrabConnection, |
||||
opcode = 17 |
||||
) |
||||
|
@ -1,8 +1,10 @@ |
||||
package org.openrs2.protocol.login |
||||
|
||||
import org.openrs2.protocol.EmptyPacketCodec |
||||
import javax.inject.Singleton |
||||
|
||||
public object IpLimitCodec : EmptyPacketCodec<LoginResponse.IpLimit>( |
||||
@Singleton |
||||
public class IpLimitCodec : EmptyPacketCodec<LoginResponse.IpLimit>( |
||||
packet = LoginResponse.IpLimit, |
||||
opcode = 9 |
||||
) |
||||
|
@ -1,8 +1,10 @@ |
||||
package org.openrs2.protocol.login |
||||
|
||||
import org.openrs2.protocol.EmptyPacketCodec |
||||
import javax.inject.Singleton |
||||
|
||||
public object Js5OkCodec : EmptyPacketCodec<LoginResponse.Js5Ok>( |
||||
@Singleton |
||||
public class Js5OkCodec : EmptyPacketCodec<LoginResponse.Js5Ok>( |
||||
packet = LoginResponse.Js5Ok, |
||||
opcode = 0 |
||||
) |
||||
|
@ -0,0 +1,8 @@ |
||||
package org.openrs2.protocol.login |
||||
|
||||
import javax.inject.Qualifier |
||||
|
||||
@Qualifier |
||||
@Retention(AnnotationRetention.RUNTIME) |
||||
@Target(AnnotationTarget.FIELD, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION) |
||||
public annotation class LoginDownstream |
@ -0,0 +1,8 @@ |
||||
package org.openrs2.protocol.login |
||||
|
||||
import javax.inject.Qualifier |
||||
|
||||
@Qualifier |
||||
@Retention(AnnotationRetention.RUNTIME) |
||||
@Target(AnnotationTarget.FIELD, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION) |
||||
public annotation class LoginUpstream |
@ -1,8 +1,10 @@ |
||||
package org.openrs2.protocol.login |
||||
|
||||
import org.openrs2.protocol.EmptyPacketCodec |
||||
import javax.inject.Singleton |
||||
|
||||
public object ServerFullCodec : EmptyPacketCodec<LoginResponse.ServerFull>( |
||||
@Singleton |
||||
public class ServerFullCodec : EmptyPacketCodec<LoginResponse.ServerFull>( |
||||
packet = LoginResponse.ServerFull, |
||||
opcode = 7 |
||||
) |
||||
|
@ -0,0 +1,8 @@ |
||||
package org.openrs2.protocol.world |
||||
|
||||
import javax.inject.Qualifier |
||||
|
||||
@Qualifier |
||||
@Retention(AnnotationRetention.RUNTIME) |
||||
@Target(AnnotationTarget.FIELD, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION) |
||||
public annotation class WorldListDownstream |
Loading…
Reference in new issue