Files
ParrotMod/src/main/java/de/winniepat/parrotmod/ui/InfoTabFragment.java
T
2026-06-20 22:26:45 +02:00

62 lines
2.8 KiB
Java

package de.winniepat.parrotmod.ui;
import de.winniepat.parrotmod.Parrotmod;
import icyllis.modernui.fragment.Fragment;
import icyllis.modernui.util.DataSet;
import icyllis.modernui.view.LayoutInflater;
import icyllis.modernui.view.View;
import icyllis.modernui.view.ViewGroup;
import icyllis.modernui.widget.LinearLayout;
import icyllis.modernui.widget.TextView;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.Minecraft;
public class InfoTabFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, DataSet savedInstanceData) {
LinearLayout layout = new LinearLayout(getContext());
layout.setOrientation(LinearLayout.VERTICAL);
layout.setPadding(dp(12), dp(12), dp(12), dp(12));
String parrotVersion = FabricLoader.getInstance().getModContainer("parrotmod").orElseThrow().getMetadata().getVersion().getFriendlyString();
layout.addView(makeLabel("Parrotmod version: " + parrotVersion));
String mcVersion = FabricLoader.getInstance().getModContainer("minecraft").orElseThrow().getMetadata().getVersion().getFriendlyString();
layout.addView(makeLabel("Minecraft Version: " + Minecraft.getInstance().getLaunchedVersion() + " (" + mcVersion + ")"));
String loaderVersion = FabricLoader.getInstance().getModContainer("fabricloader").orElseThrow().getMetadata().getVersion().getFriendlyString();
layout.addView(makeLabel("Fabric Loader Version: " + loaderVersion));
int modCount = FabricLoader.getInstance().getAllMods().size();
layout.addView(makeLabel("Loaded Mods: " + modCount));
layout.addView(makeLabel("Java Version: " + System.getProperty("java.version") + " (" + System.getProperty("os.arch") + ")"));
layout.addView(makeLabel("OS: " + System.getProperty("os.name") + " (" + System.getProperty("os.version") + ")"));
long maxMemory = Runtime.getRuntime().maxMemory();
long totalMemory = Runtime.getRuntime().totalMemory();
long freeMemory = Runtime.getRuntime().freeMemory();
long usedMemory = totalMemory - freeMemory;
layout.addView(makeLabel(String.format("Memory: %dMB / %dMB", usedMemory / 1024 / 1024, maxMemory / 1024 / 1024)));
return layout;
}
private TextView makeLabel(String text) {
TextView tv = new TextView(getContext());
tv.setText(text);
tv.setTextSize(12);
tv.setTextColor(0xFFCCCCCC);
var p = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
p.topMargin = dp(8);
p.bottomMargin = dp(2);
tv.setLayoutParams(p);
return tv;
}
private int dp(float dp) {
return (int) (dp * getContext().getResources().getDisplayMetrics().density);
}
}