C# 修改 Discord 遊戲狀態示範(使用 DiscordRichPresence 套件)

筆者平時都是使用 JetBrains 家族的 IDE,例如 Rider, IntelliJ 等,平時會使用 Discord Integration 這個套件,將開發工具的圖示顯示在 Discode 上,但是似乎每次有新的專案都需要手動確認,不太方便

那有沒有辦法自訂呢?發現也是有大神寫好套件,意外的簡單。

安裝

使用 NuGet 安裝 DiscordRichPresence 套件,或是使用 .NET CLI 執行以下指令安裝
	
dotnet add package DiscordRichPresence
    

一開始一直出現錯誤,不知道 ID 從哪裡來,原來是要到 Discord developer portal 的網站建立一個 Application,建立完成後將 Application id 記錄下來,等等在程式碼中會使用到

如果想要顯示圖片的話可以到 Rich Presence > Art Assets 中點選 Add Image(s) ,上傳圖片後將名稱改為方便辨識的名稱,後面在顯示圖片時就是使用這個名稱

註:上傳完成只要下方有出現圖片並點選儲存就可以了,如果這時候點選其他頁籤再回來很可能發現圖片不見了,這時候不需要重複上傳,不然會產生同樣檔名的圖片,會無法顯示,需要刪除重新上傳。所以如果圖片不見了請先嘗試等待大約五分鐘左右再回來看,應該就會發現圖片成功出現。

範例程式碼:
    
using DiscordRPC;
using DiscordRPC.Logging;

DiscordRpcClient  client = new DiscordRpcClient("123123123");			
client.Logger = new ConsoleLogger { Level = LogLevel.Warning };

client.OnReady += (sender, e) =>
{
    Console.WriteLine("Received Ready from user {0}", e.User.Username);
};
		
client.OnPresenceUpdate += (sender, e) =>
{
    Console.WriteLine("Received Update! {0}", e.Presence);
};
	
client.Initialize();

client.SetPresence(new RichPresence()
{
    Details = "Example Project",
    State = "csharp example",
    Assets = new Assets()
    {
        LargeImageKey = "my_image_001",
        LargeImageText = "大的圖片",
        SmallImageKey = "my_image_001",
        SmallImageText = "小的圖片",
    }
});

// 保持程式執行
Console.WriteLine("按下任意鍵以結束...");
Console.ReadKey(true);

// 關閉
client.Dispose();
    

結果:

這裡的名稱是依照 Application 的名稱做顯示,可以隨時更改。

參考資料:
Github - Lachee/discord-rpc-csharp
Discord Rich Presence

留言