检查文本频道是否是私有的? JAVA JDA DV8TION
Check if text channel is private? JAVA JDA DV8TION
我认为这是一个非常简单的问题,答案甚至更简单,但我真的无法确定事件发生的文本通道是否是私有的。无论如何,这是我的一段代码:
@Override
public void onMessageReceived(MessageReceivedEvent e)
{
if (e.isFromType(ChannelType.PRIVATE)) {
System.out.println("locked channel");
} else {
System.out.println("not locked");
}
}
我想让它知道我输入的频道是否是私有的,并且该代码总是显示“未锁定”。
我假设您想知道收到的消息是否来自直接消息。 (私人频道基本上是直接消息)您可能想尝试重写 onPrivateMessageReceived() 方法。
@Override
public void onPrivateMessageReceived(final PrivateMessageReceivedEvent event) {
// your code here handling DM messages
}
触发此方法时,它只会处理收到的直接消息。
所以我现在找到了一种检测私人频道的方法。只是将此发送给遇到我的问题的其他人
@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");
}
}
我认为这是一个非常简单的问题,答案甚至更简单,但我真的无法确定事件发生的文本通道是否是私有的。无论如何,这是我的一段代码:
@Override
public void onMessageReceived(MessageReceivedEvent e)
{
if (e.isFromType(ChannelType.PRIVATE)) {
System.out.println("locked channel");
} else {
System.out.println("not locked");
}
}
我想让它知道我输入的频道是否是私有的,并且该代码总是显示“未锁定”。
我假设您想知道收到的消息是否来自直接消息。 (私人频道基本上是直接消息)您可能想尝试重写 onPrivateMessageReceived() 方法。
@Override
public void onPrivateMessageReceived(final PrivateMessageReceivedEvent event) {
// your code here handling DM messages
}
触发此方法时,它只会处理收到的直接消息。
所以我现在找到了一种检测私人频道的方法。只是将此发送给遇到我的问题的其他人
@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");
}
}