用户名多空格,命令多参数

时间:2020-05-14 02:03:18

标签: python discord.py

我要执行的操作是使用此特定命令,但是当我尝试使成员中带有空格的成员静音时,例如#!/usr/bin/env python import os def isActive(daemon): command = "systemctl is-active " + daemon + " > tmp" os.system(command) with open('tmp') as tmp: tmp = tmp.read() if "active" in tmp: os.remove('tmp') return 1 return 0 sshd = "sshd" print(isActive(sshd)) ,它只是不起作用

t!mute sweaty dolphin dude 1 reason...

我也尝试过

@client.command()
@has_permissions(kick_members=True)
@commands.has_role('Staff')
async def mute(ctx,member:discord.Member,mute_time:int, *,reason:str):
     #My code....

它运作良好,但是我真正需要的是首先要使用的成员名称,然后是时间和结尾原因。

2 个答案:

答案 0 :(得分:1)

discord.Message具有一个名为mentions的属性,该属性是给定消息中提到的成员的列表。

因此,您可以做的是从函数的参数中删除与该成员有关的部分,即使其成为async def mute(ctx, mute_time: int, *, reason: str),并在函数的代码中声明muted_user = ctx.message.mentions[0]。只要您确保在使用Mutate命令时提及用户,此方法便会起作用。您甚至可以将其扩展为一次使多个人静音(即消息中所有提及的内容)。

答案 1 :(得分:1)

在编写带有空格的成员姓名时,请在其周围加上引号,例如:

Predicted: 0.5030623078346252 Label: 1.0 Predicted: 0.5030624270439148 Label: 0.0 Predicted: 0.5030624270439148 Label: 1.0 Predicted: 0.5030625462532043 Label: 0.0 Predicted: 0.5030625462532043 Label: 1.0 Predicted: 0.5030626654624939 Label: 0.0 Predicted: 0.5030626058578491 Label: 1.0 Predicted: 0.5030627250671387 Label: 0.0 Predicted: 0.5030626654624939 Label: 1.0 Predicted: 0.5030627846717834 Label: 0.0 Predicted: 0.5030627250671387 Label: 1.0 Predicted: 0.5030627846717834 Label: 0.0 Predicted: 0.5030627250671387 Label: 1.0 Predicted: 0.5030628442764282 Label: 0.0 Predicted: 0.5030627846717834 Label: 1.0 Predicted: 0.5030628442764282 Label: 0.0

您可能想在其中添加空格的所有参数也是如此。