Fix server side loading, tweak mods command.

Signed-off-by: cpw <cpw+github@weeksfamily.ca>
This commit is contained in:
cpw committed 2019-06-22 12:31:27 -04:00
1 parent 83a0dc2ef9
commit 256bd01e0c
6 files changed
+17 -5

No files matched your search

@@ -38,7 +38,7 @@ public class MinecraftForge
* ORE_GEN_BUS for ore gen events
* EVENT_BUS for everything else
*/
public static final IEventBus EVENT_BUS = BusBuilder.builder().build();
public static final IEventBus EVENT_BUS = BusBuilder.builder().startShutdown().build();
static final ForgeInternalHandler INTERNAL_HANDLER = new ForgeInternalHandler();
private static final Logger LOGGER = LogManager.getLogger();
@@ -40,6 +40,7 @@ import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static net.minecraftforge.fml.Logging.LOADING;
@@ -187,4 +188,8 @@ public class ModList
public void forEachModContainer(BiConsumer<String, ModContainer> modContainerConsumer) {
indexedMods.forEach(modContainerConsumer);
}
public <T> Stream<T> applyForEachModContainer(Function<ModContainer, T> function) {
return indexedMods.values().stream().map(function);
}
}
@@ -61,9 +61,7 @@ public class ClientModLoader
try {
ModLoader.get().gatherAndInitializeMods();
} catch (LoadingFailedException e) {
MinecraftForge.EVENT_BUS.shutdown();
error = e;
TEMP_printLoadingExceptions(e);
}
ResourcePackLoader.loadResourcePacks(defaultResourcePacks);
mcResourceManager.addReloadListener(ClientModLoader::onreload);
@@ -126,6 +124,10 @@ public class ClientModLoader
} else {
ClientHooks.logMissingTextureErrors();
}
if (error != null) {
// We can finally start the forge eventbus up
MinecraftForge.EVENT_BUS.start();
}
}
public static boolean isLoading()
@@ -20,6 +20,7 @@
package net.minecraftforge.fml.server;
import net.minecraft.server.dedicated.DedicatedServer;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.LogicalSidedProvider;
import net.minecraftforge.fml.ModLoader;
import net.minecraftforge.fml.ModLoadingWarning;
@@ -41,6 +42,7 @@ public class ServerModLoader
SidedProvider.setServer(()->dedicatedServer);
LogicalSidedProvider.setServer(()->dedicatedServer);
LanguageHook.loadForgeAndMCLangs();
ModLoader.get().gatherAndInitializeMods();
ModLoader.get().loadMods();
}
@@ -51,6 +53,7 @@ public class ServerModLoader
LOGGER.warn(LOADING, "Mods loaded with {} warnings", warnings.size());
warnings.forEach(warning -> LOGGER.warn(LOADING, warning.formatToString()));
}
MinecraftForge.EVENT_BUS.start();
server.getServerStatusResponse().setForgeData(new FMLStatusPing()); //gathers NetworkRegistry data
}
}
@@ -35,7 +35,9 @@ public class CommandModList {
.requires(cs->cs.hasPermissionLevel(0)) //permission
.executes(ctx -> {
ctx.getSource().sendFeedback(new TranslationTextComponent("commands.forge.mods.list",
ModList.get().getMods().stream().map(ModInfo::getModId).collect(Collectors.joining(","))),
ModList.get().applyForEachModContainer(
mc->String.format("%s:%s(%s)", mc.getModId(), mc.getModInfo().getVersion().toString(), mc.getCurrentState())).
collect(Collectors.joining(","))),
true);
return 0;
}