Skip to content

Commit

Permalink
Merge branch '1.20.1' into 1.20.2
Browse files Browse the repository at this point in the history
  • Loading branch information
rfresh2 committed Apr 22, 2024
2 parents 23f7b58 + edbc067 commit 287d314
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 0 deletions.
20 changes: 20 additions & 0 deletions common/src/main/java/xaeroplus/util/DataFolderResolveUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,18 @@
import com.google.common.net.InternetDomainName;
import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.ClientPacketListener;
import net.minecraft.network.chat.Component;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import xaero.map.MapProcessor;
import xaero.map.WorldMapSession;
import xaero.map.core.XaeroWorldMapCore;
import xaero.map.file.MapSaveLoad;
import xaeroplus.Globals;
import xaeroplus.XaeroPlus;
import xaeroplus.settings.XaeroPlusSettingRegistry;

import java.nio.file.Path;

import static java.util.Objects.nonNull;

public class DataFolderResolveUtil {
Expand Down Expand Up @@ -58,4 +65,17 @@ public static void resolveDataFolder(final ClientPacketListener connection, fina
}
}
}

public static Component getCurrentDataDirPath() {
try {
WorldMapSession currentSession = XaeroWorldMapCore.currentSession;
MapProcessor mapProcessor = currentSession.getMapProcessor();
String mainId = mapProcessor.getMapWorld().getMainId();
Path rootFolder = MapSaveLoad.getRootFolder(mainId);
return (Component.literal(rootFolder.toString()));
} catch (final Throwable e) {
XaeroPlus.LOGGER.error("Failed to get data directory", e);
return Component.literal("Failed to get data directory");
}
}
}
9 changes: 9 additions & 0 deletions fabric/src/main/java/xaeroplus/fabric/XaeroPlusFabric.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package xaeroplus.fabric;

import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.minecraft.client.KeyMapping;
Expand All @@ -13,6 +15,7 @@
import xaeroplus.module.ModuleManager;
import xaeroplus.settings.XaeroPlusSettingRegistry;
import xaeroplus.settings.XaeroPlusSettingsReflectionHax;
import xaeroplus.util.DataFolderResolveUtil;

import java.util.List;

Expand Down Expand Up @@ -40,5 +43,11 @@ public void onInitializeClient() {
Minecraft.getInstance().setScreen(
new IncompatibleMinimapWarningScreen(anyPresentVersion, versionCheckResult.expectedVersion()));
});
ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
dispatcher.register(ClientCommandManager.literal("xaeroDataDir").executes(c -> {
c.getSource().sendFeedback(DataFolderResolveUtil.getCurrentDataDirPath());
return 1;
}));
});
}
}
12 changes: 12 additions & 0 deletions forge/src/main/java/xaeroplus/forge/XaeroPlusForge.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package xaeroplus.forge;

import com.github.benmanes.caffeine.cache.RemovalCause;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import net.minecraft.client.KeyMapping;
import net.minecraft.commands.CommandSourceStack;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.RegisterClientCommandsEvent;
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.IEventBus;
Expand All @@ -14,6 +17,7 @@
import xaeroplus.module.ModuleManager;
import xaeroplus.settings.XaeroPlusSettingRegistry;
import xaeroplus.settings.XaeroPlusSettingsReflectionHax;
import xaeroplus.util.DataFolderResolveUtil;

import java.util.List;

Expand All @@ -29,6 +33,7 @@ public XaeroPlusForge() {
return () -> {
modEventBus.addListener(this::onInitialize);
modEventBus.addListener(this::onRegisterKeyMappingsEvent);
FORGE_EVENT_BUS.addListener(this::onRegisterClientCommandsEvent);
FORGE_EVENT_BUS.register(modEventBus);
RemovalCause explicit = RemovalCause.EXPLICIT; // force class load to stop forge shitting itself at runtime??
};
Expand All @@ -48,4 +53,11 @@ public void onRegisterKeyMappingsEvent(final RegisterKeyMappingsEvent event) {
keybinds.forEach(event::register);
}
}

public void onRegisterClientCommandsEvent(final RegisterClientCommandsEvent event) {
event.getDispatcher().register(LiteralArgumentBuilder.<CommandSourceStack>literal("xaeroDataDir").executes(c -> {
c.getSource().sendSuccess(DataFolderResolveUtil::getCurrentDataDirPath, false);
return 1;
}));
}
}
12 changes: 12 additions & 0 deletions neo/src/main/java/xaeroplus/neo/XaeroPlusNeo.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
package xaeroplus.neo;

import com.github.benmanes.caffeine.cache.RemovalCause;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import net.minecraft.client.KeyMapping;
import net.minecraft.commands.CommandSourceStack;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
import net.neoforged.fml.loading.FMLEnvironment;
import net.neoforged.neoforge.client.event.RegisterClientCommandsEvent;
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
import net.neoforged.neoforge.common.NeoForge;
import xaeroplus.Globals;
import xaeroplus.XaeroPlus;
import xaeroplus.module.ModuleManager;
import xaeroplus.settings.XaeroPlusSettingRegistry;
import xaeroplus.settings.XaeroPlusSettingsReflectionHax;
import xaeroplus.util.DataFolderResolveUtil;

import java.util.List;

Expand All @@ -23,6 +27,7 @@ public XaeroPlusNeo(IEventBus modEventBus) {
if (FMLEnvironment.dist.isClient()) {
modEventBus.addListener(this::onInitialize);
modEventBus.addListener(this::onRegisterKeyMappingsEvent);
FORGE_EVENT_BUS.addListener(this::onRegisterClientCommandsEvent);
// FORGE_EVENT_BUS.register(modEventBus);
RemovalCause explicit = RemovalCause.EXPLICIT; // force class load to stop forge shitting itself at runtime??
}
Expand All @@ -41,4 +46,11 @@ public void onRegisterKeyMappingsEvent(final RegisterKeyMappingsEvent event) {
keybinds.forEach(event::register);
}
}

public void onRegisterClientCommandsEvent(final RegisterClientCommandsEvent event) {
event.getDispatcher().register(LiteralArgumentBuilder.<CommandSourceStack>literal("xaeroDataDir").executes(c -> {
c.getSource().sendSuccess(DataFolderResolveUtil::getCurrentDataDirPath, false);
return 1;
}));
}
}

0 comments on commit 287d314

Please sign in to comment.