Skip to content

Commit

Permalink
Migrate Platform calls
Browse files Browse the repository at this point in the history
  • Loading branch information
Gaming32 committed Apr 19, 2024
1 parent fedd61d commit e44f620
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@

import com.mojang.blaze3d.platform.InputConstants;
import com.mojang.blaze3d.platform.Window;
import dev.architectury.platform.Platform;
import dev.architectury.registry.client.gui.ClientTooltipComponentRegistry;
import dev.architectury.registry.client.keymappings.KeyMappingRegistry;
import io.github.gaming32.bingo.Bingo;
import io.github.gaming32.bingo.client.config.BingoClientConfig;
import io.github.gaming32.bingo.client.config.BingoConfigScreen;
import io.github.gaming32.bingo.client.icons.DefaultIconRenderers;
import io.github.gaming32.bingo.client.icons.IconRenderer;
import io.github.gaming32.bingo.client.icons.IconRenderers;
Expand All @@ -17,6 +15,7 @@
import io.github.gaming32.bingo.game.BingoGameMode;
import io.github.gaming32.bingo.game.GoalProgress;
import io.github.gaming32.bingo.network.ClientGoal;
import io.github.gaming32.bingo.platform.BingoPlatform;
import io.github.gaming32.bingo.platform.event.ClientEvents;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
Expand Down Expand Up @@ -54,18 +53,14 @@ public class BingoClient {
public static ClientGame clientGame;

public static final BingoClientConfig CONFIG = new BingoClientConfig(
Platform.getConfigFolder().resolve("bingo-client.toml")
BingoPlatform.platform.getConfigDir().resolve("bingo-client.toml")
);
private static RecipeViewerPlugin recipeViewerPlugin;

public static void init() {
CONFIG.load();
CONFIG.save();

if (!Platform.isFabric()) {
Platform.getMod(Bingo.MOD_ID).registerConfigurationScreen(BingoConfigScreen::new);
}

ClientEvents.RENDER_HUD.register((graphics, tickDelta) -> {
if (clientGame == null) return;
final Minecraft minecraft = Minecraft.getInstance();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package io.github.gaming32.bingo.client.recipeviewer;

import com.mojang.blaze3d.platform.InputConstants;
import dev.architectury.platform.Platform;
import io.github.gaming32.bingo.client.recipeviewer.jei.JEIPlugin;
import io.github.gaming32.bingo.platform.BingoPlatform;
import net.minecraft.world.item.ItemStack;

public abstract class RecipeViewerPlugin {
public static RecipeViewerPlugin detect() {
if (Platform.isModLoaded("emi")) {
if (BingoPlatform.platform.isModLoaded("emi")) {
return new EMIPlugin();
}
if (Platform.isModLoaded("jei")) {
if (BingoPlatform.platform.isModLoaded("jei")) {
return new JEIPlugin();
}
if (Platform.isModLoaded("roughlyenoughitems")) {
if (BingoPlatform.platform.isModLoaded("roughlyenoughitems")) {
return new REIPlugin();
}
return new NoPlugin();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,16 @@

import io.github.gaming32.bingo.network.BingoNetworking;

import java.nio.file.Path;

public abstract class BingoPlatform {
public static BingoPlatform platform;

public abstract BingoNetworking getNetworking();

public abstract boolean isClient();

public abstract Path getConfigDir();

public abstract boolean isModLoaded(String id);
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.item.ItemStack;

import java.nio.file.Path;

public class FabricPlatform extends BingoPlatform {
private final BingoNetworking networking;

Expand All @@ -38,6 +40,16 @@ public boolean isClient() {
return FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT;
}

@Override
public Path getConfigDir() {
return FabricLoader.getInstance().getConfigDir();
}

@Override
public boolean isModLoaded(String id) {
return FabricLoader.getInstance().isModLoaded(id);
}

private void registerEvents() {
Event.REGISTER_COMMANDS.setRegistrar(handler -> CommandRegistrationCallback.EVENT.register(handler::register));
Event.PLAYER_JOIN.setRegistrar(FabricEvents.PLAYER_JOIN::register);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,25 @@
package io.github.gaming32.bingo.neoforge;

import io.github.gaming32.bingo.Bingo;
import io.github.gaming32.bingo.client.config.BingoConfigScreen;
import io.github.gaming32.bingo.platform.BingoPlatform;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.common.Mod;
import net.neoforged.neoforge.client.ConfigScreenHandler;

@Mod(Bingo.MOD_ID)
public class BingoNeoForge {
public BingoNeoForge(IEventBus modEventBus) {
public BingoNeoForge(ModContainer container, IEventBus modEventBus) {
BingoPlatform.platform = new NeoForgePlatform(modEventBus);
Bingo.init();

if (BingoPlatform.platform.isClient()) {
container.registerExtensionPoint(
ConfigScreenHandler.ConfigScreenFactory.class, () -> new ConfigScreenHandler.ConfigScreenFactory(
(minecraft, screen) -> new BingoConfigScreen(screen)
)
);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
import net.minecraft.client.Minecraft;
import net.minecraft.server.level.ServerPlayer;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModList;
import net.neoforged.fml.loading.FMLEnvironment;
import net.neoforged.fml.loading.FMLPaths;
import net.neoforged.neoforge.client.event.ClientPlayerNetworkEvent;
import net.neoforged.neoforge.client.event.RenderGuiEvent;
import net.neoforged.neoforge.client.event.ScreenEvent;
Expand All @@ -19,7 +22,8 @@
import net.neoforged.neoforge.event.server.ServerStartedEvent;
import net.neoforged.neoforge.event.server.ServerStoppedEvent;
import net.neoforged.neoforge.event.server.ServerStoppingEvent;
import net.neoforged.neoforgespi.Environment;

import java.nio.file.Path;

public class NeoForgePlatform extends BingoPlatform {
private final BingoNetworking networking;
Expand All @@ -36,7 +40,17 @@ public BingoNetworking getNetworking() {

@Override
public boolean isClient() {
return Environment.get().getDist().isClient();
return FMLEnvironment.dist.isClient();
}

@Override
public Path getConfigDir() {
return FMLPaths.CONFIGDIR.get();
}

@Override
public boolean isModLoaded(String id) {
return ModList.get().isLoaded(id);
}

private void registerEvents() {
Expand Down

0 comments on commit e44f620

Please sign in to comment.