Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >向所有服务器成员发送直接消息的方法?Java不一致Api

向所有服务器成员发送直接消息的方法?Java不一致Api
EN

Stack Overflow用户
提问于 2020-05-03 21:02:09
回答 1查看 2K关注 0票数 0

我想编写一个向所有服务器成员发送私人消息的命令,这是可能的吗?我知道如何将DM发送给消息的作者,但不知道如何发送给所有服务器成员。

EN

回答 1

Stack Overflow用户

发布于 2020-05-15 04:46:04

是的,假设你有你的目标服务器的ID,你可以用它来调用你的机器人的jda实例

代码语言:javascript
运行
AI代码解释
复制
jda.getGuildById(<ID>);

或者,如果您只知道名称,也可以使用

代码语言:javascript
运行
AI代码解释
复制
jda.getGuildsByName(<NAME>, <CASE_SENSITIVE>)

name one将返回一个包含所有匹配名称的列表,这是非常不切实际的,因为获取ID非常容易。

您可能已经通过其他方式获得了Guild对象(可能是通过侦听器?),但这并不重要。

Now you can either call guild.getMembers() or guild.getMemberCache() which one should you choose? guild.getMemberCache() is, by default more efficient and in the end it implements the Iterable interface, so for all your intents and purposes, it should be better to use getMemberCache(), the benefit of getMembers() is that you'll get it as a list, making is trivial to do more processing.

现在您有了List<Member>MemberCacheView,让我们在这里迭代它最简单的选项是forEach()方法,或者只使用for each循环:

代码语言:javascript
运行
AI代码解释
复制
for (Member member : guild.getMemberCache())

或者:

代码语言:javascript
运行
AI代码解释
复制
guild.getMemberCache().forEach(member -> <DO_SOMETHING>)

(如果您选择使用guild.getMembers(),它将完全相同)

现在来实际发送你的消息:

记住,我们正在迭代Member对象,但是JDA不允许我们通过它打开私有通道,所以我们需要

代码语言:javascript
运行
AI代码解释
复制
PrivateChannel channel = member.getUser().openPrivateChannel().complete();

请注意,这里您需要等待同步的complete()并正常接收PrivateChannel对象,或者您可以在打开PrivateChannel时将一个消费者传递给queue方法,该方法将在通道可用时立即执行:

代码语言:javascript
运行
AI代码解释
复制
Consumer<PrivateChannel> messageSender = channel -> channel.sendMessage("Hey~~!").queue();
user.openPrivateChannel().queue(messageSender);

或者:

代码语言:javascript
运行
AI代码解释
复制
user.openPrivateChannel().queue(channel -> channel.sendMessage("Hey~~!").queue());

现在我们有了通道,发送消息就很简单了

代码语言:javascript
运行
AI代码解释
复制
channel.sendMessage("Hey~~!").queue();

因此,将所有这些放在一起,我们得到:

代码语言:javascript
运行
AI代码解释
复制
Guild guild; //Guild you got from a listener, or from the JDA pool

for(Member member : guild.getMemberCache()) { //Iterating over cached members in the guild
   User user = member.getUser(); //Converting the member object to a User

  user.openPrivateChannel().queue(channel->
             channel.sendMessage("Hey~~!").queue()); //Opening the channel and sending the message

   /*  Now you can optionally close the channel to remove it from the JDA's mapping */
   channel.close().queue();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61581581

复制
相关文章
Excel公式练习32: 将包含空单元格的多行多列单元格区域转换成单独的列并去掉空单元格
本次的练习是:如下图1所示,单元格区域A1:D6中是一系列数据,其中包含空单元格,现在要将它们放置到一列中,并删除空单元格,如图中所示的单元格区域G1:G13,如何使用公式实现?
fanjy
2020/02/18
2.5K0
Excel公式练习33: 将包含空单元格的多行多列单元格区域转换成单独的列并去掉空单元格(续)
本次的练习是:这个练习题与本系列上篇文章的练习题相同,如下图1所示,不同的是,上篇文章中将单元格区域A1:D6中的数据(其中包含空单元格)转换到单独的列(如图中所示的单元格区域G1:G13)中时,是以行的方式进行的,即先放置第1行中的数据、再放置第2行……依此类推。这里,需要以列的方式进行,即先放置第1列中的数据、再放置第2列中的数据……依此类推,最终结果如图中所示的单元格区域H1:H13,如何使用公式实现?
fanjy
2020/02/18
2.4K0
Python-科学计算-pandas-11-df获取特定行或者列
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 pandas:0.19.2
zishendianxia
2020/06/16
2.2K0
空与非空:浅谈非空约束的影响
黄玮(Fuyuncat) 资深Oracle DBA,个人网www.HelloDBA.com,致力于数据库底层技术的研究,其作品获得广大同行的高度评价. 非空约束是字段的一个重要属性。但是,很多时候,数据库表的设计人员似乎并不十分在意这个属性。最常见的现象就是,除了主键字段外,所有字段都不指定该属性。而在Oracle中,默认是允许为空。 而实际上,优化器在选择执行计划时,非空约束是一个重要的影响因素。为了说明问题,我们建立以下测试表,然后分别说明非空约束在各种情况下对执行计划和性能的影响。 谓词评
数据和云
2018/03/06
3.3K0
空与非空:浅谈非空约束的影响
R语言:以多列标准筛选特定行
在本期,我们会运用一个病例数据为大家进行讲解示范,这也是大猫课堂第一次针对阅读者提问进行的反馈,也希望大家能提供一些有趣的问题,来和我们一起分享,同时也感谢读者孤鹜惜秋,与我们分享其问题。话不多说,马上进入正题。
用户7652506
2020/08/12
2K0
R语言:以多列标准筛选特定行
Excel公式:提取行中的第一个非空值
有时候,工作表行中的数据可能并不在第1个单元格,而我们可能会要获得行中第一个非空单元格中的数据,如下图1所示。
fanjy
2022/11/16
5K0
Excel公式:提取行中的第一个非空值
第03期:列非空与自增
MySQL 里字段的属性很多,对性能来说,影响也是可大可小,所以针对其属性这一块有必要进行一次探究。
爱可生开源社区
2020/05/04
6350
SAP abap ALV的列颜色、、行颜色、单元格颜色设置
matinal
2023/10/13
5310
laravel 预加载特定的列
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/112351.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
7990
laravel 预加载特定的列
SQL如何只让特定列中只显示一行数据
我们如果在某个表里面,如何让其中某列的其中一行数据,只是显示一次呢? 示例表 StudentID Last_Name First_Name Gender GradeLevel Class Pupil_Email Relationship Pupil_Parent_Email 5013 Wang Zack M Grade 9 Senior SG9 B 5013@example.com 爸爸 5013a@qq.com 5013 Wang Zack M Grade 9 Senior SG9 B 5013@exam
繁华是客
2023/03/03
9K0
非空判断方法:IsNotEmpty和isNotBlank的区别。[通俗易懂]
在项目中,我们用的最多的是StringUtils中的非空判断方法,相信大部分人都用过IsNotEmpty或者 isEmpty方法
全栈程序员站长
2022/09/22
2K0
python读取特定的行
fr = open(filename) for line in fr.readlines():     if line.startswith("#"):         continue     else:         ## do something with line          ## could use fr.readlines()[1:]  from second line import linecache content_list = linecache.getlines(filenam
py3study
2020/01/13
4.1K0
一种“很神奇”的“隐藏”单元格的方法
Excel中真的有很多“秘密”,只要你平时留心,或者有时间探寻,总会找到一些让人感到惊奇的操作或行为。这不,复制并粘贴合并单元格格式竟然能够“隐藏”单元格。
fanjy
2023/09/21
3140
一种“很神奇”的“隐藏”单元格的方法
SQL中的行转列和列转行
SQL是IT行业很多岗位都要求具备的一项能力,对于数据岗位而言更是如此,甚至说扎实的SQL基础也往往是入职这些岗位的必备技能。而在SQL面试中,一道出镜频率很高的题目就是行转列和列转行的问题,可以说这也是一道经典的SQL题目,本文就这一问题做以介绍分享。
luanhz
2021/06/25
7.5K0
Excel快速调整单元格行高和列宽
今天给同事编辑公众号文章,有一大篇表格在word中,直接从word中复制到公众号的话,格式会有一定程度的错位。 于是先粘贴到excel中处理,但到excel中行高和列宽默认都很不合适。
Alfred Zhao
2022/11/21
1.2K0
Excel快速调整单元格行高和列宽
SQL 中的行转列和列转行
行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 的运算符PIVOT来实现。用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的SELECT…CASE 语句中所指定的语法更简单、更具可读性。下面我们通过几个简单的例子来介绍一下列转行、行转列问题。
玖柒的小窝
2021/11/08
5.9K0
SQL 中的行转列和列转行
SQL 找出分组中具有极值的行
你可能也遇到过这种需求:找出每个部门入职最早的员工的信息;获取每个科目最高分的学生信息;获取用户最近一次的完整登录信息。
白日梦想家
2020/07/20
1.9K0
SQL 找出分组中具有极值的行
五大方法添加条件列-python类比excel中的lookup
这是一个excel学习中很经典的案例,先构造评级参数表,然后直接用lookup匹配就可以了,具体不在这讲了,今天讲一下用python怎么实现该功能,总共五种(三大类:映射+numpy+pandas分箱)方法,提前预告下,最后一种数据分箱是与excel 中的 lookup最像的
诡途
2022/01/07
2K0
精通Excel数组公式026:你弄清楚大型数组公式是怎么工作的吗?
在本系列中,大部分内容都是在阐述特定数组公式如何工作的逻辑,但是假设你有一个大型的数组公式,却不知道它是如何工作的,你该怎么办?你已经学到了许多技术,弄清楚为什么一个公式正在做它该做的事。
fanjy
2021/03/26
2.4K0
精通Excel数组公式026:你弄清楚大型数组公式是怎么工作的吗?
点击加载更多

相似问题

计算特定行id的非空列的数量(查询)

32

如何删除特定列中具有“非空值”的所有行?

117

有没有一种方法可以遍历列中特定颜色的单元格?

117

有没有一种方法可以根据一列的条件提取行?

116

在具有非空单元格条件的数据帧中创建新列

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档