File tree Expand file tree Collapse file tree
java/net/errorcraft/codecium/mixin/mojang/serialization/codecs Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package net .errorcraft .codecium .mixin .mojang .serialization .codecs ;
2+
3+ import com .llamalad7 .mixinextras .sugar .Local ;
4+ import com .mojang .serialization .MapLike ;
5+ import com .mojang .serialization .codecs .FieldDecoder ;
6+ import org .spongepowered .asm .mixin .Final ;
7+ import org .spongepowered .asm .mixin .Mixin ;
8+ import org .spongepowered .asm .mixin .Shadow ;
9+ import org .spongepowered .asm .mixin .injection .At ;
10+ import org .spongepowered .asm .mixin .injection .ModifyArg ;
11+
12+ import java .util .function .Supplier ;
13+
14+ @ Mixin (value = FieldDecoder .class , remap = false )
15+ public class FieldDecoderExtender {
16+ @ Shadow
17+ @ Final
18+ protected String name ;
19+
20+ @ ModifyArg (
21+ method = "decode" ,
22+ at = @ At (
23+ value = "INVOKE" ,
24+ target = "Lcom/mojang/serialization/DataResult;error(Ljava/util/function/Supplier;)Lcom/mojang/serialization/DataResult;"
25+ )
26+ )
27+ private <T > Supplier <String > useBetterErrorMessage (Supplier <String > message , @ Local (argsOnly = true ) final MapLike <T > input ) {
28+ return () -> "Key '" + this .name + "' must be present in map: " + input ;
29+ }
30+ }
Original file line number Diff line number Diff line change 1010 " mojang.serialization.JavaOpsExtender" ,
1111 " mojang.serialization.JsonOpsExtender" ,
1212 " mojang.serialization.codecs.EitherCodecExtender" ,
13+ " mojang.serialization.codecs.FieldDecoderExtender" ,
1314 " mojang.serialization.codecs.OptionalFieldCodecExtender" ,
1415 " mojang.serialization.codecs.RecordCodecBuilderExtender$RecordMapCodecExtender"
1516 ],
You can’t perform that action at this time.
0 commit comments