diff --git a/src/main/java/ru/bclib/api/dataexchange/DataExchangeAPI.java b/src/main/java/ru/bclib/api/dataexchange/DataExchangeAPI.java index e74a6b92..eccbfa26 100644 --- a/src/main/java/ru/bclib/api/dataexchange/DataExchangeAPI.java +++ b/src/main/java/ru/bclib/api/dataexchange/DataExchangeAPI.java @@ -29,9 +29,17 @@ public class DataExchangeAPI extends DataExchange { * You should never need to create a custom instance of this Object. */ public DataExchangeAPI() { - super((api) -> new ConnectorClientside(api), (api) -> new ConnectorServerside(api)); + super(); } + @Environment(EnvType.CLIENT) + protected ConnectorClientside clientSupplier(DataExchange api) { + return new ConnectorClientside(api); + } + + protected ConnectorServerside serverSupplier(DataExchange api) { + return new ConnectorServerside(api); + } /** * Register a mod to participate in the DataExchange. diff --git a/src/main/java/ru/bclib/api/dataexchange/handler/DataExchange.java b/src/main/java/ru/bclib/api/dataexchange/handler/DataExchange.java index a5b0a1d7..9dcf7a7d 100644 --- a/src/main/java/ru/bclib/api/dataexchange/handler/DataExchange.java +++ b/src/main/java/ru/bclib/api/dataexchange/handler/DataExchange.java @@ -182,13 +182,11 @@ abstract public class DataExchange { protected final Set descriptors; protected final List autoSyncFiles = new ArrayList<>(4); - private final Function clientSupplier; - private final Function serverSupplier; + abstract protected ConnectorClientside clientSupplier(DataExchange api); + abstract protected ConnectorServerside serverSupplier(DataExchange api); - protected DataExchange(Function client, Function server){ + protected DataExchange(){ descriptors = new HashSet<>(); - this.clientSupplier = client; - this.serverSupplier = server; } public Set getDescriptors() { return descriptors; } @@ -196,7 +194,7 @@ abstract public class DataExchange { @Environment(EnvType.CLIENT) protected void initClientside(){ if (client!=null) return; - client = clientSupplier.apply(this); + client = clientSupplier(this); ClientLoginConnectionEvents.INIT.register((a, b) ->{ System.out.println("INIT"); }); @@ -210,7 +208,7 @@ abstract public class DataExchange { protected void initServerSide(){ if (server!=null) return; - server = serverSupplier.apply(this); + server = serverSupplier(this); ServerPlayConnectionEvents.INIT.register(server::onPlayInit); ServerPlayConnectionEvents.JOIN.register(server::onPlayReady);