Adding ModFile Request
This commit is contained in:
parent
e9fc77ab0d
commit
8588191556
2 changed files with 15 additions and 5 deletions
|
@ -3,6 +3,7 @@ package ru.bclib.api.dataexchange.handler.autosync;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import ru.bclib.api.dataexchange.DataHandler;
|
import ru.bclib.api.dataexchange.DataHandler;
|
||||||
|
import ru.bclib.api.datafixer.DataFixerAPI;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
@ -42,18 +43,21 @@ public class AutoSyncID {
|
||||||
|
|
||||||
static class ForModFileRequest extends AutoSyncID {
|
static class ForModFileRequest extends AutoSyncID {
|
||||||
public final static String UNIQUE_ID = "bclib::MOD";
|
public final static String UNIQUE_ID = "bclib::MOD";
|
||||||
|
private final String version;
|
||||||
ForModFileRequest(String modID) {
|
ForModFileRequest(String modID, String version) {
|
||||||
super(modID, ForModFileRequest.UNIQUE_ID);
|
super(modID, ForModFileRequest.UNIQUE_ID);
|
||||||
|
this.version = version;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void serializeData(FriendlyByteBuf buf) {
|
void serializeData(FriendlyByteBuf buf) {
|
||||||
super.serializeData(buf);
|
super.serializeData(buf);
|
||||||
|
buf.writeInt(DataFixerAPI.getModVersion(version));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ForModFileRequest finishDeserialize(String modID, String uniqueID, FriendlyByteBuf buf){
|
static ForModFileRequest finishDeserialize(String modID, String uniqueID, FriendlyByteBuf buf){
|
||||||
return new ForModFileRequest(modID);
|
final String version = DataFixerAPI.getModVersion(buf.readInt());
|
||||||
|
return new ForModFileRequest(modID, version);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -263,8 +263,14 @@ public class HelloClient extends DataHandler.FromServer {
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
private void processModFileSync(final List<AutoSyncID> filesToRequest) {
|
private void processModFileSync(final List<AutoSyncID> filesToRequest) {
|
||||||
for (Entry<String, String> e : modVersion.entrySet()) {
|
for (Entry<String, String> e : modVersion.entrySet()) {
|
||||||
String ver = PathUtil.getModVersion(e.getKey());
|
final String localVersion = PathUtil.getModVersion(e.getKey());
|
||||||
BCLib.LOGGER.info(" - " + e.getKey() + " (client=" + ver + ", server=" + ver + ")");
|
final String serverVersion = e.getValue();
|
||||||
|
final boolean requestMod = !serverVersion.equals(localVersion);
|
||||||
|
|
||||||
|
BCLib.LOGGER.info(" - " + e.getKey() + " (client=" + localVersion + ", server=" + serverVersion + (requestMod?", requesting":"") +")");
|
||||||
|
if (requestMod){
|
||||||
|
filesToRequest.add(new AutoSyncID.ForModFileRequest(e.getKey(), serverVersion));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue