
Incompatibility with ASJCore
MesTeiK opened this issue · 16 comments
Please check any boxes that apply to you and your issue
-
I use a translator application to post this issue.
-
This is a crash. Please upload, Pastebin, Gist or copypaste the whole crash report along with this issue.
-
This is a mod incompatibility. If I do this in vanilla Forge with only Et Futurum Requiem installed, it works normally.
-
This is a code problem. Please link the probably problematic lines of code in the issue and/or explain in detail what is wrong.
Version number of Et-Futurum-Requiem (IMPORTANT)
2.4.2
Describe the issue (IMPORTANT)
I have Alfheim [RC-42], ASJCore [1.2.1.0] and
Et-Futurum-Requiem [2.4.2]. EFR is somehow incompatible with ASJCore, if there is Alfheim. ASJcore is a dependency for Alfheim. But, if you put addBlocks=true in the config of the ASJCore mod, then for some reason there will be no conflict. AddBlocks is superfluous and unnecessary, that's the whole problem. The crash log itself does not appear, but it is knocked out in the console.
https://pastebin.com/sC89jNvw
Mod list (OPTIONAL)
Additional Context (OPTIONAL)
How can I download this mod?
Everything is available on curseforge. https://www.curseforge.com/minecraft/mc-mods/asjcore/files/all and https://www.curseforge.com/minecraft/mc-mods/alfheim/files/all
Try adding Mixingasm to your pack, it's known to sometimes solve issues like this.
Strange, when I install the core, I get a crash relating to the elytra data watcher when I boot a world.
But I think it should actually be the problem with ASJCore, maybe it changed the format of data storage.
There are other situations where there is also this problem, such as with ItemPhysic.
This issue should go to ASJore feedback but I can't go over captcha...
我本来想着弄结果忘了
I thought about doing it but forgot.
拖点时间就要变样
Because whenever I want to do something more, I see this:
I don't really know how to fix this so if ASJ fixes it on their end let me know so I can close this. I'm leaving this open for now since it's hard for me to tell what needs to be done atm.
试试这样
return (this.getDataWatcher().getWatchableObjectInt(0) & (1 << 7)) != 0;
但我觉得实际上应该是ASJCore的问题
或许是它改变了数据储存的格式导致的
在一些其它情况下也会有这样的问题 例如ItemPhysic(受害者发言)
这个问题应该去 ASJore 反馈 但我过不去人机验证……
我已经尝试过修改字节码让它们兼容
虽然能起作用 但这只能使之与ASJCore兼容 而不能避免AJSCore与别的冲突
所以如果有意要与之兼容可以考虑修改数据读写格式 将byte类型改为int
如果没有其它用法的话 应该不会有问题
I've tried modifying bytecode files to make them compatible.
It works, but it only makes it compatible with ASJCore, and does not prevent AJSCore from conflicting with other mods.
So if you want to be compatible with it, you can consider modifying the data read and write format(use some related methods of integer types):
dataWatcher.getWatchableObjectInt(int);
dataWatcher.updateObject(int, java.lang.Integer);
If there is no other usage, it should not be a problem.
似乎是我忘记说了
这是和ASJCore冲突的第二个问题
上面的问题可以通过修改配置文件来忽略
下面这个错误才是我想在这里提出的
It seems that I forgot to say...(I wanted to say it before, but network problems disrupted my train of thought)
The above error can be ignored by modifying the configuration file:
config\etfuturum\blocksitems.cfg : enableDeepslateOres=false
But after that, there is another problem:
java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer at net.minecraft.entity.DataWatcher.func_75679_c(SourceFile:91) at net.minecraft.entity.player.EntityPlayer.etfu$isElytraFlying(EntityPlayer.java:2950) at net.minecraft.entity.player.EntityPlayer.handler$getElytraEyeHeight$zzg000(EntityPlayer.java:2937) at net.minecraft.entity.player.EntityPlayer.func_70047_e(EntityPlayer.java) at net.minecraft.entity.player.EntityPlayer.func_70666_h(EntityPlayer.java:2224)
This is the second problem that conflicts with ASJCore, and the changes I am talking about are intended to address this issue.
我所说的更改数据类型的方案就是为了解决鞘翅的问题
更改配置文件则是绕过问题提出者所碰到的情况
The scheme I am talking about changing the data type is to solve the problem of elytra(byte -> int):
java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer at net.minecraft.entity.DataWatcher.func_75679_c(SourceFile:91) at net.minecraft.entity.player.EntityPlayer.etfu$isElytraFlying(EntityPlayer.java:2950) ...
Modifying the configuration file can ignore this issue:
java.lang.NullPointerException at net.minecraft.item.ItemStack.func_77960_j(ItemStack.java:217) ~[add.class:?] at net.minecraft.item.crafting.FurnaceRecipes.func_151397_a(FurnaceRecipes.java:100) ~[afa.class:?] at net.minecraft.item.crafting.FurnaceRecipes.func_151395_a(FurnaceRecipes.java:93) ~[afa.class:?] at ganymedes01.etfuturum.core.utils.DeepslateOreRegistry.init(DeepslateOreRegistry.java:152) ~[Et_Futurum_Requiem-2.4.3.jar:?] at ganymedes01.etfuturum.EtFuturum.onLoadComplete(EtFuturum.java:537) ~[Et_Futurum_Requiem-2.4.3.jar:?] ...
If the null pointer exception does exist(I think so because I met it), you can consider doing one more detection, because I think it may be ASJCore cause Item.getItemFromBlock(Block)
to possibly return null(I'm also not clear if that's the reason but I think it's worth a try).
Yeah I looked at the DeepslateOreRegistry furnace crash and I'm pretty sure ASJCore is adding null recipies to the furnace. I may or may not fix that specific error but I see ASJCore is still maintained and I encourage the author to update their mod to remove null recipes. Other mods which do recipe registry sweeps that don't do null checks (that are not needed for 98% of mods) will also crash.
Hi!
Thing with etfu$isElytraFlying
is because you are getting flag from dataWatcher directly. I changed byte -> int because 8 flags was not enough for me.
Data 0 is the default value for entity flags, so please consider using Entity#getFlag(id)
instead (screenshot). And please, add elytra flag id to configs.
Regarding null furnace recipes, I also found why this is happening and why such strange configuration is doing the thing. I'm adding lit_redstone_ore -> redstone (dust) smelting for whatever reason. It will be removed in Alfheim-46, so this issue can be closed as soon as the version is out.
P.S: I'm not an active GitHub user, so if you want to contact me - you can either contact me on BitBucket via issues of my mods, via CurseForge comments or (the best and preferable way) on Discord. Have a great day!
Hi!
Thing with
etfu$isElytraFlying
is because you are getting flag from dataWatcher directly. I changed byte -> int because 8 flags was not enough for me. Data 0 is the default value for entity flags, so please consider usingEntity#getFlag(id)
instead (screenshot). And please, add elytra flag id to configs.Regarding null furnace recipes, I also found why this is happening and why such strange configuration is doing the thing. I'm adding lit_redstone_ore -> redstone (dust) smelting for whatever reason. It will be removed in Alfheim-46, so this issue can be closed as soon as the version is out.
P.S: I'm not an active GitHub user, so if you want to contact me - you can either contact me on BitBucket via issues of my mods, via CurseForge comments or (the best and preferable way) on Discord. Have a great day!
Is the version with the null recipe removed yet?