我现在正在创建一个骰子机器人,并希望创建一个灵活的命令。例如,“!1d6”(!XdY)。 另外,我想创建一个命令,例如'![GAMENAME] [COMMAND]'。例如,“!Cthulhu CBR(50,20)”(由于游戏名称很多,因此很难手动添加。)
但都相信可以用相同的方式实现,但不知道采用哪种方式。 我知道如何添加on_message,但是我不知道如何使用@ client.command()添加。
请告诉我。
[我使用了Google翻译。]
答案 0 :(得分:0)
import random
@client.event
async def on_message(message):
# Takes in format dice!xdy i.e dice!3d7 rolls 3 d7 dice
if (message.content.startswith == 'dice!'):
await client.send_message(message.channel, 'Rolling...')
diceArr = message.content[5:].split("d")
totRolled = 0
for x in range(int(diceArr[0])):
totRolled = random.randrange(1, int(diceArr[1]), 1) + totRolled
await client.send_message(message.channel, 'Rolled', totRolled)
这应该做到。虽然我的Linux笔记本电脑已经死了,但我尚未对其进行测试
非Discord版本:
import random
# Takes in format dice!xdy i.e dice!3d7 rolls 3 d7 dice
def roll(stri):
print('Rolling...')
diceArr = stri[5:].split("d")
totRolled = 0
for x in range(int(diceArr[0])):
totRolled = random.randrange(1, int(diceArr[1]), 1) + totRolled
print('Rolled', str(totRolled))
roll("dice!3d7")