aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/thedarkcolour
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/thedarkcolour')
-rw-r--r--src/main/kotlin/thedarkcolour/kotlinforforge/AutoKotlinEventBusSubscriber.kt24
-rw-r--r--src/main/kotlin/thedarkcolour/kotlinforforge/forge/EventBus.kt16
-rw-r--r--src/main/kotlin/thedarkcolour/kotlinforforge/webgenerator/WebGenerator.kt76
3 files changed, 97 insertions, 19 deletions
diff --git a/src/main/kotlin/thedarkcolour/kotlinforforge/AutoKotlinEventBusSubscriber.kt b/src/main/kotlin/thedarkcolour/kotlinforforge/AutoKotlinEventBusSubscriber.kt
index 46cdc4d..0189ea7 100644
--- a/src/main/kotlin/thedarkcolour/kotlinforforge/AutoKotlinEventBusSubscriber.kt
+++ b/src/main/kotlin/thedarkcolour/kotlinforforge/AutoKotlinEventBusSubscriber.kt
@@ -17,11 +17,12 @@ import java.util.stream.Collectors
* Handles [net.minecraftforge.fml.common.Mod.EventBusSubscriber]
*/
@Suppress("unused")
-internal object AutoKotlinEventBusSubscriber {
- private val EVENT_BUS_SUBSCRIBER: Type = Type.getType(Mod.EventBusSubscriber::class.java)
+object AutoKotlinEventBusSubscriber {
+ @PublishedApi
+ internal val EVENT_BUS_SUBSCRIBER: Type = Type.getType(Mod.EventBusSubscriber::class.java)
/**
- * Registers Kotlin objects that are annotated with [Mod.EventBusSubscriber]
+ * Registers Kotlin objects and companion objects that are annotated with [Mod.EventBusSubscriber]
* This allows you to declare an object that subscribes to the event bus
* without making all the [net.minecraftforge.eventbus.api.SubscribeEvent] annotated with [JvmStatic]
*
@@ -31,22 +32,7 @@ internal object AutoKotlinEventBusSubscriber {
* public object ExampleSubscriber {
* @SubscribeEvent
* public fun onItemRegistry(event: RegistryEvent.Register<Item>) {
- * println("Look! We're in items :)")
- * }
- * }
- *
- * This also works with companion objects.
- * You must define the [net.minecraftforge.eventbus.api.SubscribeEvent] methods inside the companion object.
- * Example Usage:
- *
- * public class ExampleSubscriberClass {
- *
- * @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
- * companion object ExampleSubscriberCompanion {
- * @SubscribeEvent
- * public fun onItemRegistry(event: RegistryEvent.Register<Item>) {
- * println("Look! We're in items :)")
- * }
+ * println("Look! We're in items!")
* }
* }
*/
diff --git a/src/main/kotlin/thedarkcolour/kotlinforforge/forge/EventBus.kt b/src/main/kotlin/thedarkcolour/kotlinforforge/forge/EventBus.kt
new file mode 100644
index 0000000..8fb2552
--- /dev/null
+++ b/src/main/kotlin/thedarkcolour/kotlinforforge/forge/EventBus.kt
@@ -0,0 +1,16 @@
+package thedarkcolour.kotlinforforge.forge
+
+import net.minecraftforge.common.MinecraftForge
+import net.minecraftforge.eventbus.api.IEventBus
+
+/**
+ * The forge event bus.
+ * Many events that occur during the game are fired on this bus.
+ *
+ * Examples:
+ * @see net.minecraftforge.event.entity.player.PlayerEvent
+ * @see net.minecraftforge.event.entity.living.LivingEvent
+ * @see net.minecraftforge.event.world.BlockEvent
+ */
+val FORGE_BUS: IEventBus
+ inline get() = MinecraftForge.EVENT_BUS \ No newline at end of file
diff --git a/src/main/kotlin/thedarkcolour/kotlinforforge/webgenerator/WebGenerator.kt b/src/main/kotlin/thedarkcolour/kotlinforforge/webgenerator/WebGenerator.kt
new file mode 100644
index 0000000..29150f0
--- /dev/null
+++ b/src/main/kotlin/thedarkcolour/kotlinforforge/webgenerator/WebGenerator.kt
@@ -0,0 +1,76 @@
+@file:JvmName("WebGenerator")
+
+package thedarkcolour.kotlinforforge.webgenerator
+
+import org.apache.commons.io.FileUtils
+import org.jsoup.Jsoup
+import org.jsoup.nodes.Attribute
+import org.jsoup.nodes.Attributes
+import org.jsoup.nodes.Document
+import org.jsoup.nodes.Element
+import org.jsoup.parser.Tag
+import java.io.File
+import java.nio.charset.Charset
+
+fun main() = run()
+
+fun run() {
+ // val v = Files.newDirectoryStream(File("C:\\Things\\mods\\thedarkcolour.kotlinforforge\\thedarkcolour\\thedarkcolour.kotlinforforge").toPath())
+ // val mavenMetadata = File("C:\\Things\\mods\\thedarkcolour.kotlinforforge\\thedarkcolour\\thedarkcolour.kotlinforforge\\maven-metadata.xml")
+
+ //val webHtml = Jsoup.parse(File("..\\KotlinForForge\\thedarkcolour\\thedarkcolour.kotlinforforge\\web.html"), null).childNodes()[0]
+ //webHtml.childNodes()[2].childNodes()[5].childNodes().filterIsInstance<Element>().forEach(::println)
+
+ val thedarkcolour = File("C:\\Things\\mods\\KotlinForForge\\thedarkcolour")
+
+ val web = File("C:\\Things\\mods\\KotlinForForge\\thedarkcolour\\web.html")
+ val webHtml = Jsoup.parse(web, "UTF-8")
+
+ for (file in thedarkcolour.listFiles()!!) {
+ if (file.isDirectory) {
+ val pre = webHtml.getElementsByAttributeValue("href", "../index.html")
+ .parents()
+ .first()
+ val attr = Attributes().put(Attribute("href", file.absolutePath.replace("${thedarkcolour.absolutePath}\\", "") + "/web.html"))
+
+ if (pre.getElementsByAttributeValue("href", attr.get("href")).isEmpty()) {
+ pre.appendChild(Element(Tag.valueOf("a"), webHtml.baseUri(), attr))
+
+ val innerWeb = File("${file.absolutePath}\\web.html")
+ innerWeb.createNewFile()
+ }
+ //webHtml.allElements.find {
+ // it.tagName() == "body"
+ //}!!.allElements.find {
+ // it.tagName() == "pre"
+ //}!!.allElements.find {
+ // print(it.attr("href"))
+ // it.className() == ""
+ //}//.appendChild((Element(Tag.valueOf("a"), "hi")))
+ }
+ }
+
+ FileUtils.writeStringToFile(web, webHtml.outerHtml(), Charset.defaultCharset())
+
+ /*
+ <body>
+ <h1>Index of /thedarkcolour.kotlinforforge/</h1>
+ <hr>
+ <pre><a href="../web.html">../</a>
+ <a href="1.0.0/web.html">1.0.0</a>
+ <a href="maven-metadata.xml">maven-metadata.xml</a>
+ <a href="maven-metadata.xml.md5">maven-metadata.xml.md5</a>
+ <a href="maven-metadata.xml.sha1">maven-metadata.xml.sha1</a>
+ </pre>
+ <hr>
+ </body>
+ */
+}
+
+fun getPre(doc: Document): Element {
+ return doc.getElementsByAttributeValue("href", "../web.html")
+ .parents()
+ .first() ?: doc.getElementsByAttributeValue("href", "../index.html")
+ .parents()
+ .first()
+} \ No newline at end of file