首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不和谐的API -得到真正的旗帜名称

不和谐的API -得到真正的旗帜名称
EN

Stack Overflow用户
提问于 2021-11-05 13:04:23
回答 2查看 264关注 0票数 0

我有一个问题,我看到api的不和谐使我们所有的徽章,即如果我们是工作人员+炒股,它的数字"5“。然而,我想知道如何做一个可靠的计算,给出徽章的真实结果(Ex:那5给出了“员工和Hypesquad事件”这个词。)

下面是api代码:

代码语言:javascript
复制
{
    "id": "N/A",
    "username": "developer",
    "avatar": "N/A",
    "discriminator": "0001",
    "public_flags": 644,
    "banner": null,
    "banner_color": null,
    "accent_color": null
}

如您所见,public_flags = 644

真旗:

代码语言:javascript
复制
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的用户包含下列徽章:

Early_Supporter +华晨+

  • Hypesquad事件

计算系统必须在php中完成。

感谢大家,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-05 13:29:10

您可以使用按位操作:

代码语言:javascript
复制
$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));

这段代码打印

代码语言:javascript
复制
array(2) {
  [2]=>
  string(22) "Partnered_Server_Owner"
  [4]=>
  string(16) "HypeSquad_Events"
}
票数 1
EN

Stack Overflow用户

发布于 2021-11-08 10:58:56

我这样做的方式是通过nodejs使用不和谐is / express处理不和谐的任务,只需用PHP处理数据,nodejs应用程序就可以输出JSON格式,这样我就能够做到这一点,但是Pavel Třupek的脚本要好得多,如果您只获得用户对象,就像一个检查器,在我的情况下,我使用了更多的数据,而不仅仅是标志,所以这种方式是为我的使用优化的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69853711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档