Skip to content

Commit 058cc6a

Browse files
committed
Re-added StreamCodec extensions
1 parent fbf7f22 commit 058cc6a

File tree

5 files changed

+50
-1
lines changed

5 files changed

+50
-1
lines changed

interfaces.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,8 @@
77
],
88
"com/mojang/blaze3d/vertex/PoseStack$Pose": [
99
"dev/latvian/mods/klib/core/KLibPoseStackPose"
10+
],
11+
"net/minecraft/network/codec/StreamCodec": [
12+
"dev/latvian/mods/klib/core/KLibStreamCodec<B, V>"
1013
]
1114
}

src/main/java/dev/latvian/mods/klib/codec/KLibStreamCodecs.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ static <B extends ByteBuf, V> StreamCodec<B, Set<V>> setOf(StreamCodec<? super B
3939
return new SetStreamCodec<>(parent);
4040
}
4141

42-
static <B extends ByteBuf, V> StreamCodec<B, Set<V>> linkedSet(StreamCodec<? super B, V> parent) {
42+
static <B extends ByteBuf, V> StreamCodec<B, Set<V>> linkedSetOf(StreamCodec<? super B, V> parent) {
4343
return new LinkedSetStreamCodec<>(parent);
4444
}
4545

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package dev.latvian.mods.klib.core;
2+
3+
import dev.latvian.mods.klib.codec.KLibStreamCodecs;
4+
import net.minecraft.network.codec.ByteBufCodecs;
5+
import net.minecraft.network.codec.StreamCodec;
6+
7+
import java.util.List;
8+
import java.util.Optional;
9+
10+
public interface KLibStreamCodec<B, V> {
11+
default StreamCodec<B, Optional<V>> optional() {
12+
return ByteBufCodecs.optional((StreamCodec) this);
13+
}
14+
15+
default StreamCodec<B, V> optional(V defaultValue) {
16+
return KLibStreamCodecs.optional((StreamCodec) this, defaultValue);
17+
}
18+
19+
default StreamCodec<B, V> nullable() {
20+
return optional(null);
21+
}
22+
23+
default StreamCodec<B, List<V>> listOf() {
24+
return KLibStreamCodecs.listOf((StreamCodec) this);
25+
}
26+
27+
default StreamCodec<B, List<V>> setOf() {
28+
return KLibStreamCodecs.setOf((StreamCodec) this);
29+
}
30+
31+
default StreamCodec<B, List<V>> linkedSetOf() {
32+
return KLibStreamCodecs.linkedSetOf((StreamCodec) this);
33+
}
34+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package dev.latvian.mods.klib.core.mixin;
2+
3+
import dev.latvian.mods.klib.core.KLibStreamCodec;
4+
import net.minecraft.network.codec.StreamCodec;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
7+
@Mixin(StreamCodec.class)
8+
public interface StreamCodecMixin<B, V> extends KLibStreamCodec<B, V> {
9+
}

src/main/java/dev/latvian/mods/klib/util/Comparison.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import dev.latvian.mods.klib.data.DataType;
44
import net.minecraft.util.StringRepresentable;
55

6+
import java.util.function.IntFunction;
7+
68
public enum Comparison implements StringRepresentable {
79
EQUALS("equals", "=="),
810
NOT_EQUALS("not_equals", "!="),
@@ -12,6 +14,7 @@ public enum Comparison implements StringRepresentable {
1214
LESS_THAN_OR_EQUALS("less_than_or_equals", "<=");
1315

1416
public static final Comparison[] VALUES = values();
17+
public static final IntFunction<Comparison[]> ARRAY_FACTORY = Comparison[]::new;
1518
public static final DataType<Comparison> DATA_TYPE = DataType.of(VALUES);
1619

1720
public final String name;

0 commit comments

Comments
 (0)