我创建了一个全局聊天机器人,但我遇到了静音命令的问题
#!/bin/sh
function screenIsLocked { [ "$(/usr/libexec/PlistBuddy -c "print :IOConsoleUsers:0:CGSSessionScreenIsLocked" /dev/stdin 2>/dev/null <<< "$(ioreg -n Root -d1 -a)")" = "true" ] && return 0 || return 1; }
function screenIsUnlocked { [ "$(/usr/libexec/PlistBuddy -c "print :IOConsoleUsers:0:CGSSessionScreenIsLocked" /dev/stdin 2>/dev/null <<< "$(ioreg -n Root -d1 -a)")" != "true" ] && return 0 || return 1; }
if screenIsLocked; then
echo "Screen locked"
fi
if screenIsUnlocked; then
echo "Screen unlocked"
fi
if ! screenIsLocked; then
echo "Screen unlocked (inverse logic)"
fi
if ! screenIsUnlocked; then
echo "Screen locked (inverse logic)"
fi
这是代码,重点是如果你想让某人静音,用户仍然可以写,我不知道如何解决
答案 0 :(得分:1)
你从来没有真正让这个人静音。您只需将其放入数据库,但您还必须告诉 Discord 该用户已被静音。您有两种选择:
您可以在服务器的每个频道中设置明确的权限以将该人静音。这种方法的问题在于,如果您在一个人被静音的情况下创建一个新频道,他们仍然可以在该频道中写作。
您可以创建一个允许管理员设置静音角色的配置条目。当您执行静音命令时,此角色将被添加到用户。这样做的好处是,当创建新频道时,它们仍然处于静音状态。它还会使取消静音命令更容易。