Skip to content

Commit c54a36d

Browse files
committed
Save which partner mods were installed when essential was installed.
1 parent 9d91ab8 commit c54a36d

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

src/main/java/gg/essential/partnermod/EssentialUtil.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,17 @@
1111

1212
package gg.essential.partnermod;
1313

14+
import com.google.gson.JsonArray;
15+
import com.google.gson.JsonObject;
16+
import gg.essential.partnermod.data.PartnerModData;
1417
import net.minecraft.client.Minecraft;
1518

1619
import java.io.InputStream;
20+
import java.nio.charset.StandardCharsets;
1721
import java.nio.file.Files;
1822
import java.nio.file.Path;
1923
import java.nio.file.Paths;
24+
import java.util.List;
2025

2126
public class EssentialUtil {
2227

@@ -50,7 +55,7 @@ public static boolean installationCompleted() {
5055
return installationCompleted;
5156
}
5257

53-
public static boolean installContainer() {
58+
public static boolean installContainer(List<PartnerModData.PartnerMod> partnerMods) {
5459
try {
5560
Path destination = Paths.get("mods", "essential-container.jar");
5661
if (Files.exists(destination)) {
@@ -64,6 +69,21 @@ public static boolean installContainer() {
6469
if (is == null) throw new IllegalStateException("No bundled container jar found!");
6570
Files.copy(is, destination);
6671
}
72+
Path metadataDestination = Paths.get("essential", "integration-mod-metadata.json");
73+
try {
74+
Files.createDirectories(metadataDestination.getParent());
75+
JsonObject metadata = new JsonObject();
76+
JsonArray partnerArray = new JsonArray();
77+
for (PartnerModData.PartnerMod partnerMod : partnerMods) {
78+
partnerArray.add(partnerMod.getId());
79+
}
80+
metadata.add("partnerMods", partnerArray);
81+
Files.write(metadataDestination, metadata.toString().getBytes(StandardCharsets.UTF_8));
82+
EssentialPartner.LOGGER.info("Successfully saved telemetry file to {}", metadataDestination.toRealPath());
83+
} catch (Exception e) {
84+
EssentialPartner.LOGGER.warn("Failed to store telemetry file to {}", metadataDestination.toRealPath());
85+
EssentialPartner.LOGGER.warn("Error:", e);
86+
}
6787
EssentialPartner.LOGGER.info("Successfully installed essential container to {}", destination.toRealPath());
6888
installationCompleted = true;
6989
return true;

src/main/java/gg/essential/partnermod/modal/AdModal.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,15 @@ public class AdModal extends Modal {
4040
private final Map<FeatureEntry, ResourceLocation> iconTextures = new HashMap<>();
4141

4242
private final ModalData modalData;
43+
private final List<PartnerModData.PartnerMod> partnerMods;
4344
private final String parterModsTooltip;
4445
private final List<FeatureEntry> features = new ArrayList<>();
4546

4647
private int featuresOffset;
4748

4849
public AdModal(ModalData modalData, List<PartnerModData.PartnerMod> partnerMods) {
4950
this.modalData = modalData;
51+
this.partnerMods = partnerMods;
5052
this.parterModsTooltip = getTooltip(partnerMods);
5153

5254
for (ModalData.Feature feature : modalData.getFeatures()) {
@@ -76,7 +78,7 @@ public void init() {
7678
}));
7779

7880
buttonList.add(new InstallButton(centreX - 70, startY + installOffset, () -> {
79-
boolean success = EssentialUtil.installContainer();
81+
boolean success = EssentialUtil.installContainer(partnerMods);
8082
if (success) {
8183
ModalManager.INSTANCE.setModal(TwoButtonModal.postInstall());
8284
} else {

0 commit comments

Comments
 (0)