Skip to content

Commit ba95909

Browse files
committed
Resolve some NeoForge FIXMEs
ModLoadingContext can be supplied to the Mod's constructor, so using it.
1 parent cd6cbc2 commit ba95909

File tree

4 files changed

+26
-26
lines changed

4 files changed

+26
-26
lines changed

neoforge/src/main/java/net/pcal/fastback/mod/neoforge/ForgeClientProvider.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.pcal.fastback.mod.neoforge;
22

3+
import net.neoforged.fml.ModContainer;
34
import net.neoforged.neoforge.client.event.CustomizeGuiOverlayEvent;
45
import net.neoforged.neoforge.client.event.ScreenEvent;
56
import net.neoforged.neoforge.common.NeoForge;
@@ -38,9 +39,9 @@ final class ForgeClientProvider extends ForgeCommonProvider {
3839
private long hudTextTime;
3940
private final Minecraft client;
4041

41-
public ForgeClientProvider() {
42-
final IEventBus modEventBus = ModLoadingContext.get().getActiveContainer().getEventBus();
43-
modEventBus.addListener(this::onClientStartupEvent);
42+
public ForgeClientProvider(ModContainer container) {
43+
super(container);
44+
container.getEventBus().addListener(this::onClientStartupEvent);
4445
NeoForge.EVENT_BUS.addListener(this::onGuiOverlayEvent);
4546
NeoForge.EVENT_BUS.addListener(this::onScreenRenderEvent);
4647
this.client = requireNonNull(Minecraft.getInstance(), "MinecraftClient.getInstance() returned null");
@@ -53,7 +54,7 @@ private void onClientStartupEvent(FMLClientSetupEvent event) {
5354
this.onInitialize();
5455
}
5556

56-
private void onGuiOverlayEvent(CustomizeGuiOverlayEvent event) {
57+
private void onGuiOverlayEvent(CustomizeGuiOverlayEvent.Chat event) {
5758
this.renderOverlayText(event.getGuiGraphics());
5859
}
5960

neoforge/src/main/java/net/pcal/fastback/mod/neoforge/ForgeCommonProvider.java

+14-15
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
import net.minecraft.server.MinecraftServer;
88
import net.minecraft.server.level.ServerLevel;
99
import net.minecraft.world.level.storage.LevelResource;
10+
import net.neoforged.fml.ModContainer;
11+
import net.neoforged.fml.loading.FMLPaths;
1012
import net.neoforged.neoforge.common.NeoForge;
1113
import net.neoforged.neoforge.event.RegisterCommandsEvent;
12-
import net.neoforged.neoforge.event.level.LevelEvent;
1314
import net.neoforged.neoforge.event.server.ServerStartedEvent;
1415
import net.neoforged.neoforge.event.server.ServerStoppingEvent;
1516
import net.neoforged.bus.api.IEventBus;
@@ -40,13 +41,15 @@ class ForgeCommonProvider implements MinecraftProvider, MixinGateway {
4041

4142
static final String MOD_ID = "fastback";
4243
private MinecraftServer logicalServer;
44+
private ModContainer container;
4345
private LifecycleListener lifecycleListener = null;
4446
private Runnable autoSaveListener;
4547
private boolean isWorldSaveEnabled = true;
4648

47-
ForgeCommonProvider() {
48-
final IEventBus modEventBus = ModLoadingContext.get().getActiveContainer().getEventBus();
49-
modEventBus.addListener(this::onDedicatedServerStartupEvent);
49+
ForgeCommonProvider(ModContainer container) {
50+
this.container = container;
51+
52+
container.getEventBus().addListener(this::onDedicatedServerStartupEvent);
5053
NeoForge.EVENT_BUS.addListener(this::onServerStartupEvent);
5154
NeoForge.EVENT_BUS.addListener(this::onServerStoppingEvent);
5255
NeoForge.EVENT_BUS.addListener(this::onRegisterCommandEvent);
@@ -89,9 +92,9 @@ void onInitialize() {
8992
this.lifecycleListener = MinecraftProvider.register(this);
9093
syslog().debug("registered backup command");
9194
this.lifecycleListener.onInitialize();
92-
syslog().info("Fastback initialized");
95+
syslog().info("Fastback " + getModVersion() + " initialized");
9396
syslog().warn("------------------------------------------------------------------------------------");
94-
syslog().warn("Thanks for trying the new Forge version of Fastback. For help, go to:");
97+
syslog().warn("Thanks for trying the new NeoForge version of Fastback. For help, go to:");
9598
syslog().warn("https://pcal43.github.io/fastback/");
9699
syslog().warn("Please note that this is an alpha release. A list of known issues is available here:");
97100
syslog().warn("https://github.com/pcal43/fastback/issues?q=is%3Aissue+is%3Aopen+label%3Aforge");
@@ -125,7 +128,7 @@ void renderOverlayText(GuiGraphics drawContext) {
125128

126129
@Override
127130
public String getModVersion() {
128-
return "0.15.3+1.20.1-alpha"; //FIXME
131+
return container.getModInfo().getVersion().toString();
129132
}
130133

131134
@Override
@@ -205,14 +208,10 @@ public void addBackupProperties(Map<String, String> props) {
205208
@Override
206209
public Collection<Path> getModsBackupPaths() {
207210
final List<Path> out = new ArrayList<>();
208-
/**
209-
final FabricLoader fl = FabricLoader.getInstance();
210-
final Path gameDir = fl.getGameDir();
211-
out.add(gameDir.resolve("options.txt´"));
212-
out.add(gameDir.resolve("mods"));
213-
out.add(gameDir.resolve("config"));
214-
out.add(gameDir.resolve("resourcepacks"));
215-
**/
211+
out.add(FMLPaths.GAMEDIR.get().resolve("options.txt"));
212+
out.add(FMLPaths.MODSDIR.get());
213+
out.add(FMLPaths.CONFIGDIR.get());
214+
out.add(FMLPaths.GAMEDIR.get().resolve("resourcepacks"));
216215
return out;
217216
}
218217
}

neoforge/src/main/java/net/pcal/fastback/mod/neoforge/ForgeInitializer.java

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package net.pcal.fastback.mod.neoforge;
22

3+
import net.neoforged.fml.ModContainer;
4+
import net.neoforged.fml.ModLoadingContext;
35
import net.neoforged.fml.common.Mod;
46
import net.neoforged.fml.loading.FMLEnvironment;
57

@@ -12,13 +14,13 @@
1214
@Mod("fastback")
1315
final public class ForgeInitializer {
1416

15-
public ForgeInitializer() {
17+
public ForgeInitializer(ModContainer container) {
1618
try {
1719
if (FMLEnvironment.dist.isDedicatedServer()) {
18-
new ForgeCommonProvider();
20+
new ForgeCommonProvider(container);
1921
} else if (FMLEnvironment.dist.isClient()) {
2022
// Forge yells at us if we touch any client classes in a server. So,
21-
Class.forName("net.pcal.fastback.mod.neoforge.ForgeClientProvider").getConstructor().newInstance();
23+
Class.forName("net.pcal.fastback.mod.neoforge.ForgeClientProvider").getConstructor(ModContainer.class).newInstance(container);
2224
} else {
2325
throw new IllegalStateException("where am i? server or client?");
2426
}
@@ -27,4 +29,4 @@ public ForgeInitializer() {
2729
throw new RuntimeException(e);
2830
}
2931
}
30-
}
32+
}

neoforge/src/main/java/net/pcal/fastback/mod/neoforge/Slf4jSystemLogger.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,7 @@ public void warn(String message) {
3939
}
4040

4141
@Override
42-
public void warn(String message, Throwable t) {
43-
this.slf4j.warn(message, t);
44-
}
42+
public void warn(String message, Throwable t) {this.slf4j.warn(message, t);}
4543

4644
@Override
4745
public void info(String message) {

0 commit comments

Comments
 (0)