Skip to content

Commit

Permalink
networking requests
Browse files Browse the repository at this point in the history
  • Loading branch information
KrLite committed Mar 9, 2024
1 parent bf6f6e0 commit cd07b99
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/main/java/net/krlite/knowledges/KnowledgesCommon.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ public class KnowledgesCommon implements ModInitializer {

@Override
public void onInitialize() {
KnowledgesNetworking.register();
KnowledgesNetworking.registerServer();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ public static void onRequest(PacketByteBuf buf, ServerPlayerEntity player, Consu
});
}

@Override
public void writeToBuf(PacketByteBuf buf) {
buf.writeBlockHitResult(hitResult());
buf.writeVarInt(Block.getRawIdFromState(blockState()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,9 @@ public static void onRequest(PacketByteBuf buf, ServerPlayerEntity player, Consu
responseSender.accept(compound);
});
}

public void writeToPacket(PacketByteBuf buf) {

@Override
public void writeToBuf(PacketByteBuf buf) {
buf.writeVarInt(entity().getId());

Vec3d hitPos = hitResult().getPos();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,29 @@
package net.krlite.knowledges.networking;

import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
import net.krlite.knowledges.KnowledgesClient;
import net.krlite.knowledges.KnowledgesCommon;
import net.krlite.knowledges.impl.representable.KnowledgesBlockRepresentable;
import net.krlite.knowledges.impl.representable.KnowledgesEntityRepresentable;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.util.Identifier;

public class KnowledgesNetworking {
public static final Identifier PACKET_PEEK_BLOCK = identifier("packet_peek_block");
public static final Identifier PACKET_PEEK_ENTITY = identifier("packet_peek_entity");
public static final Identifier PACKET_RECEIVE_DATA = identifier("packet_receive_data");
public static final Identifier PACKET_SERVER_PING = identifier("packet_server_ping");

public static Identifier identifier(String path) {
return new Identifier(KnowledgesCommon.ID + "_networking", path);
}

public static void register() {
public static void registerServer() {
ServerPlayNetworking.registerGlobalReceiver(PACKET_PEEK_BLOCK, (server, player, handler, buf, responseSender) -> {
KnowledgesBlockRepresentable.onRequest(buf, player, server::execute, compound -> {
PacketByteBuf data = PacketByteBufs.create();
Expand All @@ -32,5 +38,17 @@ public static void register() {
responseSender.sendPacket(PACKET_RECEIVE_DATA, data);
});
});
ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> ServerPlayNetworking.send(handler.getPlayer(), PACKET_SERVER_PING, PacketByteBufs.create()));
}

public static void registerClient() {
ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> KnowledgesClient.HUD.setConnectionStatus(false));
ClientPlayNetworking.registerGlobalReceiver(KnowledgesNetworking.PACKET_RECEIVE_DATA, (client, handler, buf, responseSender) -> {
NbtCompound compound = buf.readNbt();
client.execute(() -> KnowledgesClient.HUD.onReceiveData(compound));
});
ClientPlayNetworking.registerGlobalReceiver(KnowledgesNetworking.PACKET_SERVER_PING, (client, handler, buf, responseSender) ->
client.execute(() -> KnowledgesClient.HUD.setConnectionStatus(true))
);
}
}

0 comments on commit cd07b99

Please sign in to comment.