我正在使用重写和gspread通过存储用户ID和得分来更新“前16名”排行榜。用于创建/更新排行榜的公式通过根据用户的得分来参考他们的位置来将其ID放置在单元格中。因此,每个单元格的结构如下:
1st place: <"@230579325375837234">
然后我将整个列拉出来以编辑现有的嵌入:
lb = sheet13.col_values(9)
一切正常-我的问题是,编辑后的嵌入内容并不总是将ID转换为名称。有些会转换为名称,有些会提到ID版本,而不是提及用户名。导致出现如下所示的嵌入内容:
1st place: @adisplayname
2st place: <@230579325375837234>
3rd place: @anotherdisplayname
4th place: <@573856332907428873>
5th place: <@230579325375837234>
6th place: @thirddisplayname
有没有办法确保提到用户名/显示名,而不是ID?
我正在考虑提取用于更新嵌入的单个单元格,而不是整个列,并将它们定义为单个变量,以通过display_name提及用户;而不是尝试提及原始ID本身,尽管我不确定此解决方案是否最干净?
答案 0 :(得分:1)
多亏了derw,我运行了whois命令来检查成员是否确实在服务器中,并且答复中包含一个!在ID前面。这似乎已经解决了我的问题。
1st place: <@!23057932537583723>
所有提及现在都有效:)