🔀 Merge branch 'release/v82'
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / main / FreenetModule.kt
index a8da595..1438c2a 100644 (file)
@@ -1,25 +1,30 @@
 package net.pterodactylus.sone.main
 
-import com.google.inject.Binder
-import com.google.inject.Module
-import com.google.inject.Provides
-import freenet.client.HighLevelSimpleClient
-import freenet.node.Node
-import freenet.pluginmanager.PluginRespirator
+import com.google.inject.*
+import freenet.client.*
+import freenet.clients.http.*
+import freenet.node.*
+import freenet.pluginmanager.*
+import net.pterodactylus.sone.freenet.plugin.*
+import javax.inject.Provider
 import javax.inject.Singleton
 
 /**
  * Guice [Module] that supplies some objects that are in fact supplied by the Freenet node.
  */
-class FreenetModule(private val pluginRespirator: PluginRespirator): Module {
+class FreenetModule(private val pluginRespirator: PluginRespirator) : Module {
 
        override fun configure(binder: Binder): Unit = binder.run {
-               bind(PluginRespirator::class.java).toProvider { pluginRespirator }
-               pluginRespirator.node!!.let { node -> bind(Node::class.java).toProvider { node } }
-               bind(HighLevelSimpleClient::class.java).toProvider { pluginRespirator.hlSimpleClient!! }
+               bind(PluginRespiratorFacade::class.java).toProvider(Provider { FredPluginRespiratorFacade(pluginRespirator) }).`in`(Singleton::class.java)
+               bind(PluginConnector::class.java).to(FredPluginConnector::class.java).`in`(Singleton::class.java)
+               bind(Node::class.java).toProvider(Provider { pluginRespirator.node })
+               bind(HighLevelSimpleClient::class.java).toProvider(Provider<HighLevelSimpleClient> { pluginRespirator.hlSimpleClient!! })
+               bind(ToadletContainer::class.java).toProvider(Provider<ToadletContainer> { pluginRespirator.toadletContainer })
+               bind(PageMaker::class.java).toProvider(Provider<PageMaker> { pluginRespirator.pageMaker })
        }
 
-       @Provides @Singleton
+       @Provides
+       @Singleton
        fun getSessionManager() = pluginRespirator.getSessionManager("Sone")!!
 
 }