我有一個問題,我看到 api discord 會計算我們所有的徽章,即如果我們是員工 hypesquad,它會給出數字“5”。但是,我想知道如何進行可靠的計算來給出徽章的真實結果(例如:5 給出了“員工和炒作隊事件”這個詞
這是api代碼:
{
"id": "N/A",
"username": "developer",
"avatar": "N/A",
"discriminator": "0001",
"public_flags": 644,
"banner": null,
"banner_color": null,
"accent_color": null
}
如您所見,public_flags = 644
真正的旗幟:
Discord_Employee = 1;
Partnered_Server_Owner = 2;
HypeSquad_Events = 4;
Bug_Hunter_Level_1 = 8;
House_Bravery = 64;
House_Brilliance = 128;
House_Balance = 256;
Early_Supporter = 512;
Bug_Hunter_Level_2 = 16384;
Early_Verified_Bot_Developer = 131072;
有必要知道擁有 644 的用戶實際上包含以下徽章:
- Hypesquad 活動 Brilliance Early_Supporter
計算系統必須在php中完成
感謝大家,
uj5u.com熱心網友回復:
您可以使用按位運算:
$badges = [
1 => 'Discord_Employee',
2 => 'Partnered_Server_Owner',
4 => 'HypeSquad_Events',
8 => 'Bug_Hunter_Level_1'
];
$flags = 6;
var_dump(array_filter($badges, function($value, $key) use($flags) {
return ($key & $flags) > 0;
}, ARRAY_FILTER_USE_BOTH));
此代碼列印
array(2) {
[2]=>
string(22) "Partnered_Server_Owner"
[4]=>
string(16) "HypeSquad_Events"
}
uj5u.com熱心網友回復:
我這樣做的方式是通過 nodejs 使用 discordjs / express 處理 discord 任務,并且只處理 PHP 中的資料,nodejs 應用程式輸出 JSON 格式,這樣我就可以做到,但是 Pavel T?upek 的腳本更好,如果您只需要獲取用戶物件,例如檢查器,就??我而言,我使用的資料不僅僅是標志,因此這種方式針對我的使用進行了優化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/353623.html
上一篇:為什么這個回呼給出無限回圈
下一篇:Mysql多表連接查詢優化
