Hello message initiated on Server
This commit is contained in:
parent
165c6e5b22
commit
c621b0525e
2 changed files with 24 additions and 21 deletions
|
@ -40,24 +40,19 @@ public abstract class DataHandler {
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
void receiveFromServer(Minecraft client, ClientPacketListener handler, FriendlyByteBuf buf, PacketSender responseSender){
|
void receiveFromServer(Minecraft client, ClientPacketListener handler, FriendlyByteBuf buf, PacketSender responseSender){
|
||||||
deserializeFromIncomingData(buf, responseSender, false);
|
deserializeFromIncomingData(buf, responseSender, true);
|
||||||
client.execute(() -> runOnClient(client));
|
client.execute(() -> runOnGameThread(client, null, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
void receiveFromClient(MinecraftServer server, ServerPlayer player, ServerGamePacketListenerImpl handler, FriendlyByteBuf buf, PacketSender responseSender){
|
void receiveFromClient(MinecraftServer server, ServerPlayer player, ServerGamePacketListenerImpl handler, FriendlyByteBuf buf, PacketSender responseSender){
|
||||||
deserializeFromIncomingData(buf, responseSender, true);
|
deserializeFromIncomingData(buf, responseSender, false);
|
||||||
server.execute(() -> runOnServer(server));
|
server.execute(() -> runOnGameThread(null, server, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void deserializeFromIncomingData(FriendlyByteBuf buf, PacketSender responseSender, boolean fromClient){
|
protected void deserializeFromIncomingData(FriendlyByteBuf buf, PacketSender responseSender, boolean isClient){
|
||||||
}
|
}
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
protected void runOnGameThread(Minecraft client, MinecraftServer server, boolean isClient){
|
||||||
protected void runOnClient(Minecraft client){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void runOnServer(MinecraftServer server){
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package ru.bclib.api.dataexchange.handler;
|
package ru.bclib.api.dataexchange.handler;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBufUtil;
|
|
||||||
import io.netty.util.CharsetUtil;
|
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.fabricmc.fabric.api.networking.v1.PacketSender;
|
import net.fabricmc.fabric.api.networking.v1.PacketSender;
|
||||||
|
@ -12,7 +10,6 @@ import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import ru.bclib.BCLib;
|
import ru.bclib.BCLib;
|
||||||
import ru.bclib.api.WorldDataAPI;
|
|
||||||
import ru.bclib.api.dataexchange.DataExchangeAPI;
|
import ru.bclib.api.dataexchange.DataExchangeAPI;
|
||||||
import ru.bclib.api.dataexchange.DataHandler;
|
import ru.bclib.api.dataexchange.DataHandler;
|
||||||
import ru.bclib.api.dataexchange.DataHandlerDescriptor;
|
import ru.bclib.api.dataexchange.DataHandlerDescriptor;
|
||||||
|
@ -24,11 +21,11 @@ import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class HelloServer extends DataHandler {
|
public class HelloClient extends DataHandler {
|
||||||
public static DataHandlerDescriptor DESCRIPTOR = new DataHandlerDescriptor(new ResourceLocation(BCLib.MOD_ID, "hello_server"), HelloServer::new, true);
|
public static DataHandlerDescriptor DESCRIPTOR = new DataHandlerDescriptor(new ResourceLocation(BCLib.MOD_ID, "hello_client"), HelloClient::new, true);
|
||||||
|
|
||||||
public HelloServer() {
|
public HelloClient() {
|
||||||
super(DESCRIPTOR.IDENTIFIER, false);
|
super(DESCRIPTOR.IDENTIFIER, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getModVersion(String modID){
|
public static String getModVersion(String modID){
|
||||||
|
@ -60,13 +57,18 @@ public class HelloServer extends DataHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void runOnServer(MinecraftServer server) {
|
protected void runOnGameThread(Minecraft client, MinecraftServer server, boolean isClient) {
|
||||||
String localBclibVersion = getBCLibVersion();
|
String localBclibVersion = getBCLibVersion();
|
||||||
BCLib.LOGGER.info("Hello Server received from BCLib. (server="+localBclibVersion+", client="+bclibVersion+")");
|
BCLib.LOGGER.info("Hello Client received from BCLib. (client="+localBclibVersion+", server="+bclibVersion+")");
|
||||||
|
|
||||||
|
if (DataFixerAPI.getModVersion(localBclibVersion) == DataFixerAPI.getModVersion(bclibVersion)){
|
||||||
|
showBCLibError(client);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (Entry<String, String> e : modVersion.entrySet()){
|
for (Entry<String, String> e : modVersion.entrySet()){
|
||||||
String ver = getModVersion(e.getKey());
|
String ver = getModVersion(e.getKey());
|
||||||
BCLib.LOGGER.info(" - " + e.getKey() + " (server="+ver+", client="+ver+")");
|
BCLib.LOGGER.info(" - " + e.getKey() + " (client="+ver+", server="+ver+")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,4 +83,10 @@ public class HelloServer extends DataHandler {
|
||||||
buf.writeInt(DataFixerAPI.getModVersion(getModVersion(modID)));
|
buf.writeInt(DataFixerAPI.getModVersion(getModVersion(modID)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Environment(EnvType.CLIENT)
|
||||||
|
protected void showBCLibError(Minecraft client){
|
||||||
|
BCLib.LOGGER.error("BCLib differs on client and server. Stopping.");
|
||||||
|
client.stop();
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue