better naming for client/server only handlers
This commit is contained in:
parent
29fe59b4b9
commit
55f00c664c
11 changed files with 341 additions and 130 deletions
|
@ -4,6 +4,7 @@ import net.fabricmc.api.EnvType;
|
|||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
|
||||
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
|
||||
import ru.bclib.api.dataexchange.BaseDataHandler;
|
||||
import ru.bclib.api.dataexchange.ConnectorClientside;
|
||||
import ru.bclib.api.dataexchange.ConnectorServerside;
|
||||
import ru.bclib.api.dataexchange.DataExchangeAPI;
|
||||
|
@ -95,7 +96,7 @@ abstract public class DataExchange {
|
|||
public static void sendOnEnter() {
|
||||
getInstance().descriptors.forEach((desc) -> {
|
||||
if (desc.sendBeforeEnter) {
|
||||
DataHandler h = desc.JOIN_INSTANCE.get();
|
||||
BaseDataHandler h = desc.JOIN_INSTANCE.get();
|
||||
if (!h.getOriginatesOnServer()) {
|
||||
getInstance().client.sendToServer(h);
|
||||
}
|
||||
|
|
|
@ -7,12 +7,10 @@ import net.minecraft.client.Minecraft;
|
|||
import net.minecraft.client.gui.screens.Screen;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import ru.bclib.BCLib;
|
||||
import ru.bclib.api.dataexchange.DataExchangeAPI;
|
||||
import ru.bclib.api.dataexchange.DataHandler;
|
||||
import ru.bclib.api.dataexchange.DataHandlerDescriptor;
|
||||
import ru.bclib.api.dataexchange.handler.DataExchange;
|
||||
import ru.bclib.api.dataexchange.handler.autosync.AutoSync.ClientConfig;
|
||||
import ru.bclib.api.dataexchange.handler.autosync.AutoSync.Config;
|
||||
import ru.bclib.api.dataexchange.handler.autosync.AutoSyncID.WithContentOverride;
|
||||
|
@ -36,11 +34,11 @@ import java.util.stream.Collectors;
|
|||
* <p>
|
||||
* For Details refer to {@link HelloServer}
|
||||
*/
|
||||
public class HelloClient extends DataHandler {
|
||||
public class HelloClient extends DataHandler.FromServer {
|
||||
public static DataHandlerDescriptor DESCRIPTOR = new DataHandlerDescriptor(new ResourceLocation(BCLib.MOD_ID, "hello_client"), HelloClient::new, false, false);
|
||||
|
||||
public HelloClient() {
|
||||
super(DESCRIPTOR.IDENTIFIER, true);
|
||||
super(DESCRIPTOR.IDENTIFIER);
|
||||
}
|
||||
|
||||
static String getBCLibVersion() {
|
||||
|
@ -48,7 +46,7 @@ public class HelloClient extends DataHandler {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected boolean prepareData(boolean isClient) {
|
||||
protected boolean prepareDataOnServer() {
|
||||
if (!Config.isAllowingAutoSync()) {
|
||||
BCLib.LOGGER.info("Auto-Sync was disabled on the server.");
|
||||
return false;
|
||||
|
@ -59,7 +57,7 @@ public class HelloClient extends DataHandler {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void serializeData(FriendlyByteBuf buf, boolean isClient) {
|
||||
protected void serializeDataOnServer(FriendlyByteBuf buf) {
|
||||
final String vbclib = getBCLibVersion();
|
||||
BCLib.LOGGER.info("Sending Hello to Client. (server=" + vbclib + ")");
|
||||
final List<String> mods = DataExchangeAPI.registeredMods();
|
||||
|
@ -120,8 +118,9 @@ public class HelloClient extends DataHandler {
|
|||
List<AutoSync.AutoSyncTriple> autoSyncedFiles = null;
|
||||
List<SyncFolderDescriptor> autoSynFolders = null;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@Override
|
||||
protected void deserializeFromIncomingData(FriendlyByteBuf buf, PacketSender responseSender, boolean fromClient) {
|
||||
protected void deserializeIncomingDataOnClient(FriendlyByteBuf buf, PacketSender responseSender) {
|
||||
//read BCLibVersion (=protocol version)
|
||||
bclibVersion = DataFixerAPI.getModVersion(buf.readInt());
|
||||
|
||||
|
@ -156,8 +155,9 @@ public class HelloClient extends DataHandler {
|
|||
}
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
private void processAutoSyncFolder(final List<AutoSyncID> filesToRequest, final List<AutoSyncID.ForDirectFileRequest> filesToRemove) {
|
||||
if (!ClientConfig.isClientConfigAcceptingFolders()) {
|
||||
if (!ClientConfig.isAcceptingFolders()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -221,8 +221,9 @@ public class HelloClient extends DataHandler {
|
|||
});
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
private void processSingleFileSync(final List<AutoSyncID> filesToRequest) {
|
||||
final boolean debugHashes = ClientConfig.shouldClientConfigPrintDebugHashes();
|
||||
final boolean debugHashes = ClientConfig.shouldPrintDebugHashes();
|
||||
|
||||
if (autoSyncedFiles.size() > 0) {
|
||||
BCLib.LOGGER.info("Files offered by Server:");
|
||||
|
@ -260,9 +261,10 @@ public class HelloClient extends DataHandler {
|
|||
}
|
||||
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@Override
|
||||
protected void runOnGameThread(Minecraft client, MinecraftServer server, boolean isClient) {
|
||||
if (!ClientConfig.isClientConfigAllowingAutoSync()) {
|
||||
protected void runOnClientGameThread(Minecraft client) {
|
||||
if (!ClientConfig.isAllowingAutoSync()) {
|
||||
BCLib.LOGGER.info("Auto-Sync was disabled on the client.");
|
||||
return;
|
||||
}
|
||||
|
@ -289,7 +291,7 @@ public class HelloClient extends DataHandler {
|
|||
//Both client and server need to know about the folder you want to sync
|
||||
//Files can only get placed within that folder
|
||||
|
||||
if ((filesToRequest.size() > 0 || filesToRemove.size() > 0) && ClientConfig.isClientConfigAcceptingFiles()) {
|
||||
if ((filesToRequest.size() > 0 || filesToRemove.size() > 0) && ClientConfig.isAcceptingFiles()) {
|
||||
showDownloadConfigs(client, filesToRequest, filesToRemove);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
package ru.bclib.api.dataexchange.handler.autosync;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.api.networking.v1.PacketSender;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
|
@ -56,38 +57,40 @@ import java.io.File;
|
|||
* </tr>
|
||||
* </table>
|
||||
*/
|
||||
public class HelloServer extends DataHandler {
|
||||
public class HelloServer extends DataHandler.FromClient {
|
||||
public static DataHandlerDescriptor DESCRIPTOR = new DataHandlerDescriptor(new ResourceLocation(BCLib.MOD_ID, "hello_server"), HelloServer::new, true, false);
|
||||
|
||||
protected String bclibVersion = "0.0.0";
|
||||
|
||||
public HelloServer() {
|
||||
super(DESCRIPTOR.IDENTIFIER, false);
|
||||
super(DESCRIPTOR.IDENTIFIER);
|
||||
}
|
||||
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@Override
|
||||
protected boolean prepareData(boolean isClient) {
|
||||
if (!ClientConfig.isClientConfigAllowingAutoSync()) {
|
||||
protected boolean prepareDataOnClient() {
|
||||
if (!ClientConfig.isAllowingAutoSync()) {
|
||||
BCLib.LOGGER.info("Auto-Sync was disabled on the client.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@Override
|
||||
protected void serializeData(FriendlyByteBuf buf, boolean isClient) {
|
||||
protected void serializeDataOnClient(FriendlyByteBuf buf) {
|
||||
BCLib.LOGGER.info("Sending hello to server.");
|
||||
buf.writeInt(DataFixerAPI.getModVersion(HelloClient.getBCLibVersion()));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void deserializeFromIncomingData(FriendlyByteBuf buf, PacketSender responseSender, boolean fromClient) {
|
||||
protected void deserializeIncomingDataOnServer(FriendlyByteBuf buf, PacketSender responseSender) {
|
||||
bclibVersion = DataFixerAPI.getModVersion(buf.readInt());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void runOnGameThread(Minecraft client, MinecraftServer server, boolean isClient) {
|
||||
protected void runOnServerGameThread(MinecraftServer server) {
|
||||
if (!Config.isAllowingAutoSync()) {
|
||||
BCLib.LOGGER.info("Auto-Sync was disabled on the server.");
|
||||
return;
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
package ru.bclib.api.dataexchange.handler.autosync;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.api.networking.v1.PacketSender;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
|
@ -16,7 +17,7 @@ import java.util.List;
|
|||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class RequestFiles extends DataHandler {
|
||||
public class RequestFiles extends DataHandler.FromClient {
|
||||
public static DataHandlerDescriptor DESCRIPTOR = new DataHandlerDescriptor(new ResourceLocation(BCLib.MOD_ID, "request_files"), RequestFiles::new, false, false);
|
||||
static String currentToken = "";
|
||||
|
||||
|
@ -27,21 +28,23 @@ public class RequestFiles extends DataHandler {
|
|||
}
|
||||
|
||||
public RequestFiles(List<AutoSyncID> files) {
|
||||
super(DESCRIPTOR.IDENTIFIER, false);
|
||||
super(DESCRIPTOR.IDENTIFIER);
|
||||
this.files = files;
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@Override
|
||||
protected boolean prepareData(boolean isClient) {
|
||||
if (!ClientConfig.isClientConfigAllowingAutoSync()) {
|
||||
protected boolean prepareDataOnClient() {
|
||||
if (!ClientConfig.isAllowingAutoSync()) {
|
||||
BCLib.LOGGER.info("Auto-Sync was disabled on the client.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@Override
|
||||
protected void serializeData(FriendlyByteBuf buf, boolean isClient) {
|
||||
protected void serializeDataOnClient(FriendlyByteBuf buf) {
|
||||
newToken();
|
||||
writeString(buf, currentToken);
|
||||
|
||||
|
@ -55,7 +58,7 @@ public class RequestFiles extends DataHandler {
|
|||
String receivedToken = "";
|
||||
|
||||
@Override
|
||||
protected void deserializeFromIncomingData(FriendlyByteBuf buf, PacketSender responseSender, boolean fromClient) {
|
||||
protected void deserializeIncomingDataOnServer(FriendlyByteBuf buf, PacketSender responseSender) {
|
||||
receivedToken = readString(buf);
|
||||
int size = buf.readInt();
|
||||
files = new ArrayList<>(size);
|
||||
|
@ -71,7 +74,7 @@ public class RequestFiles extends DataHandler {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void runOnGameThread(Minecraft client, MinecraftServer server, boolean isClient) {
|
||||
protected void runOnServerGameThread(MinecraftServer server) {
|
||||
if (!Config.isAllowingAutoSync()) {
|
||||
BCLib.LOGGER.info("Auto-Sync was disabled on the server.");
|
||||
return;
|
||||
|
|
|
@ -7,11 +7,9 @@ import net.minecraft.client.Minecraft;
|
|||
import net.minecraft.client.gui.screens.Screen;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import ru.bclib.BCLib;
|
||||
import ru.bclib.api.dataexchange.DataHandler;
|
||||
import ru.bclib.api.dataexchange.DataHandlerDescriptor;
|
||||
import ru.bclib.api.dataexchange.handler.DataExchange;
|
||||
import ru.bclib.api.dataexchange.handler.autosync.AutoSync.ClientConfig;
|
||||
import ru.bclib.api.dataexchange.handler.autosync.AutoSync.Config;
|
||||
import ru.bclib.gui.screens.ConfirmRestartScreen;
|
||||
|
@ -26,7 +24,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class SendFiles extends DataHandler {
|
||||
public class SendFiles extends DataHandler.FromServer {
|
||||
public static DataHandlerDescriptor DESCRIPTOR = new DataHandlerDescriptor(new ResourceLocation(BCLib.MOD_ID, "send_files"), SendFiles::new, false, false);
|
||||
|
||||
protected List<AutoFileSyncEntry> files;
|
||||
|
@ -37,13 +35,13 @@ public class SendFiles extends DataHandler {
|
|||
}
|
||||
|
||||
public SendFiles(List<AutoFileSyncEntry> files, String token) {
|
||||
super(DESCRIPTOR.IDENTIFIER, true);
|
||||
super(DESCRIPTOR.IDENTIFIER);
|
||||
this.files = files;
|
||||
this.token = token;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean prepareData(boolean isClient) {
|
||||
protected boolean prepareDataOnServer() {
|
||||
if (!Config.isAllowingAutoSync()) {
|
||||
BCLib.LOGGER.info("Auto-Sync was disabled on the server.");
|
||||
return false;
|
||||
|
@ -53,7 +51,7 @@ public class SendFiles extends DataHandler {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void serializeData(FriendlyByteBuf buf, boolean isClient) {
|
||||
protected void serializeDataOnServer(FriendlyByteBuf buf) {
|
||||
List<AutoFileSyncEntry> existingFiles = files.stream()
|
||||
.filter(e -> e.fileName.exists())
|
||||
.collect(Collectors.toList());
|
||||
|
@ -83,9 +81,10 @@ public class SendFiles extends DataHandler {
|
|||
|
||||
private List<Pair<AutoFileSyncEntry, byte[]>> receivedFiles;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@Override
|
||||
protected void deserializeFromIncomingData(FriendlyByteBuf buf, PacketSender responseSender, boolean fromClient) {
|
||||
if (ClientConfig.isClientConfigAcceptingFiles()) {
|
||||
protected void deserializeIncomingDataOnClient(FriendlyByteBuf buf, PacketSender responseSender) {
|
||||
if (ClientConfig.isAcceptingFiles()) {
|
||||
token = readString(buf);
|
||||
if (!token.equals(RequestFiles.currentToken)) {
|
||||
RequestFiles.newToken();
|
||||
|
@ -111,9 +110,10 @@ public class SendFiles extends DataHandler {
|
|||
}
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@Override
|
||||
protected void runOnGameThread(Minecraft client, MinecraftServer server, boolean isClient) {
|
||||
if (ClientConfig.isClientConfigAcceptingFiles()) {
|
||||
protected void runOnClientGameThread(Minecraft client) {
|
||||
if (ClientConfig.isAcceptingFiles()) {
|
||||
BCLib.LOGGER.info("Writing Files:");
|
||||
|
||||
//TODO: Reject files that were not in the last RequestFiles.
|
||||
|
@ -128,6 +128,7 @@ public class SendFiles extends DataHandler {
|
|||
}
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public static void writeSyncedFile(AutoSyncID e, byte[] data, File fileName) {
|
||||
Path path = fileName.toPath();
|
||||
BCLib.LOGGER.info(" - Writing " + path + " (" + data.length + " Bytes)");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue