KokoaLinux
KokoaLinux copied to clipboard
如果能支持一下1.8.9就更好了
原理上 1.12.2 之前的这些版本差别应该都不是很大,要改动的也只有forge相关的代码。
看了一下,要改动的地方有:
- https://github.com/Yesterday17/KokoaLinux/tree/master/src/main/java/cn/yesterday17/kokoalinux/config
这部分可以完全删掉,我记得低版本Config还挺麻烦的。配置项写死就行了,就一个
debug
一个disable
。 - https://github.com/Yesterday17/KokoaLinux/blob/86196e8cf9020c2c8f1106683c422c289cc6ac0a/src/main/java/cn/yesterday17/kokoalinux/transformer/GuiTextFieldTransformer.java#L18
func_146195_b
不确定有没有变化,应该是没有。 - 不确定 189 的
LWJGL
版本对Transform
的影响有多大。1.12.2
使用的是LWJGL2
的最后一个版本,之前是什么样的就完全不知道了( - 详细的思路可以看 https://www.bilibili.com/read/cv4246084
~~其实我现在也不大会 Java
和 Forge API
了~~
最近在忙别的项目,等一个好心人接手(
原理上 1.12.2 之前的这些版本差别应该都不是很大,要改动的也只有forge相关的代码。
看了一下,要改动的地方有:
* https://github.com/Yesterday17/KokoaLinux/tree/master/src/main/java/cn/yesterday17/kokoalinux/config 这部分可以完全删掉,我记得低版本Config还挺麻烦的。配置项写死就行了,就一个 `debug` 一个 `disable`。 * https://github.com/Yesterday17/KokoaLinux/blob/86196e8cf9020c2c8f1106683c422c289cc6ac0a/src/main/java/cn/yesterday17/kokoalinux/transformer/GuiTextFieldTransformer.java#L18 `func_146195_b` 不确定有没有变化,应该是没有。 * 不确定 189 的 `LWJGL` 版本对 `Transform` 的影响有多大。`1.12.2` 使用的是 `LWJGL2` 的最后一个版本,之前是什么样的就完全不知道了( * 详细的思路可以看 https://www.bilibili.com/read/cv4246084
~其实我现在也不大会
Java
和Forge API
了~ 最近在忙别的项目,等一个好心人接手(
啊这
看了一下1.8.9使用的 LWJGL2
的版本
和1.1.2使用的是同一个版本
func_146195_b
应该是没有变化
net.minecraftforge.client.event.GuiOpenEvent
在1.8.9下用不了getGui()
,用的是gui
不过由于不会forge不知道config应该怎么写,只能看着idea给cn.yesterday17.kokoalinux.config.*
和 cn.yesterday17.kokoalinux.input.InputNative
飘红
似乎 jna
的版本对移植造成了一点点的困扰
1.8.9 forge的jna
版本号是3.4而1.12.2的则是4.4
而目前直接用1.8.9跑我那两个branch的编译产物会崩端(均与jna有关)
老是启动阶段报java.lang.UnsatisfiedLinkError: Unable to load library 'kokoa': libkokoa.so: 无法打开共享对象文件: 没有那个文件或目录
就崩了
(而jar里面是有libkoa.so的)
~丢人的是没有在stack overflow或者google找到解决方法, jna3.4的文档感觉提示也不太够~
我在移植1.7.10的,套用了GTNH的脚本,删了高版本的config内容,因为好像没有jna就shadow了一个jna,总算是进了游戏 当前问题是不论有没有开GUI都能切输入法,而且只能输入第一个字,猜测是有某些版本差异没发现……
我在移植1.7.10的,套用了GTNH的脚本,删了高版本的config内容,因为好像没有jna就shadow了一个jna,总算是进了游戏 当前问题是不论有没有开GUI都能切输入法,而且只能输入第一个字,猜测是有某些版本差异没发现……
1710 的的话可能 GuiTextFieldTransformer.java 要改一下
似乎
jna
的版本对移植造成了一点点的困扰1.8.9 forge的
jna
版本号是3.4而1.12.2的则是4.4而目前直接用1.8.9跑我那两个branch的编译产物会崩端(均与jna有关)
老是启动阶段报
java.lang.UnsatisfiedLinkError: Unable to load library 'kokoa': libkokoa.so: 无法打开共享对象文件: 没有那个文件或目录
就崩了(而jar里面是有libkoa.so的)
~丢人的是没有在stack overflow或者google找到解决方法, jna3.4的文档感觉提示也不太够~
可以尝试 shade 一下?
我在移植1.7.10的,套用了GTNH的脚本,删了高版本的config内容,因为好像没有jna就shadow了一个jna,总算是进了游戏 当前问题是不论有没有开GUI都能切输入法,而且只能输入第一个字,猜测是有某些版本差异没发现……
1710 的的话可能 GuiTextFieldTransformer.java 要改一下
经检查涉及的几个函数和变量的mapping都没变,toggleIC如果只传false也能起效,但还是启动时就已经能调输入法了 edit: 开了调试后发现创造的物品栏搜索框及其正常,告示牌完全不foucs和unfocus,聊天栏只会focus,我猜应该去翻源代码了 edi2: 破案了,GUI的EventHandler完全没有注册到,估计也是莫名其妙的版本差别 edit3: 原来是一直被当成纯coremod,不知为何META-INF里FMLCorePluginContainsFMLMod没起作用……
改成LoadingPlugin就行了,现在的问题只剩下为什么一次只能输入一个字
成功了,原因是GuiScreen里handleKeyboardInput和1.12不一样,改了就好了 我不会写asm,最后还是用mixin写的…… 所以……能让我传cf造福一下本就稀有的Linux1.7.10玩家吗?
欢迎 ~~我gtnh也能用了~~
kappa-maintainer @.***> 于2022年4月22日周五 22:10写道:
成功了,原因是GuiScreen里handleKeyboardInput和1.12不一样,改了就好了 我不会写asm,最后还是用mixin写的…… 所以……能让我传cf造福一下本就稀有的Linux1.7.10玩家吗?
— Reply to this email directly, view it on GitHub https://github.com/Yesterday17/KokoaLinux/issues/4#issuecomment-1106556208, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCEFLTUSAXARQYHE6PRUBDVGKXO7ANCNFSM5BTSWQSQ . You are receiving this because you commented.Message ID: @.***>
(也可以加个member传到kokoalinux上
哦已经有cf了,那没事了 那感觉感觉还是把那点mixin交给原作者写成asm再上传更稳妥一点…… 另外说一下,ITweaker改LoadingPlugin是因为gui事件原来的的@Subscribe似乎没用,只好一路改成@Mod.EventHandler,也有可能是我搞错了……
我在移植1.7.10的,套用了GTNH的脚本,删了高版本的config内容,因为好像没有jna就shadow了一个jna,总算是进了游戏 当前问题是不论有没有开GUI都能切输入法,而且只能输入第一个字,猜测是有某些版本差异没发现……
只能打一个字的问题可以考虑再加个inputfix解决
我1.8.9的移植目前在没inputfix或者patcher的情况下也是只能打一个字
至于没打开gui就能切换输入法我感觉还好(
似乎
jna
的版本对移植造成了一点点的困扰 1.8.9 forge的jna
版本号是3.4而1.12.2的则是4.4 而目前直接用1.8.9跑我那两个branch的编译产物会崩端(均与jna有关) 老是启动阶段报java.lang.UnsatisfiedLinkError: Unable to load library 'kokoa': libkokoa.so: 无法打开共享对象文件: 没有那个文件或目录
就崩了(而jar里面是有libkoa.so的)
~丢人的是没有在stack overflow或者google找到解决方法, jna3.4的文档感觉提示也不太够~
可以尝试 shade 一下?
~偷懒直接给jna传了个jar包外的路径"解决"了之前的崩端问题,不过我可以试一下shade(不过不太了解估计。。。)~
我就是参考了inputFix才确认问题在哪的,自用的话还是不想多装 shadow会大大增加文件体积,可以先给jna传个debug参数让它输出搜索的路径看看
我就是参考了inputFix才确认问题在哪的,自用的话还是不想多装 shadow会大大增加文件体积,可以先给jna传个debug参数让它输出搜索的路径看看
~算了我还是直接上shadow吧~
~!jna3.4也太弱智了~
算了勉强能用就行,搞不明白jna3.4的机制也搞不明白shadowjar咋用(idea还在给我提示jna3.4)
可以尝试 shade 一下?
shadowJAR也不是很了解 ,不清楚为什么用的还是jna3.4
我想我一时半会只能先将就着用jar包外加载native的版本了
又搜了一下,搜到的建议我把lib先从jar提取到临时目录再加载,但这样和我现在将就着用的方法一样都是把jna当jni用了
update:看了下jna3.4的源码,发现并不能像1.12.2用的jna4那样从jar中加载native
寄了,因为 JNA#679 的原因我不能relocate jna (最起码不会很简单)
但是1.8.9已经有了一个不能从jar中提取native的jna3.4,直接shade会冲突
看来得考虑用别的库了(不是很想再写一遍提取)
话说有啥库的推荐么 想了解一下(对了该不会我得把这个库给shade进来吧)