好久不见,元旦快乐

距离上次发博文已经快有小半年了,不知各位过得怎么样,反正我算是体会到高中生活的艰辛了……

我现在在宿舍,用手机发博祝大家元旦快乐,虽然我的元旦元旦估计是不会快乐了——一大堆的复习试题要做。十几天后我终于要迎来期末考试,考完我就算暂时地解脱了。而每次假期我都会找些事情做,于是这个寒假我又计划写点代码了——具体写什么我还不确定,反正我已经整整半年没写码,早已饥渴难了。BTW,我还会选择Kotlin。

以上。

最后的奋斗

今天是端午节,也是中考前的第11天,也是我初中生涯的最后11天了。而且有趣的是,我这次写博文竟然会加标点符号了。

距离中考仅剩下下周一节课了。然而端午节的这三天假由于身边有台电脑,想好好复习估计也挺难。

此所谓“树欲静而风不止”?

Hello, and how are you these days?

今天已经是5月28日了,二模刚刚考完,感觉上还不错吧。

下个月20日就是中考了,考完中考应该就算是解脱了吧。

这几个月相中了Intel的Skull Canyon NUC,如果6月WWDC苹果没发啥大招的话,我估计就要买来装黑苹果了。

不要跟我说加钱买白苹果啥的,我能从父母那得到的资金支持很大程度上取决于我的中考成绩……

在IDEA下使用Kotlin编写Forge Mod

  1. 作为一名忠诚的Kotlin信徒 写Mod怎么能不用Kotlin呢?

最近Kotlin总算推出1.0.0-release了 于是我就开始尝试用Kotlin来编写Forge Mod
然而Forge目前只支持Java和Scala两种语言 后者的runtime和stdlib是我配置开发环境时噩梦… 加起来足足要下载50M
但是Kotlin不一样 它的理念是“尽量使用Java自有的东西 以其为基础向外扩展” 所以Kotlin的runtime和stdlib的压缩包加起来只有1M大小

首先我们需要给开发环境添加Kotlin支持(以下教程只支持IDEA Eclipse教徒可以试试转教)
src
在main下新建一个目录 命名为kotlin 然后右键点Mark directory as… 选择Sources root
然后打开build.gradle
在buildscript>dependencies中添加一行:

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.0"

然后在下面的“apply plugin: ‘forge’”一行下添加一行:

apply plugin: 'kotlin'

再在minecraft节点上面几行添加:

sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
}

再点开Project Structure 在Modules>{你的Workspace名}>Dependencies中点击右边绿色的+号 选择第一项 然后选择你下载的kotlin-stdlibkotlin-runtime两个jar
然后你就成功添加了Kotlin支持 撒花

你以为这就完了? 不 现在你只是完成了开发环境的Kotlin支持
你会发现你用gradlew build编译出来的Mod不会包含Kotlin的stdlib和runtime 导致你放到别人的Minecraft里会无法加载

为了使编译Mod的ForgeGradle支持Kotlin 我们需要使用一个第三方的插件: Forgelin/Forge-Kotlin-Adapter
为什么有俩名字? 因为作者给1.8.9Forge的版本改了名字…
前者只支持1.8的Forge 后者只支持1.8.9
这里姑且就给这个插件定个名字 叫做“Kotlin适配器”

按照作者给出的教程 首先我们要在minecraft节点上面几行添加:

configurations {
    shade
    compile.extendsFrom shade
}

然后在minecraft节点的下面添加:

repositories {
    maven {
        name = "osc"
        url = "http://maven.oschina.net/content/groups/public/"
    }
    //这个是插件作者的Maven 1.8版本的适配器只被上传到了这个Maven 所以我们最好要添加
    maven {
        name = "tethys"
        url = "http://tethys.drakon.io/maven"
    }
    mavenCentral()
}

dependencies {
    shade "org.jetbrains.kotlin:kotlin-stdlib:1.0.0"
    //这里要注意了 如果你是1.8.9版本的Forge 请填写“io.drakon.forge:kotlin-adapter:1.0.0-rc-1036+1.8.9”
    shade "io.drakon:forgelin:1.8-0.1.1-1.0.0-beta-3595"
}

最后在processResources节点下面添加:

jar {
    configurations.shade.each { dep ->
        from(project.zipTree(dep)) {
            exclude 'META-INF', 'META-INF/**'
        }
    }
}

此时 你已经完全可以用Kotlin编写Forge Mod了 Enjoy!

补充: 若需要更高版本Minecraft对应的适配器 请使用shadowfacts接手的该项目:
https://github.com/shadowfacts/Forgelin
使用方法见其中的README

 

新年快乐!

←_←本来打算在00:01的时候说的 结果忘记了

再过半年就要中考了

刚刚洗澡的时候衣服不小心掉在了地上

IMG20151219205928

从某种意义上来说这个图案很有特色…

我干了一件特别逗比的事情。。

如果你这段时间时常访问博客的话
你会发现 前几天的最新文章变为了我在11月6日发布的文章
这其实是因为 我家树莓派上的ddns把域名解析记录改回树莓派上了。。。 然而正好我忘记把运行在树莓派上的旧博客停掉
所以这导致你们访问的博客是11月初时的运行在我家树莓派上的博客 而不是现在的运行在某ibm主机上的。。
以上

一周不见

这周是神奇的一周 博客再次搬站 搬到了某IBM机房主机上 期间5天博客无法访问 在这里先道个歉…

顺便 猴王万岁!
4849790ac9fe2a32
48f550cbc67a15a5
获得成就[爱撕机膜人]

我的树莓派开始积灰了

1446787252954.
如图 这些灰的罪魁祸首就是那个转速奇快的风扇
// 不过虽然积了这么多灰 但散热效果还是很明显的。。

本周期中考

37719378EEF0FF508A38A2353BF40462
没想到半个学期竟然这么快就过去了 寒假指日可待了
朱军 我喜欢寒假!