···2233import org.eu.net.pool.iotaworks.HexPatternAccessor;
4455+import org.spongepowered.asm.mixin.Final;
56import org.spongepowered.asm.mixin.Mixin;
67import org.spongepowered.asm.mixin.Mutable;
78import org.spongepowered.asm.mixin.Shadow;
···2526 public int depth() { return depth; }
2627 public void depth_$eq(int depth) { this.depth = depth; }
27282828- @Shadow @Mutable public static Codec CODEC = null; // we don't actually use this field, but we need to @Mutable it so the wrapop can use it
2929+ @Shadow @Final @Mutable public static Codec CODEC; // we don't actually use this field, but we need to @Mutable it so the wrapop can use it
29303031 @WrapOperation(method = "<clinit>", at = @At(value = "FIELD", opcode = 179, ordinal = 1))
3132 private static void wrapCodec(Codec<HexPattern> codec, Operation<Void> original) {
···3738 ((HexPatternMixin) (Object) p).depth = l;
3839 return p;
3940 })
4040- ), codec).xmap(e -> {
4141- HexPattern value[] = new HexPattern[1];
4242- e.ifLeft(v -> { value[0] = v; });
4343- e.ifRight(v -> { value[0] = v; });
4444- return value[0];
4545- }, Either::left));
4141+ ), codec).xmap(e -> e.left().or(e::right).get(), Either::left));
4642 }
47434844 @WrapMethod(method = "serializeToNBT")