Skip to content

Commit 47f62b7

Browse files
committed
Fix network
1 parent a9f7818 commit 47f62b7

File tree

6 files changed

+134
-5
lines changed

6 files changed

+134
-5
lines changed

src/main/java/edivad/extrastorage/ExtraStorage.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import edivad.extrastorage.data.loot.pack.ExtraStorageLootTableProvider;
2323
import edivad.extrastorage.data.models.ExtraStorageBlockModelProvider;
2424
import edivad.extrastorage.data.models.ExtraStorageItemModelProvider;
25+
import edivad.extrastorage.network.PacketHandler;
2526
import edivad.extrastorage.setup.ClientSetup;
2627
import edivad.extrastorage.setup.Config;
2728
import edivad.extrastorage.setup.CreativeModeTabs;
@@ -62,6 +63,7 @@ public class ExtraStorage {
6263

6364
public ExtraStorage(ModContainer modContainer, Dist dist) {
6465
var modEventBus = modContainer.getEventBus();
66+
PacketHandler.register(modEventBus);
6567
ESBlocks.register(modEventBus);
6668
ESItems.register(modEventBus);
6769
ESBlockEntities.register(modEventBus);

src/main/java/edivad/extrastorage/autocrafting/advancedautocrafter/AdvancedAutocrafterContainerMenu.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@
1010
import com.refinedmods.refinedstorage.common.support.FilteredContainer;
1111
import com.refinedmods.refinedstorage.common.support.containermenu.ClientProperty;
1212
import com.refinedmods.refinedstorage.common.support.containermenu.ServerProperty;
13-
import com.refinedmods.refinedstorage.common.support.packet.c2s.C2SPackets;
14-
import com.refinedmods.refinedstorage.common.support.packet.s2c.S2CPackets;
1513
import com.refinedmods.refinedstorage.common.upgrade.UpgradeContainer;
1614
import com.refinedmods.refinedstorage.common.upgrade.UpgradeDestinations;
1715
import com.refinedmods.refinedstorage.common.upgrade.UpgradeSlot;
16+
import edivad.extrastorage.network.to_client.AdvancedAutocrafterLockedUpdatePacket;
17+
import edivad.extrastorage.network.to_client.AdvancedAutocrafterNameUpdatePacket;
18+
import edivad.extrastorage.network.to_server.AdvancedAutocrafterNameChangePacket;
1819
import edivad.extrastorage.setup.ESContainer;
1920
import lombok.Getter;
2021
import net.minecraft.network.chat.Component;
@@ -23,6 +24,7 @@
2324
import net.minecraft.world.entity.player.Player;
2425
import net.minecraft.world.inventory.Slot;
2526
import net.minecraft.world.item.ItemStack;
27+
import net.neoforged.neoforge.network.PacketDistributor;
2628

2729
public class AdvancedAutocrafterContainerMenu extends AbstractBaseContainerMenu {
2830

@@ -113,7 +115,8 @@ public void broadcastChanges() {
113115
final boolean newLocked = autocrafter.isLocked();
114116
if (locked != newLocked) {
115117
locked = newLocked;
116-
S2CPackets.sendAutocrafterLockedUpdate((ServerPlayer) player, locked);
118+
PacketDistributor.sendToPlayer((ServerPlayer) player,
119+
new AdvancedAutocrafterLockedUpdatePacket(locked));
117120
}
118121
}
119122

@@ -124,7 +127,8 @@ private void detectNameChange() {
124127
final Component newName = autocrafter.getDisplayName();
125128
if (!newName.equals(name)) {
126129
this.name = newName;
127-
S2CPackets.sendAutocrafterNameUpdate((ServerPlayer) player, newName);
130+
PacketDistributor.sendToPlayer((ServerPlayer) player,
131+
new AdvancedAutocrafterNameUpdatePacket(newName));
128132
}
129133
}
130134

@@ -168,7 +172,7 @@ public void changeName(final String newName) {
168172
autocrafter.setCustomName(newName);
169173
detectNameChange();
170174
} else {
171-
C2SPackets.sendAutocrafterNameChange(newName);
175+
PacketDistributor.sendToServer(new AdvancedAutocrafterNameChangePacket(newName));
172176
}
173177
}
174178

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package edivad.extrastorage.network;
2+
3+
import edivad.extrastorage.ExtraStorage;
4+
import edivad.extrastorage.network.to_client.AdvancedAutocrafterLockedUpdatePacket;
5+
import edivad.extrastorage.network.to_client.AdvancedAutocrafterNameUpdatePacket;
6+
import edivad.extrastorage.network.to_server.AdvancedAutocrafterNameChangePacket;
7+
import net.neoforged.bus.api.IEventBus;
8+
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent;
9+
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
10+
11+
public class PacketHandler {
12+
13+
private PacketHandler() {
14+
}
15+
16+
public static void register(IEventBus modEventBus) {
17+
modEventBus.addListener(RegisterPayloadHandlersEvent.class, event -> {
18+
var registrar = event.registrar(ExtraStorage.ID).versioned("1");
19+
registerClientToServer(registrar);
20+
registerServerToClient(registrar);
21+
});
22+
}
23+
24+
private static void registerClientToServer(PayloadRegistrar registrar) {
25+
registrar.playToServer(AdvancedAutocrafterNameChangePacket.TYPE,
26+
AdvancedAutocrafterNameChangePacket.STREAM_CODEC, AdvancedAutocrafterNameChangePacket::handle);
27+
}
28+
29+
private static void registerServerToClient(PayloadRegistrar registrar) {
30+
registrar.playToClient(AdvancedAutocrafterLockedUpdatePacket.TYPE,
31+
AdvancedAutocrafterLockedUpdatePacket.STREAM_CODEC, AdvancedAutocrafterLockedUpdatePacket::handle);
32+
registrar.playToClient(AdvancedAutocrafterNameUpdatePacket.TYPE,
33+
AdvancedAutocrafterNameUpdatePacket.STREAM_CODEC, AdvancedAutocrafterNameUpdatePacket::handle);
34+
}
35+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package edivad.extrastorage.network.to_client;
2+
3+
import edivad.extrastorage.ExtraStorage;
4+
import edivad.extrastorage.autocrafting.advancedautocrafter.AdvancedAutocrafterContainerMenu;
5+
import net.minecraft.network.RegistryFriendlyByteBuf;
6+
import net.minecraft.network.codec.ByteBufCodecs;
7+
import net.minecraft.network.codec.StreamCodec;
8+
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
9+
import net.neoforged.neoforge.network.handling.IPayloadContext;
10+
11+
public record AdvancedAutocrafterLockedUpdatePacket(boolean locked) implements CustomPacketPayload {
12+
public static final CustomPacketPayload.Type<AdvancedAutocrafterLockedUpdatePacket> TYPE =
13+
new Type(ExtraStorage.rl("advanced_autocrafter_locked_update"));
14+
15+
public static final StreamCodec<RegistryFriendlyByteBuf, AdvancedAutocrafterLockedUpdatePacket> STREAM_CODEC =
16+
StreamCodec.composite(ByteBufCodecs.BOOL, AdvancedAutocrafterLockedUpdatePacket::locked,
17+
AdvancedAutocrafterLockedUpdatePacket::new);
18+
19+
20+
public Type<? extends CustomPacketPayload> type() {
21+
return TYPE;
22+
}
23+
24+
public static void handle(AdvancedAutocrafterLockedUpdatePacket packet, IPayloadContext ctx) {
25+
if (ctx.player().containerMenu instanceof AdvancedAutocrafterContainerMenu containerMenu) {
26+
containerMenu.lockedChanged(packet.locked);
27+
}
28+
}
29+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package edivad.extrastorage.network.to_client;
2+
3+
import edivad.extrastorage.ExtraStorage;
4+
import edivad.extrastorage.autocrafting.advancedautocrafter.AdvancedAutocrafterContainerMenu;
5+
import net.minecraft.network.RegistryFriendlyByteBuf;
6+
import net.minecraft.network.chat.Component;
7+
import net.minecraft.network.chat.ComponentSerialization;
8+
import net.minecraft.network.codec.StreamCodec;
9+
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
10+
import net.neoforged.neoforge.network.handling.IPayloadContext;
11+
12+
public record AdvancedAutocrafterNameUpdatePacket(Component name) implements CustomPacketPayload {
13+
public static final CustomPacketPayload.Type<AdvancedAutocrafterNameUpdatePacket> TYPE =
14+
new Type(ExtraStorage.rl("advanced_autocrafter_name_update"));
15+
16+
public static final StreamCodec<RegistryFriendlyByteBuf, AdvancedAutocrafterNameUpdatePacket> STREAM_CODEC =
17+
StreamCodec.composite(ComponentSerialization.STREAM_CODEC, AdvancedAutocrafterNameUpdatePacket::name,
18+
AdvancedAutocrafterNameUpdatePacket::new);
19+
20+
21+
public Type<? extends CustomPacketPayload> type() {
22+
return TYPE;
23+
}
24+
25+
public static void handle(AdvancedAutocrafterNameUpdatePacket packet, IPayloadContext ctx) {
26+
if (ctx.player().containerMenu instanceof AdvancedAutocrafterContainerMenu containerMenu) {
27+
containerMenu.nameChanged(packet.name);
28+
}
29+
}
30+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package edivad.extrastorage.network.to_server;
2+
3+
import edivad.extrastorage.ExtraStorage;
4+
import edivad.extrastorage.autocrafting.advancedautocrafter.AdvancedAutocrafterContainerMenu;
5+
import net.minecraft.network.RegistryFriendlyByteBuf;
6+
import net.minecraft.network.codec.ByteBufCodecs;
7+
import net.minecraft.network.codec.StreamCodec;
8+
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
9+
import net.neoforged.neoforge.network.handling.IPayloadContext;
10+
11+
public record AdvancedAutocrafterNameChangePacket(String name) implements CustomPacketPayload {
12+
public static final Type<AdvancedAutocrafterNameChangePacket> TYPE =
13+
new Type(ExtraStorage.rl("advanced_autocrafter_name_change"));
14+
15+
public static final StreamCodec<RegistryFriendlyByteBuf, AdvancedAutocrafterNameChangePacket> STREAM_CODEC =
16+
StreamCodec.composite(ByteBufCodecs.STRING_UTF8, AdvancedAutocrafterNameChangePacket::name,
17+
AdvancedAutocrafterNameChangePacket::new);
18+
19+
@Override
20+
public Type<? extends CustomPacketPayload> type() {
21+
return TYPE;
22+
}
23+
24+
public static void handle(AdvancedAutocrafterNameChangePacket packet, IPayloadContext ctx) {
25+
if (ctx.player().containerMenu instanceof AdvancedAutocrafterContainerMenu containerMenu) {
26+
containerMenu.changeName(packet.name);
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)