检查文本频道是不是为私人频道? JAVA JDA DV8TION
Posted
技术标签:
【中文标题】检查文本频道是不是为私人频道? JAVA JDA DV8TION【英文标题】:Check if text channel is private? JAVA JDA DV8TION检查文本频道是否为私人频道? JAVA JDA DV8TION 【发布时间】:2021-02-19 16:02:00 【问题描述】:我认为这是一个非常简单的问题,答案更简单,但我真的无法确定发生事件的文本频道是否是私人的。无论如何,这是我的一段代码:
@Override
public void onMessageReceived(MessageReceivedEvent e)
if (e.isFromType(ChannelType.PRIVATE))
System.out.println("locked channel");
else
System.out.println("not locked");
我希望它吐出我输入的频道是否为私人频道,并且该代码始终显示其“未锁定”。
【问题讨论】:
【参考方案1】:我假设您想知道收到的消息是否来自直接消息。 (私人频道基本上是直接消息)您可能想尝试覆盖 onPrivateMessageReceived() 方法。
@Override
public void onPrivateMessageReceived(final PrivateMessageReceivedEvent event)
// your code here handling DM messages
当这个方法被触发时,它只会处理收到的直接消息。
【讨论】:
【参考方案2】:所以我现在找到了一种检测私人频道的方法。只是将这个发送到这里给遇到我问题的其他人
@Override
public void onMessageReceived(MessageReceivedEvent e)
PermissionOverride po = e.getTextChannel().getPermissionOverride((IPermissionHolder) e.getGuild().getRolesByName("@everyone", true).toArray() [0]);
if (po != null && po.getDenied().contains(Permission.MESSAGE_READ))
//System.out.println("locked channel");
【讨论】:
以上是关于检查文本频道是不是为私人频道? JAVA JDA DV8TION的主要内容,如果未能解决你的问题,请参考以下文章