Discord.py-服务器静音用户

时间:2019-11-11 17:24:15

标签: python discord.py

我正在使用discord.py,但未使用命令,因此无意进行更改。为了解释机器人的目标,我将使用一个小方案:

  1. 服务器成员发送如下消息:£Start @ user#0001
  2. 受查验的用户使服务器静音(没有人可以在任何语音聊天中听到他的声音)
  3. 10秒过去
  4. 用户取消静音
  5. 1分钟通过
  6. 用户被永久静音,等等……

我知道这是一个Troll机器人。但是我们需要在某个时候玩得开心...

我已经做了最大的一部分,但是在使用户静音方面遇到了麻烦。

# IMPORT
import discord
import time

# VARIABLES
token = "sorry but no"
client = discord.Client()

# CODE
@client.event
async def on_message(message):
    start = False

    # CODE
    if message.content.startswith("£Start <@!"):
        # Extract id from message
        message_content = message.content
        user_id = message_content.replace("£Start <@!", "")
        user_id = user_id.replace(">", "")

        rep_message = message
        await message.delete()
        start = True
        user_obj = await rep_message.guild.fetch_member(user_id)

        if str(user_obj.status) != "online" and start is True:  # if user is online and start is True:
            # loop
            while start:
                # NEED HELP HERE >> server mute = True
                time.sleep(10)
                # NEED HELP HERE >> server mute = False
                time.sleep(30)
        else:
            return
    else:
        return

client.run(token)

我希望在需要帮助的地方很清楚。

1 个答案:

答案 0 :(得分:1)

使用Member.edit传递public registerThemeDependentContentLoader(loader:()=>Observable<SafeHtml>):Observable<SafeHtml>{ let observer = new Subject<SafeHtml>(); const loaderWrapper = () => { loader().subscribe((svg) => { observer.next(svg); }, (err) => { observer.error(err); }); } this.contentLoaderRegistry.push(loaderWrapper); return observer; }

mute=True

您还应该使用await user_obj.edit(mute=True) 睡觉,以避免阻塞事件循环