作者:rebot | 分类:模组
Minecraft 版本: 1.21 1.21.1-rc1 1.21.1 24w33a 24w34a 24w35a 24w36a 24w37a 24w38a 24w39a 24w40a 1.21.2-pre1 1.21.2-pre2 1.21.2-pre3 1.21.2-pre4 1.21.2-pre5 1.21.2-rc1 1.21.2-rc2 1.21.2 1.21.3 24w44a 24w45a 24w46a 1.21.4-pre1 1.21.4-pre2 1.21.4-pre3 1.21.4-rc1 1.21.4-rc2 1.21.4-rc3 1.21.4 25w02a 25w03a 25w04a 25w05a 25w06a 25w07a 25w08a 25w09a 25w09b 25w10a 1.21.5-pre1 1.21.5-pre2 1.21.5-pre3 1.21.5-rc1 1.21.5-rc2 1.21.5 25w14craftmine 25w15a 25w16a 25w17a 25w18a 25w19a 25w20a 25w21a 1.21.6-pre1 1.21.6-pre2 1.21.6-pre3 1.21.6-pre4 1.21.6-rc1 1.21.6 1.21.7-rc1 1.21.7-rc2 1.21.7 1.21.8-rc1 1.21.8 25w31a 25w32a 25w33a 25w34a 25w34b 25w35a 25w36a 25w36b 25w37a 1.21.9-pre1 1.21.9-pre2 1.21.9-pre3 1.21.9-pre4 1.21.9-rc1 1.21.9 1.21.10-rc1 1.21.10 25w41a 25w42a 25w43a 25w44a 25w45a 25w46a 1.21.11-pre1 1.21.11-pre2 1.21.11-pre3 1.21.11-pre4 1.21.11-pre5 1.21.11-rc1 1.21.11-rc2 1.21.11-rc3 1.21.11 26.1-snapshot-1
平台: fabric
标签: library
This is a fork of fabric-language-scala, support the newest Scala3 version.
The number of people who use Scala is very small, but the power of Scala's expressiveness makes the language practically perfect for developing mods.
The original fabric-language-scala was unmaintained and the maintainers couldn't spare any more effort to maintain it, so it slowly became unmaintained and non-functional.
Support for Scala3 is, if anything, almost non-existent.
So I decided to fork it and maintain it myself and implement it to be compatible with the original fabric-language-scala,named krysztal-language-scala.
Add those lines to your project's build.gradle
plugins {
...
id 'scala' // Add `scala` plugin for gradle
...
}
repositories {
...
maven { url "https://maven.krysztal.dev/releases" }
...
}
dependencies {
...
modImplementation "dev.krysztal:krysztal-language-scala:${project.kls_version}+scala.${project.scala_version}"
...
}
classSuppose your entry name is ExampleEntry.scala
import net.fabricmc.api.ModInitializer;
class ExampleEntry extends ModInitializer {
lazy val logger = LoggerFactory.getLogger("KMMO")
override def onInitialize(): Unit = {
logger.info("Hi")
}
}
And in fabric.mod.json
...
"entrypoints": {
"main": [
"dev.example.ExampleEntry"
],
},
...
But thanks to Scala's excellent interoperability with Java, we can use this
library simply as a Java entry point :)
objectSuppose your entry name is ExampleEntry.scala
import net.fabricmc.api.ModInitializer;
object ExampleEntry extends ModInitializer {
lazy val logger = LoggerFactory.getLogger("KMMO")
override def onInitialize(): Unit = {
logger.info("Hi")
}
}
And in fabric.mod.json
...
"entrypoints": {
"main": [
{
"adapter": "scala",
"value": "dev.example.ExampleEntry"
}
],
},
...
This issues caused by scala's class loading mechanism.
It won't affect almost anything. Ignore it.
请登录后举报
暂无评论,抢个沙发吧~