Skip to content

Commit 58d7771

Browse files
committed
Setup streamcodecs for the data classes, clean up payloads
1 parent a60e9df commit 58d7771

File tree

8 files changed

+42
-38
lines changed

8 files changed

+42
-38
lines changed

common/src/main/java/com/mrbysco/armorposer/client/gui/widgets/ArmorGlowWidget.java

+4
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@ public ArmorStand getArmorStand() {
9292
return armorStand;
9393
}
9494

95+
public boolean isLocked() {
96+
return locked;
97+
}
98+
9599
public void renderPose(GuiGraphics guiGraphics, int xPos, int yPos, float size) {
96100
if (armorStand != null) {
97101
InventoryScreen.renderEntityInInventory(guiGraphics, xPos, yPos, size,

common/src/main/java/com/mrbysco/armorposer/data/RenameData.java

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
package com.mrbysco.armorposer.data;
22

3+
import net.minecraft.core.UUIDUtil;
34
import net.minecraft.network.FriendlyByteBuf;
45
import net.minecraft.network.chat.Component;
6+
import net.minecraft.network.codec.ByteBufCodecs;
7+
import net.minecraft.network.codec.StreamCodec;
58
import net.minecraft.world.entity.decoration.ArmorStand;
69
import net.minecraft.world.entity.player.Player;
710

811
import java.util.UUID;
912

1013
public record RenameData(UUID entityUUID, String name) {
11-
public void encode(FriendlyByteBuf buf) {
12-
buf.writeUUID(entityUUID);
13-
buf.writeUtf(name);
14-
}
15-
16-
public static RenameData decode(final FriendlyByteBuf packetBuffer) {
17-
return new RenameData(packetBuffer.readUUID(), packetBuffer.readUtf());
18-
}
14+
public static final StreamCodec<FriendlyByteBuf, RenameData> STREAM_CODEC = StreamCodec.composite(
15+
UUIDUtil.STREAM_CODEC,
16+
RenameData::entityUUID,
17+
ByteBufCodecs.STRING_UTF8,
18+
RenameData::name,
19+
RenameData::new);
1920

2021
public void handleData(ArmorStand armorStand, Player player) {
2122
if (!name.isEmpty() && (player.experienceLevel >= 1 || player.getAbilities().instabuild)) {

common/src/main/java/com/mrbysco/armorposer/data/SwapData.java

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.mrbysco.armorposer.data;
22

33
import net.minecraft.network.FriendlyByteBuf;
4+
import net.minecraft.network.codec.StreamCodec;
45
import net.minecraft.world.InteractionHand;
56
import net.minecraft.world.entity.EquipmentSlot;
67
import net.minecraft.world.entity.decoration.ArmorStand;
@@ -9,13 +10,17 @@
910
import java.util.UUID;
1011

1112
public record SwapData(UUID entityUUID, Action action) {
12-
public void write(FriendlyByteBuf buf) {
13-
buf.writeUUID(entityUUID);
14-
buf.writeEnum(action);
13+
public static final StreamCodec<FriendlyByteBuf, SwapData> STREAM_CODEC = StreamCodec.of(
14+
SwapData::write,
15+
SwapData::new);
16+
17+
public SwapData(final FriendlyByteBuf packetBuffer) {
18+
this(packetBuffer.readUUID(), packetBuffer.readEnum(Action.class));
1519
}
1620

17-
public static SwapData read(final FriendlyByteBuf packetBuffer) {
18-
return new SwapData(packetBuffer.readUUID(), packetBuffer.readEnum(Action.class));
21+
private static void write(FriendlyByteBuf friendlyByteBuf, SwapData swapData) {
22+
friendlyByteBuf.writeUUID(swapData.entityUUID);
23+
friendlyByteBuf.writeEnum(swapData.action);
1924
}
2025

2126
public void handleData(ArmorStand armorStand) {

common/src/main/java/com/mrbysco/armorposer/data/SyncData.java

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package com.mrbysco.armorposer.data;
22

33
import com.mrbysco.armorposer.Reference;
4+
import net.minecraft.core.UUIDUtil;
45
import net.minecraft.nbt.CompoundTag;
56
import net.minecraft.nbt.ListTag;
67
import net.minecraft.nbt.Tag;
78
import net.minecraft.network.FriendlyByteBuf;
9+
import net.minecraft.network.codec.ByteBufCodecs;
10+
import net.minecraft.network.codec.StreamCodec;
811
import net.minecraft.world.entity.ai.attributes.AttributeInstance;
912
import net.minecraft.world.entity.ai.attributes.Attributes;
1013
import net.minecraft.world.entity.decoration.ArmorStand;
@@ -13,14 +16,12 @@
1316
import java.util.UUID;
1417

1518
public record SyncData(UUID entityUUID, CompoundTag tag) {
16-
public void encode(FriendlyByteBuf buf) {
17-
buf.writeUUID(entityUUID);
18-
buf.writeNbt(tag);
19-
}
20-
21-
public static SyncData decode(final FriendlyByteBuf packetBuffer) {
22-
return new SyncData(packetBuffer.readUUID(), packetBuffer.readNbt());
23-
}
19+
public static final StreamCodec<FriendlyByteBuf, SyncData> STREAM_CODEC = StreamCodec.composite(
20+
UUIDUtil.STREAM_CODEC,
21+
SyncData::entityUUID,
22+
ByteBufCodecs.COMPOUND_TAG,
23+
SyncData::tag,
24+
SyncData::new);
2425

2526
public void handleData(ArmorStand armorStand, Player player) {
2627
CompoundTag entityTag = armorStand.saveWithoutId(new CompoundTag());

common/src/main/java/com/mrbysco/armorposer/packets/ArmorStandRenamePayload.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.mrbysco.armorposer.Reference;
44
import com.mrbysco.armorposer.data.RenameData;
5-
import com.mrbysco.armorposer.data.SyncData;
65
import net.minecraft.network.FriendlyByteBuf;
76
import net.minecraft.network.codec.StreamCodec;
87
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
@@ -15,11 +14,11 @@ public record ArmorStandRenamePayload(RenameData data) implements CustomPacketPa
1514
public static final Type<ArmorStandRenamePayload> ID = new Type<>(Reference.RENAME_PACKET_ID);
1615

1716
public ArmorStandRenamePayload(final FriendlyByteBuf packetBuffer) {
18-
this(RenameData.decode(packetBuffer));
17+
this(RenameData.STREAM_CODEC.decode(packetBuffer));
1918
}
2019

2120
public void write(FriendlyByteBuf buf) {
22-
data.encode(buf);
21+
RenameData.STREAM_CODEC.encode(buf, data());
2322
}
2423

2524
@Override

common/src/main/java/com/mrbysco/armorposer/packets/ArmorStandScreenPayload.java

+4-10
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,17 @@
22

33
import com.mrbysco.armorposer.Reference;
44
import net.minecraft.network.FriendlyByteBuf;
5+
import net.minecraft.network.codec.ByteBufCodecs;
56
import net.minecraft.network.codec.StreamCodec;
67
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
78

89
public record ArmorStandScreenPayload(int entityID) implements CustomPacketPayload {
9-
public static final StreamCodec<FriendlyByteBuf, ArmorStandScreenPayload> CODEC = CustomPacketPayload.codec(
10-
ArmorStandScreenPayload::write,
10+
public static final StreamCodec<FriendlyByteBuf, ArmorStandScreenPayload> CODEC = StreamCodec.composite(
11+
ByteBufCodecs.INT,
12+
ArmorStandScreenPayload::entityID,
1113
ArmorStandScreenPayload::new);
1214
public static final Type<ArmorStandScreenPayload> ID = new Type<>(Reference.SCREEN_PACKET_ID);
1315

14-
public ArmorStandScreenPayload(final FriendlyByteBuf packetBuffer) {
15-
this(packetBuffer.readInt());
16-
}
17-
18-
public void write(FriendlyByteBuf buf) {
19-
buf.writeInt(entityID);
20-
}
21-
2216
@Override
2317
public Type<? extends CustomPacketPayload> type() {
2418
return ID;

common/src/main/java/com/mrbysco/armorposer/packets/ArmorStandSwapPayload.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ public record ArmorStandSwapPayload(SwapData data) implements CustomPacketPayloa
1414
public static final Type<ArmorStandSwapPayload> ID = new Type<>(Reference.SWAP_PACKET_ID);
1515

1616
public ArmorStandSwapPayload(final FriendlyByteBuf packetBuffer) {
17-
this(SwapData.read(packetBuffer));
17+
this(SwapData.STREAM_CODEC.decode(packetBuffer));
1818
}
1919

2020
public void write(FriendlyByteBuf buf) {
21-
data.write(buf);
21+
SwapData.STREAM_CODEC.encode(buf, data());
2222
}
2323

2424
@Override

common/src/main/java/com/mrbysco/armorposer/packets/ArmorStandSyncPayload.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ public record ArmorStandSyncPayload(SyncData data) implements CustomPacketPayloa
1414
public static final Type<ArmorStandSyncPayload> ID = new Type<>(Reference.SYNC_PACKET_ID);
1515

1616
public ArmorStandSyncPayload(final FriendlyByteBuf packetBuffer) {
17-
this(SyncData.decode(packetBuffer));
17+
this(SyncData.STREAM_CODEC.decode(packetBuffer));
1818
}
1919

2020
public void write(FriendlyByteBuf buf) {
21-
data.encode(buf);
21+
SyncData.STREAM_CODEC.encode(buf, data());
2222
}
2323

2424
@Override

0 commit comments

Comments
 (0)