【发布时间】:2021-07-22 20:06:42
【问题描述】:
感谢之前帮助我回答最后一个问题的人 我想要做的是为一个函数创建一个不同的文件,当你输入“!创建”+(我希望频道的名称)时,它会创建一个具有指定名称的新频道,我希望该文件能够在主频道回调
代码 1:
import os
import discord
import createchannel
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
commands = {
'$Hello' : 'Hello! write "$Help" to find more about the CazB0T ',
'$Help' : 'Hi again! The CazB0T is still in beta stages...the only 5 commands are $Hello, $Help, $Test1, $Test2, and $Test3',
'$Test1' : 'This is Test1',
'$Test2' : 'This is Test2',
'$Test3' : 'This is Test3'
}
createchannel()
my_secret = os.environ['token']
@client.event
async def on_message(message):
if message.author == client.user:
return
for key, value in commands.items():
if message.content.startswith(key):
await message.channel.send(value)
client.run(os.getenv('token'))
代码 2:
import discord
import os
client = discord.Client()
@client.event
async def on_chancreate(channel):
channelname = input()
if channel.content == "!create" + channelname:
channel = await channel.create_text_channel(channelname)
client.run(os.getenv('token'))
【问题讨论】:
-
1.我建议为每个命令使用单独的函数 - 可以使用适当的装饰器 - 而不是听每条消息。 2. 即使你在 on_message 中处理它们,这也不是搜索 dict 的最佳方式——你是线性的,O(n),而 dict 键可以在 O(1) 中搜索。 3. Bot 无法处理
input- 这是控制台功能。 4."!create" + channelname之间不会有空格。 -
如何使用命令创建具有指定名称的新频道?