首页 > 解决方案 > MuteSetup 命令未设置有效的静音命令

问题描述

我最近一直在尝试制作静音设置命令,它会创建一个静音角色,但是当您将某人静音时,他们仍然可以说话。有什么帮助吗?

我的代码:

if (raw.replace("S!", "").equals("mutesetup")) {
if (event.getMember().hasPermission(Permission.MANAGE_PERMISSIONS, Permission.MANAGE_ROLES)) {
if (true) {
event.getChannel().sendMessage("Sorry but this command is currently being fixed...").queue();
return;
}
event.getChannel().sendMessage("Starting setup...").queue();
event.getGuild().createRole().setName("Muted").setPermissions(Permission.EMPTY_PERMISSIONS).queue();
    
event.getChannel().sendMessage("Mute role successfully created!").queue();
} else {
event.getChannel().sendMessage("Sorry but you must have the `Manage Permissions` and `Manage Roles` permissions to use this command").queue();
}
}

标签: javadiscorddiscord-jda

解决方案


首先,下次可能尝试格式化您的代码,以使其清晰。

但是回到您的问题,您当然还必须调整新创建角色的权限(因为名称与权限无关)。原则上,您只需拒绝Speak权限,这样 Discord 也可以了解用户在您新创建的角色中拥有什么,是否允许他们说话或是否可以写消息等等。

您只需在创建角色后将以下内容添加到您的代码中,这样您就可以告诉 Discord 用户可以或不能对您的角色做什么(如上所述)

如果您添加以下代码,具有您角色的用户将无法再说话,也不会发送更多消息:

category.createPermissionOverride(role).setDeny(Permission.VOICE_SPEAK, Permission.MESSAGE_WRITE).queue();

当然,您可以对所有其他权限执行相同操作。Deny (NO)的反义词是Grant (Yes)。最好通读本节以更好地了解 Discord 的权限系统:如何设置权限?


推荐阅读