Skip to content

Commit 8e09693

Browse files
committed
Additional platform information for fabric
1 parent 2e90ca6 commit 8e09693

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

launchers/fabric/src/main/java/net/impactdev/impactor/fabric/platform/FabricPlatformInfo.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import net.impactdev.impactor.api.platform.plugins.PluginMetadata;
3737
import net.impactdev.impactor.api.utility.printing.PrettyPrinter;
3838
import net.impactdev.impactor.core.platform.ImpactorPlatformInfo;
39+
import org.jetbrains.annotations.Nullable;
3940

4041
import java.util.List;
4142
import java.util.Optional;
@@ -79,15 +80,16 @@ protected void printComponents(PrettyPrinter printer) {
7980
printer.tr(component.name(), component.version());
8081
}
8182
printer.hr('-');
82-
83+
8384
printer.newline().add("Mods: ");
84-
printer.table("Mod", "Version");
85+
printer.table("Mod", 40, "Version", "Parent");
8586
List<ModContainer> mods = FabricLoader.getInstance().getAllMods()
8687
.stream()
8788
.filter(info -> !this.exclusions.contains(info.getMetadata().getId()))
89+
.filter(info -> info.getContainingMod().isEmpty())
8890
.collect(Collectors.toList());
8991
for(ModContainer info : mods) {
90-
printer.tr(info.getMetadata().getName(), info.getMetadata().getVersion().getFriendlyString());
92+
this.printModContainer(info, printer);
9193
}
9294
}
9395

@@ -105,4 +107,13 @@ private PluginMetadata translate(ModMetadata metadata) {
105107
.description(metadata.getDescription())
106108
.build();
107109
}
110+
111+
private void printModContainer(ModContainer target, PrettyPrinter printer) {
112+
@Nullable ModContainer parent = target.getContainingMod().orElse(null);
113+
printer.tr(target.getMetadata().getName(), target.getMetadata().getVersion().getFriendlyString(), parent != null ? parent.getMetadata().getName() : "");
114+
115+
for (ModContainer child : target.getContainedMods()) {
116+
this.printModContainer(child, printer);
117+
}
118+
}
108119
}

launchers/fabric/src/main/java/net/impactdev/impactor/fabric/platform/sources/FabricPlatformSource.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,26 @@
2525

2626
package net.impactdev.impactor.fabric.platform.sources;
2727

28+
import net.impactdev.impactor.api.Impactor;
2829
import net.impactdev.impactor.api.platform.sources.SourceType;
2930
import net.impactdev.impactor.core.platform.sources.ImpactorPlatformSource;
31+
import net.impactdev.impactor.fabric.platform.FabricPlatform;
32+
import net.impactdev.impactor.minecraft.text.AdventureTranslator;
33+
import net.kyori.adventure.audience.MessageType;
34+
import net.kyori.adventure.identity.Identity;
35+
import net.kyori.adventure.text.Component;
36+
import org.jetbrains.annotations.NotNull;
3037

3138
import java.util.UUID;
3239

3340
public final class FabricPlatformSource extends ImpactorPlatformSource {
3441
public FabricPlatformSource(UUID uuid, SourceType type) {
3542
super(uuid, type);
3643
}
44+
45+
@Override
46+
public void sendMessage(@NotNull Identity source, @NotNull Component message, @NotNull MessageType type) {
47+
FabricPlatform platform = (FabricPlatform) Impactor.instance().platform();
48+
platform.server().sendSystemMessage(AdventureTranslator.toNative(message));
49+
}
3750
}

0 commit comments

Comments
 (0)