22
33import com .mcmoddev .orespawn .data .Constants ;
44import com .mcmoddev .orespawn .data .FeatureRegistry ;
5- import com .mcmoddev .orespawn .impl .OreSpawnImpl ;
5+ import com .mcmoddev .orespawn .impl .os3 . OS3APIImpl ;
66import com .mcmoddev .orespawn .json .OS1Reader ;
77import com .mcmoddev .orespawn .json .OS2Reader ;
88import com .mcmoddev .orespawn .json .OS3Reader ;
99import com .mcmoddev .orespawn .json .OS3Writer ;
10- import com .mcmoddev .orespawn .api .OreSpawnAPI ;
11- import com .mcmoddev .orespawn .api .SpawnEntry ;
1210import com .mcmoddev .orespawn .commands .AddOreCommand ;
1311import com .mcmoddev .orespawn .commands .ClearChunkCommand ;
1412import com .mcmoddev .orespawn .commands .WriteConfigsCommand ;
1513import com .mcmoddev .orespawn .commands .DumpBiomesCommand ;
1614import com .mcmoddev .orespawn .data .Config ;
17- import com .mcmoddev .orespawn .api .SpawnLogic ;
15+ import com .mcmoddev .orespawn .api .os3 .OS3API ;
16+ import com .mcmoddev .orespawn .api .os3 .SpawnBuilder ;
17+ import com .mcmoddev .orespawn .api .plugin .PluginLoader ;
1818
1919import java .nio .file .Paths ;
2020import java .util .HashMap ;
2121import java .util .List ;
2222import java .util .Map ;
23- import java .util .Map .Entry ;
24-
25- import com .google .common .base .Function ;
26- import com .google .common .base .Optional ;
2723
2824import org .apache .logging .log4j .LogManager ;
2925import org .apache .logging .log4j .Logger ;
3430import net .minecraftforge .fml .common .Mod .EventHandler ;
3531import net .minecraftforge .fml .common .Mod .Instance ;
3632import net .minecraftforge .fml .common .event .FMLInitializationEvent ;
37- import net .minecraftforge .fml .common .event .FMLInterModComms ;
3833import net .minecraftforge .fml .common .event .FMLPostInitializationEvent ;
3934import net .minecraftforge .fml .common .event .FMLPreInitializationEvent ;
4035import net .minecraftforge .fml .common .event .FMLServerStartingEvent ;
5348public class OreSpawn {
5449 @ Instance
5550 public static OreSpawn INSTANCE = null ;
56- public final static Logger LOGGER = LogManager .getFormatterLogger (Constants .MODID );
57- public final static OreSpawnAPI API = new OreSpawnImpl ();
51+ public static final Logger LOGGER = LogManager .getFormatterLogger (Constants .MODID );
52+ public static final OS3API API = new OS3APIImpl ();
5853 public static final OS3Writer writer = new OS3Writer ();
5954 public static final EventHandlers eventHandlers = new EventHandlers ();
6055 public static final FeatureRegistry FEATURES = new FeatureRegistry ();
61- private String OS1ConfigPath ;
62- public static final Map <Integer , List <SpawnEntry >> spawns = new HashMap <>();
56+ private String os1ConfigPath ;
57+ protected static final Map <Integer , List <SpawnBuilder >> spawns = new HashMap <>();
58+
59+ public static Map <Integer , List <SpawnBuilder >> getSpawns () {
60+ return spawns ;
61+ }
6362
6463 @ EventHandler
6564 public void preInit (FMLPreInitializationEvent ev ) {
6665 Config .loadConfig ();
6766
67+ PluginLoader .INSTANCE .load (ev );
68+
6869 if ( Config .getBoolean (Constants .RETROGEN_KEY ) ) {
6970 MinecraftForge .EVENT_BUS .register (eventHandlers );
7071 }
@@ -73,15 +74,17 @@ public void preInit(FMLPreInitializationEvent ev) {
7374 MinecraftForge .ORE_GEN_BUS .register (eventHandlers );
7475 }
7576
76- this .OS1ConfigPath = Paths .get (ev .getSuggestedConfigurationFile ().toPath ().getParent ().toString (),"orespawn" ).toString ();
77- FMLInterModComms .sendFunctionMessage ("orespawn" , "api" , "com.mcmoddev.orespawn.data.VanillaOrespawn" );
77+ this .os1ConfigPath = Paths .get (ev .getSuggestedConfigurationFile ().toPath ().getParent ().toString (),"orespawn" ).toString ();
7878 }
7979
8080 @ EventHandler
8181 public void init (FMLInitializationEvent ev ) {
82- OS1Reader .loadEntries (Paths .get (OS1ConfigPath ));
83- OS2Reader .loadEntries ();
82+ PluginLoader .INSTANCE .register ();
83+ // we prefer the OS3 version of files
84+ // but will take OS2 and OS1 versions - in that order
8485 OS3Reader .loadEntries ();
86+ OS2Reader .loadEntries ();
87+ OS1Reader .loadEntries (Paths .get (os1ConfigPath ));
8588 API .registerSpawns ();
8689 }
8790
@@ -90,17 +93,7 @@ public void postInit(FMLPostInitializationEvent ev) {
9093 writer .writeSpawnEntries ();
9194 Config .saveConfig ();
9295 }
93-
94- @ EventHandler
95- public void onIMC (FMLInterModComms .IMCEvent event ) {
96- event .getMessages ().stream ().filter (message -> "api" .equalsIgnoreCase (message .key )).forEach (message -> {
97- Optional <Function <OreSpawnAPI , SpawnLogic >> value = message .getFunctionValue (OreSpawnAPI .class , SpawnLogic .class );
98- if (OreSpawn .API .getSpawnLogic (message .getSender ()) == null && value .isPresent ()) {
99- OreSpawn .API .registerSpawnLogic (message .getSender (), value .get ().apply (OreSpawn .API ));
100- }
101- });
102- }
103-
96+
10497 @ EventHandler
10598 public void onServerStarting (FMLServerStartingEvent ev ) {
10699 ev .registerServerCommand (new ClearChunkCommand ());
0 commit comments