Pass through Player from Network Messages

This commit is contained in:
Frank 2022-01-03 15:57:00 +01:00
parent 68ca682324
commit 83110b74a5
3 changed files with 28 additions and 11 deletions

View file

@ -14,6 +14,7 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.network.ServerGamePacketListenerImpl;
import net.minecraft.world.entity.player.Player;
import ru.bclib.BCLib;
import ru.bclib.api.dataexchange.handler.autosync.Chunker;
import ru.bclib.api.dataexchange.handler.autosync.Chunker.PacketChunkSender;
@ -132,7 +133,7 @@ public abstract class DataHandler extends BaseDataHandler {
}
@Override
protected void deserializeIncomingDataOnServer(FriendlyByteBuf buf, PacketSender responseSender) {
protected void deserializeIncomingDataOnServer(FriendlyByteBuf buf, Player player, PacketSender responseSender) {
}
}
@ -146,9 +147,23 @@ public abstract class DataHandler extends BaseDataHandler {
@Environment(EnvType.CLIENT)
abstract protected void serializeDataOnClient(FriendlyByteBuf buf);
abstract protected void deserializeIncomingDataOnServer(FriendlyByteBuf buf, PacketSender responseSender);
@Deprecated(forRemoval = true)
protected void deserializeIncomingDataOnServer(FriendlyByteBuf buf, PacketSender responseSender){ }
abstract protected void runOnServerGameThread(MinecraftServer server);
//TODO: should be abstract once deserializeIncomingDataOnServer(FriendlyByteBuf buf, PacketSender responseSender) was removed
protected void deserializeIncomingDataOnServer(FriendlyByteBuf buf, Player player, PacketSender responseSender) {
deserializeIncomingDataOnServer(buf, responseSender);
}
@Deprecated(forRemoval = true)
protected void runOnServerGameThread(MinecraftServer server){ }
//TODO: should be abstract once runOnServerGameThread(MinecraftServer server) was removed
protected void runOnServerGameThread(MinecraftServer server, Player player){
runOnServerGameThread(server);
}
@Environment(EnvType.CLIENT)
@ -161,8 +176,8 @@ public abstract class DataHandler extends BaseDataHandler {
void receiveFromClient(MinecraftServer server, ServerPlayer player, ServerGamePacketListenerImpl handler, FriendlyByteBuf buf, PacketSender responseSender) {
super.receiveFromClient(server, player, handler, buf, responseSender);
deserializeIncomingDataOnServer(buf, responseSender);
final Runnable runner = () -> runOnServerGameThread(server);
deserializeIncomingDataOnServer(buf, player, responseSender);
final Runnable runner = () -> runOnServerGameThread(server, player);
if (isBlocking()) server.executeBlocking(runner);
else server.execute(runner);

View file

@ -6,6 +6,7 @@ import net.fabricmc.fabric.api.networking.v1.PacketSender;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.entity.player.Player;
import ru.bclib.BCLib;
import ru.bclib.api.dataexchange.DataExchangeAPI;
import ru.bclib.api.dataexchange.DataHandler;
@ -84,12 +85,12 @@ public class HelloServer extends DataHandler.FromClient {
}
@Override
protected void deserializeIncomingDataOnServer(FriendlyByteBuf buf, PacketSender responseSender) {
protected void deserializeIncomingDataOnServer(FriendlyByteBuf buf, Player player, PacketSender responseSender) {
bclibVersion = ModUtil.convertModVersion(buf.readInt());
}
@Override
protected void runOnServerGameThread(MinecraftServer server) {
protected void runOnServerGameThread(MinecraftServer server, Player player) {
if (!Configs.SERVER_CONFIG.isAllowingAutoSync()) {
BCLib.LOGGER.info("Auto-Sync was disabled on the server.");
return;

View file

@ -6,6 +6,7 @@ import net.fabricmc.fabric.api.networking.v1.PacketSender;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.entity.player.Player;
import ru.bclib.BCLib;
import ru.bclib.api.dataexchange.DataHandler;
import ru.bclib.api.dataexchange.DataHandlerDescriptor;
@ -57,7 +58,7 @@ public class RequestFiles extends DataHandler.FromClient {
String receivedToken = "";
@Override
protected void deserializeIncomingDataOnServer(FriendlyByteBuf buf, PacketSender responseSender) {
protected void deserializeIncomingDataOnServer(FriendlyByteBuf buf, Player player, PacketSender responseSender) {
receivedToken = readString(buf);
int size = buf.readInt();
files = new ArrayList<>(size);
@ -73,7 +74,7 @@ public class RequestFiles extends DataHandler.FromClient {
}
@Override
protected void runOnServerGameThread(MinecraftServer server) {
protected void runOnServerGameThread(MinecraftServer server, Player player) {
if (!Configs.SERVER_CONFIG.isAllowingAutoSync()) {
BCLib.LOGGER.info("Auto-Sync was disabled on the server.");
return;