Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
// Worker JavaScript Code const DISCORD_WEBHOOK_URL = ""; // <<< 替換成你的真實 Webhook 網址! const ALERT_TEMPERATURE = 1428; // 警報溫度設定:1428°K const ALERT_TAG = "<@XXXXXXXXXXXXXXXXXX>"; // 緊急警報 @Tag // 數字格式化函數 function formatLargeNumber(num) { if (num >= 1e12) return (num / 1e12).toFixed(2) + " T"; if (num >= 1e9) return (num / 1e9).toFixed(2) + " G"; if (num >= 1e6) return (num / 1e6).toFixed(2) + " M"; if (num >= 1e3) return (num / 1e3).toFixed(2) + " K"; return Math.floor(num).toString(); } export default { async fetch(request) { if (request.method !== 'POST') { return new Response("Method Not Allowed. Use POST.", { status: 405 }); } try { // 1. 接收來自 CC 電腦的簡化數據 const data = await request.json(); // 2. 數據分析與排版 const { computer_id, temp, efficiency, stored_energy, max_energy, input_rate, output_rate, status } = data; const is_critical = temp >= ALERT_TEMPERATURE || status === "INACTIVE"; const color = is_critical ? 16711680 : 65280; // 紅色(危險) 或 綠色(正常) // --- 建立主監控 Embed --- const monitorEmbed = { title: `[ID:${computer_id}] 能源監控報告`, color: color, description: `狀態更新時間: ${new Date().toLocaleTimeString('zh-TW', { hour12: false })}`, fields: [ // MEK 傳輸矩陣數據 { name: "⚡ 傳輸矩陣 (FE)", value: `儲存量: ${formatLargeNumber(stored_energy)} FE / ${formatLargeNumber(max_energy)} FE\n輸入率: ${formatLargeNumber(input_rate)} FE/t\n輸出率: ${formatLargeNumber(output_rate)} FE/t`, inline: false }, // 核分裂反應堆數據 { name: "☢️ 核分裂反應堆", value: `狀態: ${status === "ACTIVE" ? "🟢 運作中" : "🔴 停止/錯誤"}\n溫度: ${temp.toFixed(2)} °K`, inline: false } ], footer: { text: "數據來源: CC: Tweaked Lua" } }; const finalPayload = { embeds: [monitorEmbed] }; // --- 檢查是否需要發送緊急 Tag 警報 (如果 CC 發送了 alert: true 旗標) --- let alertContent = null; if (data.alert_tag === true) { alertContent = `${ALERT_TAG} 🚨 緊急警告![ID:${computer_id}] 核反應堆溫度已達 ${temp.toFixed(2)}°K。請立即檢查!`; finalPayload.content = alertContent; // Tag 必須放在 content 欄位 } // 3. 發送請求到 Discord Webhook const discordRequest = new Request(DISCORD_WEBHOOK_URL, { method: 'POST', headers: { 'Content-Type': 'application/json', // 強制設定 User-Agent,避免被 Discord 擋下 'User-Agent': 'DiscordBot (Cloudflare Worker Proxy, 1.0)', }, body: JSON.stringify(finalPayload), }); const discordResponse = await fetch(discordRequest); // 4. 返回結果給 CC 電腦 return new Response("OK", { status: discordResponse.status }); } catch (error) { console.error("Worker Error:", error.message); return new Response("Worker Processing Error", { status: 500 }); } } };
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)