package dev.openrs2.deob import com.google.inject.AbstractModule import com.google.inject.multibindings.Multibinder import dev.openrs2.asm.transform.Transformer import dev.openrs2.bundler.BundlerModule import dev.openrs2.bundler.transform.ResourceTransformer import dev.openrs2.deob.map.DeobfuscatorMapModule import dev.openrs2.deob.transform.BitShiftTransformer import dev.openrs2.deob.transform.BitwiseOpTransformer import dev.openrs2.deob.transform.BundlerTransformer import dev.openrs2.deob.transform.CanvasTransformer import dev.openrs2.deob.transform.ClassLiteralTransformer import dev.openrs2.deob.transform.ConstantArgTransformer import dev.openrs2.deob.transform.CounterTransformer import dev.openrs2.deob.transform.EmptyClassTransformer import dev.openrs2.deob.transform.ExceptionTracingTransformer import dev.openrs2.deob.transform.FernflowerExceptionTransformer import dev.openrs2.deob.transform.FieldOrderTransformer import dev.openrs2.deob.transform.FinalTransformer import dev.openrs2.deob.transform.InvokeSpecialTransformer import dev.openrs2.deob.transform.MethodOrderTransformer import dev.openrs2.deob.transform.MonitorTransformer import dev.openrs2.deob.transform.OpaquePredicateTransformer import dev.openrs2.deob.transform.OriginalNameTransformer import dev.openrs2.deob.transform.OriginalPcRestoreTransformer import dev.openrs2.deob.transform.OriginalPcSaveTransformer import dev.openrs2.deob.transform.OverrideTransformer import dev.openrs2.deob.transform.RedundantGotoTransformer import dev.openrs2.deob.transform.RemapTransformer import dev.openrs2.deob.transform.ResetTransformer import dev.openrs2.deob.transform.StaticScramblingTransformer import dev.openrs2.deob.transform.UnusedArgTransformer import dev.openrs2.deob.transform.UnusedLocalTransformer import dev.openrs2.deob.transform.UnusedMethodTransformer import dev.openrs2.deob.transform.VisibilityTransformer object DeobfuscatorModule : AbstractModule() { override fun configure() { install(BundlerModule) install(DeobfuscatorMapModule) bind(Profile::class.java) .toInstance(Profile.BUILD_550) val binder = Multibinder.newSetBinder(binder(), Transformer::class.java, DeobfuscatorQualifier::class.java) binder.addBinding().to(OriginalPcSaveTransformer::class.java) binder.addBinding().to(OriginalNameTransformer::class.java) binder.addBinding().to(BundlerTransformer::class.java) binder.addBinding().to(ResourceTransformer::class.java) binder.addBinding().to(OpaquePredicateTransformer::class.java) binder.addBinding().to(ExceptionTracingTransformer::class.java) binder.addBinding().to(MonitorTransformer::class.java) binder.addBinding().to(BitShiftTransformer::class.java) binder.addBinding().to(CanvasTransformer::class.java) binder.addBinding().to(FieldOrderTransformer::class.java) binder.addBinding().to(BitwiseOpTransformer::class.java) binder.addBinding().to(RemapTransformer::class.java) binder.addBinding().to(ConstantArgTransformer::class.java) binder.addBinding().to(UnusedLocalTransformer::class.java) binder.addBinding().to(UnusedMethodTransformer::class.java) binder.addBinding().to(UnusedArgTransformer::class.java) binder.addBinding().to(CounterTransformer::class.java) binder.addBinding().to(ResetTransformer::class.java) binder.addBinding().to(ClassLiteralTransformer::class.java) binder.addBinding().to(InvokeSpecialTransformer::class.java) binder.addBinding().to(StaticScramblingTransformer::class.java) binder.addBinding().to(EmptyClassTransformer::class.java) binder.addBinding().to(MethodOrderTransformer::class.java) binder.addBinding().to(VisibilityTransformer::class.java) binder.addBinding().to(FinalTransformer::class.java) binder.addBinding().to(OverrideTransformer::class.java) binder.addBinding().to(RedundantGotoTransformer::class.java) binder.addBinding().to(OriginalPcRestoreTransformer::class.java) binder.addBinding().to(FernflowerExceptionTransformer::class.java) } }