DiscordRPC Stuff

This commit is contained in:
Patrick
2026-06-20 23:44:27 +02:00
parent 1fd0d0b45f
commit 30aad256ce
2 changed files with 19 additions and 12 deletions
@@ -2,7 +2,6 @@ package de.winniepat.parrotmod.config;
public class Config { public class Config {
public boolean enableDiscordRPC = true; public boolean enableDiscordRPC = true;
public long discordAppId = 1517985621396820039L;
public boolean showBiomeInRPC = true; public boolean showBiomeInRPC = true;
public boolean showHeldItemInRPC = true; public boolean showHeldItemInRPC = true;
public boolean showHealthInRPC = true; public boolean showHealthInRPC = true;
@@ -8,10 +8,17 @@ import com.jagrosh.discordipc.entities.Packet;
import com.jagrosh.discordipc.entities.RichPresence; import com.jagrosh.discordipc.entities.RichPresence;
import com.jagrosh.discordipc.entities.User; import com.jagrosh.discordipc.entities.User;
import com.jagrosh.discordipc.exceptions.NoDiscordClientException; import com.jagrosh.discordipc.exceptions.NoDiscordClientException;
import com.mojang.authlib.minecraft.client.MinecraftClient;
import de.winniepat.parrotmod.ParrotLogger; import de.winniepat.parrotmod.ParrotLogger;
import de.winniepat.parrotmod.config.ConfigManager; import de.winniepat.parrotmod.config.ConfigManager;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.player.LocalPlayer;
import net.minecraft.core.Holder;
import net.minecraft.resources.Identifier;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.biome.Biome;
import java.time.OffsetDateTime; import java.time.OffsetDateTime;
import java.util.List; import java.util.List;
@@ -64,7 +71,7 @@ public class DiscordRPCManager {
} }
private static void startClient() { private static void startClient() {
client = new IPCClient(ConfigManager.getInstance().discordAppId); client = new IPCClient(1517985621396820039L);
client.setListener(new IPCListener() { client.setListener(new IPCListener() {
@Override @Override
public void onPacketSent(IPCClient client, Packet packet) { public void onPacketSent(IPCClient client, Packet packet) {
@@ -126,22 +133,23 @@ public class DiscordRPCManager {
} }
private static void updateFromPlayer(LocalPlayer player) { private static void updateFromPlayer(LocalPlayer player) {
ResourceKey<Level> dimension = player.level().dimension();
var cfg = ConfigManager.getInstance(); var cfg = ConfigManager.getInstance();
String dimension = player.level().dimension().registry().getPath();
String biomeName = player.level().getBiome(player.blockPosition())
.unwrapKey()
.map(key -> key.registry().getPath())
.orElse("unknown");
ItemStack held = player.getMainHandItem(); ItemStack held = player.getMainHandItem();
String heldName = held.isEmpty() ? "empty hands" : held.getHoverName().getString(); String heldName = held.isEmpty() ? "empty hands" : held.getHoverName().getString();
String details; String details;
if (cfg.showBiomeInRPC) { if (cfg.showBiomeInRPC) {
details = switch (dimension) { if (dimension == Level.OVERWORLD) {
case "the_nether" -> "Surviving the Nether"; details = "Overworld";
case "the_end" -> "Facing the End"; } else if (dimension == Level.NETHER) {
default -> "Exploring the " + prettify(biomeName); details = "Nether";
}; } else if (dimension == Level.END) {
details = "The End";
} else {
details = "Unknown";
}
} else { } else {
details = "Playing Minecraft"; details = "Playing Minecraft";
} }