Я провел несколько примеров того, как сделать Bot-диск Discord Python, и я видел, что client
и bot
используются почти взаимозаменяемо, и я не могу найти, когда вы будете использовать его.
Например:
client = discord.Client()
@client.event
async def on_message(message):
# we do not want the bot to reply to itself
if message.author == client.user:
return
if message.content.startswith('$guess'):
await client.send_message(message.channel, 'Guess a number between 1 to 10')
def guess_check(m):
return m.content.isdigit()
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
client.run('token')
против
bot = commands.Bot(command_prefix='?', description=description)
@bot.event
async def on_ready():
print('Logged in as')
print(bot.user.name)
print(bot.user.id)
print('------')
@bot.command()
async def add(left : int, right : int):
"""Adds two numbers together."""
await bot.say(left + right)
bot.run('token')
Я начинаю думать, что они имеют очень похожие качества и могут делать то же самое, но это личное предпочтение идти с клиентом против бота. Однако у них есть свои различия, когда у клиентов есть on_message
то время как боты ждут prefix command
.
Может кто-то прояснить разницу между client
и bot
?
Просто используйте commands.Bot
.
Bot
- это расширенная версия Client
(это в отношении подкласса). То есть. это расширение Client с включенными командами, таким образом, имя подкаталога ext/commands
.
Класс Bot
наследует все функции Client
, что означает, что все, что вы можете делать с Client
, Bot
может это сделать. Наиболее заметным дополнением стало управление командой (@bot.command()
), тогда как при использовании Client
вам придется вручную работать с обработкой событий. Недостатком Bot
является то, что вам придется изучить дополнительные функции, глядя на примеры или исходные коды, так как расширение команд мало документировано.
Если вы просто хотите, чтобы ваши боты принимали команды и обрабатывали их, было бы намного легче работать с Bot
так как все обработка и предварительная обработка выполняются для вас. Но если вы хотите писать свои собственные ручки и делать сумасшедшие трюки с discord.py, то, во что бы то ни стало, используйте базовый Client
.
В случае, если вы в тупик, чтобы выбрать, я рекомендую вам использовать commands.Bot
с ним намного проще работать, и это в дополнение ко всему, что уже может сделать Client
. И, пожалуйста, помните, что вам не нужны оба.
НЕПРАВИЛЬНО:
client = discord.Client()
bot = commands.Bot(".")
# do stuff with bot
ПРАВИЛЬНЫЙ:
bot = commands.Bot(".")
# do stuff with bot