Files
Ipseity-Demo/Assets/Editor/SceneNotifier.cs
T
2026-03-26 15:02:24 +01:00

46 lines
1.5 KiB
C#

using System.Text;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.Networking;
[InitializeOnLoad]
public static class DiscordSceneNotifier
{
private const string WebhookUrl = "https://discord.com/api/webhooks/1486718530765328424/42mP_zYNTEwwBbc_lcuasPbpZppXoC4U14-Pde1YatdxatT5s9vml8lgQXTwAmm0PNe5";
static DiscordSceneNotifier()
{
EditorSceneManager.sceneOpened += OnSceneOpened;
}
private static void OnSceneOpened(UnityEngine.SceneManagement.Scene scene, UnityEditor.SceneManagement.OpenSceneMode mode)
{
string userName = System.Environment.UserName;
string message = $"{userName} opened scene: {scene.name}";
SendDiscordMessage(message);
}
private static async void SendDiscordMessage(string content)
{
string json = JsonUtility.ToJson(new DiscordMessage { content = content });
using var request = new UnityWebRequest(WebhookUrl, "POST");
byte[] bodyRaw = Encoding.UTF8.GetBytes(json);
request.uploadHandler = new UploadHandlerRaw(bodyRaw);
request.downloadHandler = new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
await request.SendWebRequest();
if (request.result != UnityWebRequest.Result.Success)
Debug.LogWarning("Discord webhook failed: " + request.error);
}
[System.Serializable]
private class DiscordMessage
{
public string content;
}
}