1111
1212package gg .essential .partnermod ;
1313
14+ import com .google .gson .JsonArray ;
15+ import com .google .gson .JsonObject ;
16+ import gg .essential .partnermod .data .PartnerModData ;
1417import net .minecraft .client .Minecraft ;
1518
1619import java .io .InputStream ;
20+ import java .nio .charset .StandardCharsets ;
1721import java .nio .file .Files ;
1822import java .nio .file .Path ;
1923import java .nio .file .Paths ;
24+ import java .util .List ;
2025
2126public 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 ;
0 commit comments