55import i18nupdatemod .util .Reflection ;
66import net .fabricmc .api .ClientModInitializer ;
77import net .fabricmc .loader .api .FabricLoader ;
8+ import net .fabricmc .loader .impl .ModContainerImpl ;
89
910import java .nio .file .Path ;
11+ import java .util .ArrayList ;
12+ import java .util .List ;
13+ import java .util .Map ;
1014
1115//1.14-latest
1216public class FabricLoaderMod implements ClientModInitializer {
@@ -20,7 +24,7 @@ public void onInitializeClient() {
2024 Log .warning ("Minecraft version not found" );
2125 return ;
2226 }
23- I18nUpdateMod .init (gameDir , mcVersion , "Fabric" );
27+ I18nUpdateMod .init (gameDir , mcVersion , "Fabric" , getMods () );
2428 }
2529
2630 private String getMcVersion () {
@@ -44,4 +48,30 @@ private String getMcVersion() {
4448 }
4549 return null ;
4650 }
51+
52+
53+ private List <String > getMods (){
54+ List <String > modList = null ;
55+ try {
56+ // Fabric
57+ @ SuppressWarnings ("unchecked" )
58+ final Map <String , Object > instance = (Map <String , Object >)Reflection .clazz ("net.fabricmc.loader.impl.FabricLoaderImpl" )
59+ .get ("INSTANCE" )
60+ .get ("modMap" ).get ();
61+ modList = new ArrayList <>(instance .keySet ());
62+ } catch (Exception ignored ) {
63+
64+ }
65+ try {
66+ // Quilt
67+ @ SuppressWarnings ("unchecked" )
68+ final Map <String , Object > instance = (Map <String , Object >)Reflection .clazz ("org.quiltmc.loader.impl.QuiltLoaderImpl" )
69+ .get ("INSTANCE" )
70+ .get ("modMap" ).get ();
71+ modList = new ArrayList <>(instance .keySet ());
72+ } catch (Exception ignored ) {
73+
74+ }
75+ return modList ;
76+ }
4777}
0 commit comments