diff --git a/src/main/java/carpet/mixins/CrashReport_addScarpetAppsMixin.java b/src/main/java/carpet/mixins/CrashReport_addScarpetAppsMixin.java new file mode 100644 index 00000000..dd156441 --- /dev/null +++ b/src/main/java/carpet/mixins/CrashReport_addScarpetAppsMixin.java @@ -0,0 +1,28 @@ +package carpet.mixins; + +import java.util.stream.Collectors; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import carpet.CarpetServer; +import net.minecraft.util.crash.CrashReport; +import net.minecraft.util.crash.CrashReportSection; + +@Mixin(CrashReport.class) +public abstract class CrashReport_addScarpetAppsMixin +{ + @Shadow + public abstract CrashReportSection getSystemDetailsSection(); + + @Inject(at = @At("RETURN"), method = "fillSystemDetails") + private void fillSystemDetails(CallbackInfo info) { + if (CarpetServer.scriptServer == null || CarpetServer.scriptServer.modules.isEmpty()) return; + getSystemDetailsSection().add("Loaded Scarpet Apps", () -> { + return CarpetServer.scriptServer.modules.keySet().stream().collect(Collectors.joining("\n\t\t", "\n\t\t", "")); + }); + } +} diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 7a0205dd..dfc7ee5a 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -184,6 +184,7 @@ "ServerWorld_scarpetMixin", "HungerManagerMixin_scarpetEventsMixin", "ReloadCommand_reloadAppsMixin", + "CrashReport_addScarpetAppsMixin", "RecipeManager_scarpetMixin", "Ingredient_scarpetMixin",