Skip to content

Commit 2db49f0

Browse files
committed
Merge remote-tracking branch 'upstream'
2 parents c342f8c + b0db9c1 commit 2db49f0

File tree

15 files changed

+325
-6
lines changed

15 files changed

+325
-6
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Seedmapper 2.19.x (MC1.21.11) - Modified by CevAPI
1+
# Seedmapper 2.20.x (MC1.21.11) - Modified by CevAPI
22

33
Original Repo: https://github.com/xpple/SeedMapper/
44

build.gradle

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ repositories {
3131
name = 'DJtheRedstoner'
3232
url = 'https://pkgs.dev.azure.com/djtheredstoner/DevAuth/_packaging/public/maven/v1'
3333
}
34+
maven {
35+
name = 'MeteorDevelopment'
36+
url = 'https://maven.meteordev.org/snapshots'
37+
}
3438
}
3539

3640
dependencies {
@@ -57,6 +61,8 @@ dependencies {
5761
exclude group: 'net.fabricmc', module: 'fabric-loader'
5862
}
5963

64+
modCompileOnly "meteordevelopment:baritone:${project.baritone_version}"
65+
6066
testImplementation platform("org.junit:junit-bom:${project.junit_version}")
6167
testImplementation 'org.junit.jupiter:junit-jupiter'
6268
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'

gradle.properties

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
33
org.gradle.parallel=true
44

55
# Mod Properties
6-
mod_version=2.19.1-CevAPI
6+
mod_version=2.20.0-CevAPI
77
maven_group=dev.xpple
88
archives_base_name=SeedMapper
99

@@ -24,6 +24,9 @@ betterconfig_version=2.5.0
2424
clientarguments_version=1.11.6
2525
simplewaypoints_version=1.2.0
2626

27+
# Optional library dependencies
28+
baritone_version=1.21.11-SNAPSHOT
29+
2730
devauth_version=1.2.2
2831

2932
# Test dependencies
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package dev.xpple.seedmapper;
2+
3+
public final class MinimapManager {
4+
private MinimapManager() {
5+
}
6+
7+
public static void registerHudElement() {
8+
// Placeholder for upstream minimap integration.
9+
}
10+
11+
public static void hide() {
12+
// Placeholder for upstream minimap integration.
13+
}
14+
15+
public static void updateDimension(int dimension) {
16+
// Placeholder for upstream minimap integration.
17+
}
18+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package dev.xpple.seedmapper;
2+
3+
import org.objectweb.asm.tree.ClassNode;
4+
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
5+
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
6+
7+
import java.util.List;
8+
import java.util.Set;
9+
10+
public class MixinConfigPlugin implements IMixinConfigPlugin {
11+
12+
private static final Set<String> BARITONE_MIXINS = Set.of(
13+
"dev.xpple.seedmapper.mixin.baritone.CustomGoalProcessMixin",
14+
"dev.xpple.seedmapper.mixin.baritone.PathingBehaviorMixin"
15+
);
16+
17+
@Override
18+
public void onLoad(String mixinPackage) {
19+
}
20+
21+
@Override
22+
public String getRefMapperConfig() {
23+
return null;
24+
}
25+
26+
@Override
27+
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
28+
if (BARITONE_MIXINS.contains(mixinClassName)) {
29+
return SeedMapper.BARITONE_AVAILABLE;
30+
}
31+
return true;
32+
}
33+
34+
@Override
35+
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
36+
}
37+
38+
@Override
39+
public List<String> getMixins() {
40+
return null;
41+
}
42+
43+
@Override
44+
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
45+
}
46+
47+
@Override
48+
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
49+
}
50+
}

src/main/java/dev/xpple/seedmapper/SeedMapper.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.mojang.blaze3d.platform.InputConstants;
44
import com.mojang.brigadier.CommandDispatcher;
5+
import com.mojang.logging.LogUtils;
56
import dev.xpple.betterconfig.api.ModConfigBuilder;
67
import dev.xpple.seedmapper.command.arguments.DurationArgument;
78
import dev.xpple.seedmapper.command.arguments.MapFeatureArgument;
@@ -41,12 +42,17 @@
4142
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
4243
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
4344
import net.fabricmc.loader.api.FabricLoader;
45+
import net.fabricmc.loader.api.ModContainer;
4446
import dev.xpple.seedmapper.util.CubiomesNative;
4547
import net.minecraft.client.KeyMapping;
4648
import net.minecraft.commands.CommandBuildContext;
4749
import net.minecraft.resources.Identifier;
50+
import org.slf4j.Logger;
4851

52+
import java.io.IOException;
53+
import java.nio.file.Files;
4954
import java.nio.file.Path;
55+
import java.nio.file.StandardCopyOption;
5056
import java.time.Duration;
5157

5258
public class SeedMapper implements ClientModInitializer {
@@ -55,6 +61,23 @@ public class SeedMapper implements ClientModInitializer {
5561

5662
public static final Path modConfigPath = FabricLoader.getInstance().getConfigDir().resolve(MOD_ID);
5763

64+
private static final Logger LOGGER = LogUtils.getLogger();
65+
66+
public static final boolean BARITONE_AVAILABLE = FabricLoader.getInstance().getModContainer("baritone-meteor").isPresent();
67+
68+
static {
69+
String libraryName = System.mapLibraryName("cubiomes");
70+
ModContainer modContainer = FabricLoader.getInstance().getModContainer(MOD_ID).orElseThrow();
71+
Path tempFile;
72+
try {
73+
tempFile = Files.createTempFile(libraryName, "");
74+
Files.copy(modContainer.findPath(libraryName).orElseThrow(), tempFile, StandardCopyOption.REPLACE_EXISTING);
75+
} catch (IOException e) {
76+
throw new RuntimeException(e);
77+
}
78+
System.load(tempFile.toAbsolutePath().toString());
79+
}
80+
5881
@Override
5982
public void onInitializeClient() {
6083
CubiomesNative.ensureLoaded();
@@ -99,6 +122,12 @@ public void onInitializeClient() {
99122
RenderManager.registerEvents();
100123
SeedMapMinimapManager.registerHud();
101124
ManualWaypointCompassOverlay.registerHud();
125+
MinimapManager.registerHudElement();
126+
127+
if (BARITONE_AVAILABLE) {
128+
LOGGER.info("Baritone detected, Baritone integration will be available!");
129+
LOGGER.info("Set AutoMine to true to automatically mine certain blocks highlighted by `/sm:highlight`");
130+
}
102131
}
103132

104133
private static void registerCommands(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandBuildContext context) {

src/main/java/dev/xpple/seedmapper/command/commands/HighlightCommand.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
import com.mojang.brigadier.CommandDispatcher;
1414
import com.mojang.brigadier.exceptions.CommandSyntaxException;
1515
import com.mojang.datafixers.util.Pair;
16+
import dev.xpple.seedmapper.SeedMapper;
1617
import dev.xpple.seedmapper.command.CommandExceptions;
1718
import dev.xpple.seedmapper.command.CustomClientCommandSource;
1819
import dev.xpple.seedmapper.config.Configs;
1920
import dev.xpple.seedmapper.feature.OreTypes;
2021
import dev.xpple.seedmapper.render.RenderManager;
2122
import dev.xpple.seedmapper.render.esp.EspStyle;
23+
import dev.xpple.seedmapper.util.BaritoneIntegration;
2224
import dev.xpple.seedmapper.util.ComponentUtils;
2325
import dev.xpple.seedmapper.util.SeedIdentifier;
2426
import dev.xpple.seedmapper.util.SpiralLoop;
@@ -176,6 +178,9 @@ private static int highlightBlock(CustomClientCommandSource source, Pair<Integer
176178
count[0] += blockOres.size();
177179
source.getClient().schedule(() -> {
178180
RenderManager.drawBoxes(blockOres, Configs.BlockHighlightESP, colour);
181+
if (SeedMapper.BARITONE_AVAILABLE && Configs.AutoMine) {
182+
BaritoneIntegration.addGoals(blockOres);
183+
}
179184
source.sendFeedback(Component.translatable("command.highlight.block.chunkSuccess", accent(String.valueOf(blockOres.size())), ComponentUtils.formatXZ(chunkX, chunkZ)));
180185
});
181186

@@ -237,6 +242,9 @@ private static int highlightOreVein(CustomClientCommandSource source, int chunkR
237242
count[0] += positions.size();
238243
int colour = BLOCKS.values().stream().filter(pair -> Objects.equals(block, pair.getFirst())).findAny().orElseThrow().getSecond();
239244
RenderManager.drawBoxes(positions, Configs.OreVeinESP, colour);
245+
if (SeedMapper.BARITONE_AVAILABLE && Configs.AutoMine) {
246+
BaritoneIntegration.addGoals(positions);
247+
}
240248
if (block == Cubiomes.RAW_COPPER_BLOCK() || block == Cubiomes.RAW_IRON_BLOCK()) {
241249
source.getClient().schedule(() -> source.sendFeedback(Component.translatable("command.highlight.oreVein.rawBlocks", ComponentUtils.formatXYZCollection(positions))));
242250
}

src/main/java/dev/xpple/seedmapper/command/commands/LocateCommand.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ public static TwoDTree calculateStrongholds(long seed, int dimension, int versio
258258
tree.insert(new BlockPos(Pos.x(pos), 0, Pos.z(pos)));
259259
}
260260
}
261+
tree.balance();
261262
return tree;
262263
}
263264

src/main/java/dev/xpple/seedmapper/config/Configs.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
import dev.xpple.seedmapper.seedmap.MapFeature;
1212
import dev.xpple.seedmapper.seedmap.SeedMapMinimapManager;
1313
import dev.xpple.seedmapper.seedmap.SeedMapScreen;
14+
import dev.xpple.seedmapper.util.BaritoneIntegration;
1415
import dev.xpple.seedmapper.util.ComponentUtils;
1516
import dev.xpple.seedmapper.util.SeedIdentifier;
1617
import dev.xpple.seedmapper.world.WorldPresetManager;
1718
import net.minecraft.ChatFormatting;
1819
import net.minecraft.client.Minecraft;
20+
import net.minecraft.commands.SharedSuggestionProvider;
1921
import net.minecraft.network.chat.Component;
2022
import net.minecraft.util.Util;
2123
import dev.xpple.seedmapper.render.esp.EspStyle;
@@ -627,4 +629,15 @@ private static boolean applyWorldPresetInternal(String presetId) {
627629
private static void updateHighlightDuration(Duration oldValue, Duration newValue) {
628630
RenderManager.rebuildLineSet();
629631
}
632+
633+
@Config(condition = "hasBaritoneAvailable", onChange = "updateBaritoneGoals")
634+
public static boolean AutoMine = false;
635+
private static boolean hasBaritoneAvailable(SharedSuggestionProvider source) {
636+
return SeedMapper.BARITONE_AVAILABLE;
637+
}
638+
private static void updateBaritoneGoals(boolean oldValue, boolean newValue) {
639+
if (!newValue) {
640+
BaritoneIntegration.clearGoals();
641+
}
642+
}
630643
}

src/main/java/dev/xpple/seedmapper/mixin/ClientPacketListenerMixin.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package dev.xpple.seedmapper.mixin;
22

3-
import dev.xpple.seedmapper.config.Configs;
3+
import dev.xpple.seedmapper.MinimapManager;
4+
import dev.xpple.seedmapper.SeedMapper;
5+
import dev.xpple.seedmapper.command.CustomClientCommandSource;
46
import dev.xpple.seedmapper.command.commands.DatapackImportCommand;
7+
import dev.xpple.seedmapper.config.Configs;
58
import dev.xpple.seedmapper.render.RenderManager;
69
import dev.xpple.seedmapper.seedmap.SeedMapMinimapManager;
10+
import dev.xpple.seedmapper.util.BaritoneIntegration;
711
import net.minecraft.client.multiplayer.ClientPacketListener;
812
import net.minecraft.network.protocol.game.ClientboundLoginPacket;
913
import net.minecraft.network.protocol.game.ClientboundRespawnPacket;
@@ -19,6 +23,11 @@ private void onHandleLogin(ClientboundLoginPacket packet, CallbackInfo ci) {
1923
RenderManager.clear();
2024

2125
SeedMapMinimapManager.hide();
26+
MinimapManager.hide();
27+
28+
if (SeedMapper.BARITONE_AVAILABLE) {
29+
BaritoneIntegration.clearMinedBlocks();
30+
}
2231
}
2332

2433
@Inject(method = "handleLogin", at = @At("TAIL"))
@@ -38,5 +47,11 @@ private void onHandleRespawn(ClientboundRespawnPacket packet, CallbackInfo ci) {
3847
RenderManager.clear();
3948

4049
SeedMapMinimapManager.refreshIfOpen();
50+
int dimension = CustomClientCommandSource.inferDimension(packet.commonPlayerSpawnInfo().dimensionType().value());
51+
MinimapManager.updateDimension(dimension);
52+
53+
if (SeedMapper.BARITONE_AVAILABLE) {
54+
BaritoneIntegration.clearMinedBlocks();
55+
}
4156
}
4257
}

0 commit comments

Comments
 (0)