package com.example.yourmod;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.client.MinecraftClient;
import com.jagrosh.discordipc.IPCClient;
import com.jagrosh.discordipc.IPCListener;
import com.jagrosh.discordipc.entities.RichPresence;
import java.time.OffsetDateTime;
public class YourModClient implements ClientModInitializer {
private static final long DISCORD_CLIENT_ID = 1234567890123456789L; // твой Client ID
private IPCClient ipcClient;
@Override
public void onInitializeClient() {
try {
ipcClient = new IPCClient(DISCORD_CLIENT_ID);
ipcClient.setListener(new IPCListener() {
@Override
public void onReady(IPCClient client) {
updateRichPresence();
}
@Override
public void onClose(IPCClient client, String json) {
System.out.println("Discord IPC connection closed.");
}
});
ipcClient.connect();
ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (ipcClient != null && ipcClient.isConnected()) {
updateRichPresence();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
private void updateRichPresence() {
MinecraftClient client = MinecraftClient.getInstance();
if (client.player == null) {
ipcClient.sendRichPresence(null);
return;
}
RichPresence.Builder builder = new RichPresence.Builder()
.setDetails("Играет в одиночной игре")
.setState("Выживание")
.setStartTimestamp(OffsetDateTime.now())
.setLargeImage("minecraft_logo", "Minecraft 1.21.11");
ipcClient.sendRichPresence(builder.build());
}
}