SamsTheNerd / ducky-periphs

A peripheral addon mod for ComputerCraft Restitched
9 stars 3 forks source link

Focal port Focus fake item dublication. #13

Closed MAGGen-hub closed 1 year ago

MAGGen-hub commented 1 year ago

When I insert focus into port (port texutre changes) and then try to pull it out: I got my focus BUT focal port texture don't change like focus is still inside. When I click on it again I got another focus... Two focuses, but when I try to use or remove second one to the container - it just disappear. 0_o Magic...

SamsTheNerd commented 1 year ago

fascinating,, could you perhaps send a video of this?

MAGGen-hub commented 1 year ago

Found the issue source! When I click port with empty hand - amulet returns INTO MY EMPTY HAND, and then (right mouse button is still pressed) for some reason got "fake inserted" back. (Focal port blockstate changes, but focus is still in my hand)

Posible fix 1 - make focus not return into player hand, but drop out like item from minecraft frame. Posible fix 2 - add interaction cool doun on focus extraction. 1 second should be enought... (Make it imposible to insert focus right after it extraction)

P.S. This also might be cased by charm mod (or inventory profiles) installed: it makes interaction with some interfaceless thingth a bit faster, so focal port just have no time to update normaly...

MAGGen-hub commented 1 year ago

With non empty hand it works quite notmal (but moves form hotbar into my inventory immidiatly)...

https://user-images.githubusercontent.com/56871670/232249444-0e7b4eb1-435f-4efd-b11f-03afc4338744.mp4

MAGGen-hub commented 1 year ago

Not big, but annoing problem... But guess it cased by tweaks mods I had.

MAGGen-hub commented 1 year ago

In my opinion. Posible fix 1 - make focus not return into player hand, but drop out like item from minecraft frame. Is best solution... Also why don't you just create an interface simmular to disk_drive? I think it could be cool (also your focal port craft recipe is based on disk drive) and easier to create, because you already have the sample in CC code...

SamsTheNerd commented 1 year ago

huh strange. does it do the same thing with a jukebox by any chance?

I suppose I could do an interface like the disk drive but eh, i prefer the simplicity of just clicking it in there. If i did make one I'd probably want to retexture it to feel more hex-y too.

MAGGen-hub commented 1 year ago

Ops... Gues i was wrong... It's not even inserts to port, but become invisible in my hand...

> [22:27:44] [Server thread/ERROR]: Failed to handle packet net.minecraft.class_2885@5c0e36b8, suppressing error
> java.lang.NullPointerException: Cannot invoke "net.minecraft.class_2487.method_10573(String, int)" because "tag" is null
>   at at.petrak.hexcasting.common.lib.hex.HexIotaTypes.getTypeFromTag(HexIotaTypes.java:95) ~[hexcasting-fabric-1.19.2-0.10.3.jar:?]
>   at at.petrak.hexcasting.common.lib.hex.HexIotaTypes.deserialize(HexIotaTypes.java:118) ~[hexcasting-fabric-1.19.2-0.10.3.jar:?]
>   at com.samsthenerd.duckyperiphs.hexcasting.FocalPortBlockEntity.getIota(FocalPortBlockEntity.java:183) ~[ducky-periphs-1.19.2-1.1.5.jar:?]
>   at com.samsthenerd.duckyperiphs.hexcasting.FocalPortBlockEntity.updateColor(FocalPortBlockEntity.java:202) ~[ducky-periphs-1.19.2-1.1.5.jar:?]
>   at com.samsthenerd.duckyperiphs.hexcasting.FocalPortBlockEntity.method_5447(FocalPortBlockEntity.java:276) ~[ducky-periphs-1.19.2-1.1.5.jar:?]
>   at com.samsthenerd.duckyperiphs.hexcasting.FocalPortBlockEntity.onActivate(FocalPortBlockEntity.java:313) ~[ducky-periphs-1.19.2-1.1.5.jar:?]
>   at dan200.computercraft.shared.common.BlockGeneric.method_9534(BlockGeneric.java:55) ~[cc-restitched-1.101.2.jar:?]
>   at net.minecraft.class_4970$class_4971.method_26174(class_4970.java:964) ~[client-intermediary.jar:?]
>   at net.minecraft.class_3225.method_14262(class_3225.java:338) ~[client-intermediary.jar:?]
>   at net.minecraft.class_3244.method_12046(class_3244.java:1145) ~[client-intermediary.jar:?]
>   at net.minecraft.class_2885.method_12547(class_2885.java:34) ~[client-intermediary.jar:?]
>   at net.minecraft.class_2885.method_11054(class_2885.java:8) ~[client-intermediary.jar:?]
>   at net.minecraft.class_2600.method_11072(class_2600.java:22) ~[client-intermediary.jar:?]
>   at net.minecraft.class_3738.run(class_3738.java:18) ~[client-intermediary.jar:?]
>   at net.minecraft.class_1255.method_18859(class_1255.java:157) ~[client-intermediary.jar:?]
>   at net.minecraft.class_4093.method_18859(class_4093.java:23) ~[client-intermediary.jar:?]
>   at net.minecraft.server.MinecraftServer.method_24306(MinecraftServer.java:776) ~[client-intermediary.jar:?]
>   at net.minecraft.server.MinecraftServer.method_18859(MinecraftServer.java:159) ~[client-intermediary.jar:?]
>   at net.minecraft.class_1255.method_16075(class_1255.java:131) ~[client-intermediary.jar:?]
>   at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:758) ~[client-intermediary.jar:?]
>   at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:752) ~[client-intermediary.jar:?]
>   at net.minecraft.class_1255.method_18857(class_1255.java:140) ~[client-intermediary.jar:?]
>   at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:737) ~[client-intermediary.jar:?]
>   at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:669) ~[client-intermediary.jar:?]
>   at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:257) ~[client-intermediary.jar:?]
>   at java.lang.Thread.run(Thread.java:1589) [?:?]

https://user-images.githubusercontent.com/56871670/232249782-90831b0b-6c99-419a-8a9e-9a7accb85f5a.mp4

MAGGen-hub commented 1 year ago

Well, tag is still null =)

SamsTheNerd commented 1 year ago

lmao, did it crash there or what? I'll have to just test stuff more in a bit probably.

MAGGen-hub commented 1 year ago

lmao, did it crash there or what? I'll have to just test stuff more in a bit probably.

Not crash, just prints error... Thats why I like interfaces: they act like containers so it's easier to access the item and catch bugs...

MAGGen-hub commented 1 year ago

Oh... If you will fail to repeat my bug, then tell me, I will try to figure out whitch mod I use in my modpack can be the case of the issue, so you can just mark it as incompatible then, or try to make it compatible. =)

SamsTheNerd commented 1 year ago

yep, i'll keep you updated. it may be a while before i get to this though. the main code branch i'm working on rn is in shambles with the architectury rework so i can't easily debug at the moment.

MAGGen-hub commented 1 year ago

yep, i'll keep you updated.

Thanks. Good luck in development. image

MAGGen-hub commented 1 year ago

Huh... It has realy weird behaviour... Sometimes it inserts normaly, but sometimes just appera in my hands... And I still can use wrightIota function when focus is still in my hands. The most strange thing: it's works.

Finaly I figured it out: it's not mod incompatibility - when the focus have no iota (NULL), it cases null reference exception I showed before. Bug disappeared after I write empty string to focus, so it become not null. Error in log disappeared too.

MAGGen-hub commented 1 year ago

You just need to add support for NULL focuses. I will try to fix it on my own when I got more time, but I don't think I can do it: only 8 gb left on my disk, so if I install fabric modding environment I will got no disk space at all, heh...

SamsTheNerd commented 1 year ago

should be fixed in v1.2.0