diff options
21 files changed, 222 insertions, 79 deletions
diff --git a/build.gradle b/build.gradle index 0e288ba..c0855c3 100644 --- a/build.gradle +++ b/build.gradle @@ -9,6 +9,7 @@ buildscript { dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version" classpath 'org.jetbrains.dokka:dokka-gradle-plugin:0.10.1' classpath group: 'com.wynprice.cursemaven', name: 'CurseMaven', version: '2.1.5' } @@ -20,9 +21,10 @@ plugins { apply plugin: 'net.minecraftforge.gradle' apply plugin: 'kotlin' +apply plugin: 'kotlinx-serialization' apply plugin: 'org.jetbrains.dokka' -version = "1.7.0" +version = "1.8.0" group = 'thedarkcolour.kotlinforforge' archivesBaseName = 'kotlinforforge' @@ -48,7 +50,7 @@ repositories { } dependencies { - minecraft 'net.minecraftforge:forge:1.16.2-33.0.22' + minecraft 'net.minecraftforge:forge:1.16.5-36.0.9' compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib", version: kotlin_version compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib-jdk7", version: kotlin_version @@ -57,13 +59,14 @@ dependencies { compile group: "org.jetbrains", name: "annotations", version: annotations_version compile group: "org.jetbrains.kotlinx", name: "kotlinx-coroutines-core", version: coroutines_version compile group: "org.jetbrains.kotlinx", name: "kotlinx-coroutines-jdk8", version: coroutines_version + compile group: "org.jetbrains.kotlinx", name: "kotlinx-serialization-json", version: serialization_version // Tests implementation 'junit:junit:4.11' } minecraft { - mappings channel: 'snapshot', version: '20200723-1.16.1' + mappings channel: 'snapshot', version: '20201028-1.16.3' runs { client { @@ -90,6 +93,7 @@ shadowJar { include dependency("org.jetbrains:annotations:${annotations_version}") include dependency("org.jetbrains.kotlinx:kotlinx-coroutines-core:${coroutines_version}") include dependency("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:${coroutines_version}") + include dependency("org.jetbrains.kotlinx:kotlinx-serialization-json:${serialization_version}") } } @@ -110,7 +114,7 @@ jar { static def options(kotlinOptions) { kotlinOptions.jvmTarget = '1.8' - kotlinOptions.freeCompilerArgs = ["-Xexplicit-api=warning"] + kotlinOptions.freeCompilerArgs = ['-Xexplicit-api=warning', '-Xjvm-default=enable'] } compileKotlin { diff --git a/changelog.md b/changelog.md index 39310d7..4baddc0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +##Kotlin for Forge 1.8.0 +- Fixed a few things to match the new EventBus version. +- Now includes the Kotlin JSON Serialization library. + ##Kotlin for Forge 1.7.0 - Added `registerObject` function to KDeferredRegister for getting ObjectHolderDelegate instances without needing a cast to ObjectHolderDelegate. diff --git a/gradle.properties b/gradle.properties index 4dd7111..200a842 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,4 +5,5 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false kotlin_version=1.4.21 coroutines_version = 1.4.2 -annotations_version = 20.1.0
\ No newline at end of file +annotations_version = 20.1.0 +serialization_version = 1.0.1
\ No newline at end of file diff --git a/src/main/java/net/minecraftforge/fml/event/lifecycle/IModBusEvent.java b/src/main/java/net/minecraftforge/fml/event/lifecycle/IModBusEvent.java new file mode 100644 index 0000000..22ebb57 --- /dev/null +++ b/src/main/java/net/minecraftforge/fml/event/lifecycle/IModBusEvent.java @@ -0,0 +1,4 @@ +package net.minecraftforge.fml.event.lifecycle; + +// Make things compile +public interface IModBusEvent {} diff --git a/src/main/kotlin/thedarkcolour/kotlinforforge/KotlinForForge.kt b/src/main/kotlin/thedarkcolour/kotlinforforge/KotlinForForge.kt index 168d3f0..fac6ed6 100644 --- a/src/main/kotlin/thedarkcolour/kotlinforforge/KotlinForForge.kt +++ b/src/main/kotlin/thedarkcolour/kotlinforforge/KotlinForForge.kt @@ -1,7 +1,12 @@ package thedarkcolour.kotlinforforge +import net.minecraftforge.common.MinecraftForge +import net.minecraftforge.event.entity.player.AdvancementEvent import net.minecraftforge.fml.common.Mod +import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext +import thedarkcolour.kotlinforforge.forge.FORGE_BUS +import thedarkcolour.kotlinforforge.forge.MOD_BUS /** * Set `modLoader` in mods.toml to @@ -14,4 +19,14 @@ import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext * check out the [KotlinModdingSkeleton repository](https://github.com/thedarkcolour/KotlinModdingSkeleton). */ @Mod("kotlinforforge") -public object KotlinForForge
\ No newline at end of file +public object KotlinForForge { + init { + MOD_BUS.addListener { event: FMLLoadCompleteEvent -> + val a = FORGE_BUS.post(AdvancementEvent(null, null)) + val b = MinecraftForge.EVENT_BUS.post(AdvancementEvent(null, null)) + + println("POST TEST: $a") + println("POST TEST: $b") + } + } +}
\ No newline at end of file diff --git a/src/main/kotlin/thedarkcolour/kotlinforforge/KotlinModContainer.kt b/src/main/kotlin/thedarkcolour/kotlinforforge/KotlinModContainer.kt index db61225..7208cc6 100644 --- a/src/main/kotlin/thedarkcolour/kotlinforforge/KotlinModContainer.kt +++ b/src/main/kotlin/thedarkcolour/kotlinforforge/KotlinModContainer.kt @@ -5,21 +5,20 @@ import net.minecraftforge.eventbus.api.BusBuilder import net.minecraftforge.eventbus.api.Event import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.eventbus.api.IEventListener -import net.minecraftforge.fml.LifecycleEventProvider.LifecycleEvent import net.minecraftforge.fml.Logging import net.minecraftforge.fml.ModContainer import net.minecraftforge.fml.ModLoadingException import net.minecraftforge.fml.ModLoadingStage import net.minecraftforge.fml.config.ModConfig +import net.minecraftforge.fml.event.lifecycle.IModBusEvent import net.minecraftforge.forgespi.language.IModInfo import net.minecraftforge.forgespi.language.ModFileScanData import thedarkcolour.kotlinforforge.eventbus.KotlinEventBus import thedarkcolour.kotlinforforge.kotlin.supply +import java.lang.IllegalArgumentException import java.lang.reflect.Field import java.util.function.Consumer -public typealias LifecycleEventListener = (LifecycleEvent) -> Unit - /** * The Kotlin for Forge `ModContainer`. */ @@ -41,7 +40,7 @@ public class KotlinModContainer( */ public val eventBus: KotlinEventBus - private val _triggerMap: MutableMap<ModLoadingStage, Consumer<LifecycleEvent>>? + private val _triggerMap: MutableMap<ModLoadingStage, Any>? private val _activityMap: MutableMap<ModLoadingStage, Runnable>? init { @@ -53,7 +52,7 @@ public class KotlinModContainer( } @Suppress("UNCHECKED_CAST") _triggerMap = try { - TRIGGER_MAP_FIELD?.get(this) as MutableMap<ModLoadingStage, Consumer<LifecycleEvent>> + TRIGGER_MAP_FIELD?.get(this) as MutableMap<ModLoadingStage, Any> } catch (e: Exception) { null } @@ -63,15 +62,7 @@ public class KotlinModContainer( if (_activityMap != null) { _activityMap[ModLoadingStage.CONSTRUCT] = Runnable(::constructMod) } else if (_triggerMap != null) { - _triggerMap[ModLoadingStage.CONSTRUCT] = createTrigger( { constructMod() }, ::afterEvent) - _triggerMap[ModLoadingStage.CREATE_REGISTRIES] = createTrigger(::fireEvent, ::afterEvent) - _triggerMap[ModLoadingStage.LOAD_REGISTRIES] = createTrigger(::fireEvent, ::afterEvent) - _triggerMap[ModLoadingStage.COMMON_SETUP] = createTrigger(::fireEvent, ::afterEvent) - _triggerMap[ModLoadingStage.SIDED_SETUP] = createTrigger(::fireEvent, ::afterEvent) - _triggerMap[ModLoadingStage.ENQUEUE_IMC] = createTrigger(::fireEvent, ::afterEvent) - _triggerMap[ModLoadingStage.PROCESS_IMC] = createTrigger(::fireEvent, ::afterEvent) - _triggerMap[ModLoadingStage.COMPLETE] = createTrigger(::fireEvent, ::afterEvent) - _triggerMap[ModLoadingStage.GATHERDATA] = createTrigger(::fireEvent, ::afterEvent) + setupTriggerMap(_triggerMap) } eventBus = KotlinEventBus(BusBuilder.builder().setExceptionHandler(::onEventFailed).setTrackPhases(false)) @@ -79,61 +70,20 @@ public class KotlinModContainer( } /** - * Creates a single `Consumer` that calls - * both [consumerA] and [consumerB]. - */ - private fun createTrigger( - consumerA: LifecycleEventListener, - consumerB: LifecycleEventListener, - ): Consumer<LifecycleEvent> { - return Consumer { event -> - consumerA(event) - consumerB(event) - } - } - - /** * The `IEventExceptionHandler` that logs * errors in events as errors. */ private fun onEventFailed( - iEventBus: IEventBus, - event: Event, - iEventListeners: Array<IEventListener>, - i: Int, - throwable: Throwable + iEventBus: IEventBus, + event: Event, + iEventListeners: Array<IEventListener>, + i: Int, + throwable: Throwable, ) { LOGGER.error(EventBusErrorMessage(event, i, iEventListeners, throwable)) } /** - * Fires a `LifecycleEvent` on the mod [eventBus]. - */ - private fun fireEvent(lifecycleEvent: LifecycleEvent) { - val event = lifecycleEvent.getOrBuildEvent(this) - - LOGGER.debug(Logging.LOADING, "Firing event for modid $modId : $event") - - try { - eventBus.post(event) - LOGGER.debug(Logging.LOADING, "Fired event for modid $modId : $event") - } catch (throwable: Throwable) { - LOGGER.error(Logging.LOADING, "An error occurred while dispatching event ${lifecycleEvent.fromStage()} to $modId") - throw ModLoadingException(modInfo, lifecycleEvent.fromStage(), "fml.modloading.errorduringevent", throwable) - } - } - - /** - * If an error was thrown during the event, - * log it to the console as an error. - */ - private fun afterEvent(lifecycleEvent: LifecycleEvent) { - if (currentState == ModLoadingStage.ERROR) { - LOGGER.error(Logging.LOADING, "An error occurred while dispatching event ${lifecycleEvent.fromStage()} to $modId") - } - } - - /** * Initializes [modInstance] and calls the mod constructor */ private fun constructMod() { @@ -177,7 +127,7 @@ public class KotlinModContainer( override fun getMod(): Any = modInstance - override fun acceptEvent(e: Event) { + public override fun <T> acceptEvent(e: T) where T : Event, T : IModBusEvent { try { LOGGER.debug("Firing event for modid $modId : $e") eventBus.post(e) @@ -188,6 +138,50 @@ public class KotlinModContainer( } } + public fun setupTriggerMap(map: MutableMap<ModLoadingStage, Any>) { + map[ModLoadingStage.CONSTRUCT] = createTrigger( { constructMod() }, ::afterEvent) + map[ModLoadingStage.CREATE_REGISTRIES] = createTrigger(::fireEvent, ::afterEvent) + map[ModLoadingStage.LOAD_REGISTRIES] = createTrigger(::fireEvent, ::afterEvent) + map[ModLoadingStage.COMMON_SETUP] = createTrigger(::fireEvent, ::afterEvent) + map[ModLoadingStage.SIDED_SETUP] = createTrigger(::fireEvent, ::afterEvent) + map[ModLoadingStage.ENQUEUE_IMC] = createTrigger(::fireEvent, ::afterEvent) + map[ModLoadingStage.PROCESS_IMC] = createTrigger(::fireEvent, ::afterEvent) + map[ModLoadingStage.COMPLETE] = createTrigger(::fireEvent, ::afterEvent) + try { + map[ModLoadingStage.valueOf("GATHERDATA")] = createTrigger(::fireEvent, ::afterEvent) + } catch (e: IllegalArgumentException) {} + } + + private fun afterEvent(lifecycleEvent: Any) { + if (currentState == ModLoadingStage.ERROR) { + LOGGER.error(Logging.LOADING, "An error occurred while dispatching event ${fromStageMethod!!.invoke(lifecycleEvent)} to ${getModId()}") + } + } + + private fun fireEvent(lifecycleEvent: Any) { + val event = getOrBuildEventMethod!!.invoke(lifecycleEvent, this) as Event + + LOGGER.debug(Logging.LOADING, "Firing event for modid ${getModId()} : $event") + + try { + eventBus.post(event) + LOGGER.debug(Logging.LOADING, "Fired event for modid ${getModId()} : $event") + } catch (throwable: Throwable) { + LOGGER.error(Logging.LOADING, "An error occurred while dispatching event ${fromStageMethod!!.invoke(lifecycleEvent)} to ${getModId()}") + throw ModLoadingException(getModInfo(), fromStageMethod.invoke(lifecycleEvent) as ModLoadingStage, "fml.modloading.errorduringevent", throwable) + } + } + + private fun createTrigger( + consumerA: (Any) -> Unit, + consumerB: (Any) -> Unit, + ): Consumer<Any> { + return Consumer { event -> + consumerA(event) + consumerB(event) + } + } + private companion object { private val TRIGGER_MAP_FIELD: Field? = try { ModContainer::class.java.getDeclaredField("triggerMap").also { field -> @@ -203,5 +197,12 @@ public class KotlinModContainer( } catch (e: NoSuchFieldException) { null } + + private val getOrBuildEventMethod = try { + Class.forName("net.minecraftforge.fml.LifecycleEventProvider\$LifecycleEvent").getDeclaredMethod("getOrBuildEvent", ModContainer::class.java) + } catch (e: ClassNotFoundException) { null } catch (e: NoSuchMethodError) { null } + private val fromStageMethod = try { + Class.forName("net.minecraftforge.fml.LifecycleEventProvider\$LifecycleEvent").getDeclaredMethod("fromStage") + } catch (e: ClassNotFoundException) { null } catch (e: NoSuchMethodError) { null } } }
\ No newline at end of file diff --git a/src/main/kotlin/thedarkcolour/kotlinforforge/eventbus/IKotlinEventBus.kt b/src/main/kotlin/thedarkcolour/kotlinforforge/eventbus/IKotlinEventBus.kt new file mode 100644 index 0000000..e26c002 --- /dev/null +++ b/src/main/kotlin/thedarkcolour/kotlinforforge/eventbus/IKotlinEventBus.kt @@ -0,0 +1,22 @@ +package thedarkcolour.kotlinforforge.eventbus + +import net.minecraftforge.eventbus.api.Event +import net.minecraftforge.eventbus.api.IEventBus +import net.minecraftforge.eventbus.api.IEventBusInvokeDispatcher +import net.minecraftforge.eventbus.api.IEventListener + +/** @since 1.7.1 + * Maintain compatibility between old versions of event bus. + */ +public interface IKotlinEventBus : IEventBus { + /** + * Implement by default so classloading [KotlinEventBus] + * does not try to load [IEventBusInvokeDispatcher]. + */ + @JvmDefault + override fun post(event: Event, wrapper: IEventBusInvokeDispatcher): Boolean { + return post(wrapper::invoke, event) + } + + public fun post(wrapper: (IEventListener, Event) -> Unit, event: Event): Boolean +}
\ No newline at end of file diff --git a/src/main/kotlin/thedarkcolour/kotlinforforge/eventbus/KotlinEventBus.kt b/src/main/kotlin/thedarkcolour/kotlinforforge/eventbus/KotlinEventBus.kt index 3f3fb66..a3580e6 100644 --- a/src/main/kotlin/thedarkcolour/kotlinforforge/eventbus/KotlinEventBus.kt +++ b/src/main/kotlin/thedarkcolour/kotlinforforge/eventbus/KotlinEventBus.kt @@ -22,7 +22,7 @@ import java.util.function.Consumer * @param builder The BusBuilder used to configure this event bus * @param synthetic Whether this event bus is just a wrapper for another bus */ -public open class KotlinEventBus(builder: BusBuilder, synthetic: Boolean = false) : IEventBus, IEventExceptionHandler { +public open class KotlinEventBus(builder: BusBuilder, synthetic: Boolean = false) : IKotlinEventBus, IEventExceptionHandler { @Suppress("LeakingThis") private val exceptionHandler = builder.exceptionHandler ?: this private val trackPhases = builder.trackPhases @@ -31,6 +31,7 @@ public open class KotlinEventBus(builder: BusBuilder, synthetic: Boolean = false protected open val busID: Int = MAX_ID.getAndIncrement() protected open val listeners: ConcurrentHashMap<Any, MutableList<IEventListener>> = ConcurrentHashMap() + init { // see companion object if (!synthetic) { @@ -365,6 +366,10 @@ public open class KotlinEventBus(builder: BusBuilder, synthetic: Boolean = false } override fun post(event: Event): Boolean { + return post(IEventListener::invoke, event) + } + + override fun post(wrapper: (IEventListener, Event) -> Unit, event: Event): Boolean { if (shutdown) return false val listeners = event.listenerList.getListeners(busID) @@ -374,7 +379,7 @@ public open class KotlinEventBus(builder: BusBuilder, synthetic: Boolean = false if (!trackPhases && listeners[index]::class.java == EventPriority::class.java) { continue } else { - listeners[index].invoke(event) + wrapper.invoke(listeners[index], event) } } catch (throwable: Throwable) { exceptionHandler.handleException(this, event, listeners, index, throwable) diff --git a/src/main/kotlin/thedarkcolour/kotlinforforge/eventbus/KotlinEventBusWrapper.kt b/src/main/kotlin/thedarkcolour/kotlinforforge/eventbus/KotlinEventBusWrapper.kt index ac12b1b..dee96b6 100644 --- a/src/main/kotlin/thedarkcolour/kotlinforforge/eventbus/KotlinEventBusWrapper.kt +++ b/src/main/kotlin/thedarkcolour/kotlinforforge/eventbus/KotlinEventBusWrapper.kt @@ -1,10 +1,7 @@ package thedarkcolour.kotlinforforge.eventbus import net.minecraftforge.eventbus.EventBus -import net.minecraftforge.eventbus.api.BusBuilder -import net.minecraftforge.eventbus.api.IEventBus -import net.minecraftforge.eventbus.api.IEventExceptionHandler -import net.minecraftforge.eventbus.api.IEventListener +import net.minecraftforge.eventbus.api.* import thedarkcolour.kotlinforforge.forge.FORGE_BUS import java.util.concurrent.ConcurrentHashMap @@ -13,13 +10,17 @@ import java.util.concurrent.ConcurrentHashMap * when using [FORGE_BUS]. */ public class KotlinEventBusWrapper(private val parent: EventBus) : KotlinEventBus(BusBuilder() - .setExceptionHandler(getExceptionHandler(parent)) - .setTrackPhases(getTrackPhases(parent)) - .also { if (getShutdown(parent)) it.startShutdown() } + .setExceptionHandler(getExceptionHandler(parent)) + .setTrackPhases(getTrackPhases(parent)) + .also { if (getShutdown(parent)) it.startShutdown() } ) { override val busID: Int = getBusID(parent) override val listeners: ConcurrentHashMap<Any, MutableList<IEventListener>> = getListeners(parent) + override fun post(event: Event): Boolean { + return parent.post(event) + } + // reflection stuff private companion object { private val GET_BUS_ID = EventBus::class.java.getDeclaredField("busID").also { it.isAccessible = true } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index e0174e8..370d49c 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader="kotlinforforge" # IModLanguageProvider -loaderVersion="[1.6,)" # IModLanguageProvider version +loaderVersion="[1.8,)" # IModLanguageProvider version license="GPL v3.0" # A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. @@ -30,7 +30,7 @@ license="GPL v3.0" [[mods]] #mandatory displayName="Kotlin for Forge" # Name of mod modId="kotlinforforge" # Modid -version="1.6.2" # Version of kotlinforforge +version="1.7.1" # Version of kotlinforforge authors="TheDarkColour" # Author credits="Herobrine knows all." # Credits description=''' diff --git a/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0-sources.jar b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0-sources.jar Binary files differnew file mode 100644 index 0000000..cf9841d --- /dev/null +++ b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0-sources.jar diff --git a/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0-sources.jar.md5 b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0-sources.jar.md5 new file mode 100644 index 0000000..4ab7909 --- /dev/null +++ b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0-sources.jar.md5 @@ -0,0 +1 @@ +4c4f12e0807168828e8a06b27d90f516
\ No newline at end of file diff --git a/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0-sources.jar.sha1 b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0-sources.jar.sha1 new file mode 100644 index 0000000..e222bbb --- /dev/null +++ b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0-sources.jar.sha1 @@ -0,0 +1 @@ +39022c9dd6360eba53ec1277fa9857962dc337e6
\ No newline at end of file diff --git a/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.jar b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.jar Binary files differnew file mode 100644 index 0000000..2b5c8ed --- /dev/null +++ b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.jar diff --git a/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.jar.md5 b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.jar.md5 new file mode 100644 index 0000000..048f88f --- /dev/null +++ b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.jar.md5 @@ -0,0 +1 @@ +219853d8add3cb4bc193a1fd08fed25a
\ No newline at end of file diff --git a/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.jar.sha1 b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.jar.sha1 new file mode 100644 index 0000000..ae45183 --- /dev/null +++ b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.jar.sha1 @@ -0,0 +1 @@ +85a459f49f5cc3e3c7bb4c535798e2d5c48ac0bf
\ No newline at end of file diff --git a/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.pom b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.pom new file mode 100644 index 0000000..ecb914c --- /dev/null +++ b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.pom @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" + xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <groupId>thedarkcolour</groupId> + <artifactId>kotlinforforge</artifactId> + <version>1.8.0</version> + <dependencies> + <dependency> + <groupId>org.jetbrains.kotlin</groupId> + <artifactId>kotlin-stdlib</artifactId> + <version>1.4.21</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.jetbrains.kotlin</groupId> + <artifactId>kotlin-stdlib-jdk7</artifactId> + <version>1.4.21</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.jetbrains.kotlin</groupId> + <artifactId>kotlin-stdlib-jdk8</artifactId> + <version>1.4.21</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.jetbrains.kotlin</groupId> + <artifactId>kotlin-reflect</artifactId> + <version>1.4.21</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.jetbrains</groupId> + <artifactId>annotations</artifactId> + <version>20.1.0</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.jetbrains.kotlinx</groupId> + <artifactId>kotlinx-coroutines-core</artifactId> + <version>1.4.2</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.jetbrains.kotlinx</groupId> + <artifactId>kotlinx-coroutines-jdk8</artifactId> + <version>1.4.2</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.jetbrains.kotlinx</groupId> + <artifactId>kotlinx-serialization-json</artifactId> + <version>1.0.1</version> + <scope>compile</scope> + </dependency> + </dependencies> +</project> diff --git a/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.pom.md5 b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.pom.md5 new file mode 100644 index 0000000..c13252d --- /dev/null +++ b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.pom.md5 @@ -0,0 +1 @@ +1b3b9a44d36e65533c28e067c8fcbb78
\ No newline at end of file diff --git a/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.pom.sha1 b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.pom.sha1 new file mode 100644 index 0000000..118e176 --- /dev/null +++ b/thedarkcolour/kotlinforforge/1.8.0/kotlinforforge-1.8.0.pom.sha1 @@ -0,0 +1 @@ +f7aa18a327747cdab51c5a714410600856a3400b
\ No newline at end of file diff --git a/thedarkcolour/kotlinforforge/1.8.0/web.html b/thedarkcolour/kotlinforforge/1.8.0/web.html new file mode 100644 index 0000000..d04140a --- /dev/null +++ b/thedarkcolour/kotlinforforge/1.8.0/web.html @@ -0,0 +1,20 @@ +<html lang="HTML5"> +<link rel="stylesheet" href="../../style.css"> +<head><title>Index of /1.8.0/</title></head> +<body> +<h1>Index of /kotlinforforge/</h1> +<hr> +<pre><a href="../web.html">../</a> +<a href="kotlinforforge-1.8.0-sources.jar">kotlinforforge-1.8.0-sources.jar</a> +<a href="kotlinforforge-1.8.0-sources.jar.sha1">kotlinforforge-1.8.0-sources.jar.sha1</a> +<a href="kotlinforforge-1.8.0-sources.jar.md5">kotlinforforge-1.8.0-sources.jar.md5</a> +<a href="kotlinforforge-1.8.0.jar">kotlinforforge-1.8.0.jar</a> +<a href="kotlinforforge-1.8.0.jar.sha1">kotlinforforge-1.8.0.jar.sha1</a> +<a href="kotlinforforge-1.8.0.jar.md5">kotlinforforge-1.8.0.jar.md5</a> +<a href="kotlinforforge-1.8.0.pom">kotlinforforge-1.8.0.pom</a> +<a href="kotlinforforge-1.8.0.pom.sha1">kotlinforforge-1.8.0.pom.sha1</a> +<a href="kotlinforforge-1.8.0.pom.md5">kotlinforforge-1.8.0.pom.md5</a> +</pre> +<hr> +</body> +</html> diff --git a/thedarkcolour/kotlinforforge/maven-metadata.xml b/thedarkcolour/kotlinforforge/maven-metadata.xml index b2a62a9..cb96100 100644 --- a/thedarkcolour/kotlinforforge/maven-metadata.xml +++ b/thedarkcolour/kotlinforforge/maven-metadata.xml @@ -3,7 +3,7 @@ <groupId>thedarkcolour</groupId> <artifactId>kotlinforforge</artifactId> <versioning> - <release>1.7.0</release> + <release>1.8.0</release> <versions> <version>1.0.0</version> <version>1.0.1</version> @@ -20,6 +20,7 @@ <version>1.6.1</version> <version>1.6.2</version> <version>1.7.0</version> + <version>1.8.0</version> </versions> </versioning> </metadata> |