Python 不响应命令的不和谐机器人
A Python discord bot not responding to a command
我尝试制作一个不和谐的机器人并偶然发现了一个问题,该机器人不响应命令而且我不知道哪里出了问题。
这是我的代码
import discord
from discord.ext import commands
class MyClient(discord.Client):
async def on_ready(self):
print('Logged on as {0}!'.format(self.user))
await client.change_presence(activity=discord.Game(name="Python"))
async def on_message(self, message):
print('Message from {0.author}: {0.content}'.format(message))
await bot.process_commands(message)
client = MyClient()
client.run("Token Here")
bot = commands.Bot(command_prefix='!')
@bot.command()
async def test(ctx):
await ctx.send("Sup")
您目前正在混合 discord.Client
和 commands.bot
。
Discord.py 提供了多种方法来创建彼此不兼容的机器人。
此外,client.run
正在阻塞,应该在脚本的末尾。!
import discord
from discord.ext import commands
class MyClient(commands.Bot):
async def on_ready(self):
print('Logged on as {0}!'.format(self.user))
await client.change_presence(activity=discord.Game(name="Python"))
async def on_message(self, message):
print('Message from {0.author}: {0.content}'.format(message))
await self.process_commands(message)
client = MyClient(command_prefix='!')
@client.command()
async def test(ctx):
await ctx.send("Sup")
client.run("...")
请注意,您没有义务提交 class 图书馆提供的 commands.Bot
class。
这是另一个不使用 subclassing 的例子:
import discord
from discord.ext import commands
client = commands.Bot(command_prefix='!')
@client.event
async def on_ready():
print('Logged on as {0}!'.format(client.user))
await client.change_presence(activity=discord.Game(name="Python"))
@client.event
async def on_message(message):
print('Message from {0.author}: {0.content}'.format(message))
await client.process_commands(message)
@client.command()
async def test(ctx):
await ctx.send("Sup")
client.run("...")
如果您刚开始学习 dpy,使用第二种方法可能会有所帮助,并且在您没有很多命令时也可以使用。
但是,对于更大的项目,第一种方法将有助于通过对命令和事件使用齿轮来组织您的机器人。
我尝试制作一个不和谐的机器人并偶然发现了一个问题,该机器人不响应命令而且我不知道哪里出了问题。 这是我的代码
import discord
from discord.ext import commands
class MyClient(discord.Client):
async def on_ready(self):
print('Logged on as {0}!'.format(self.user))
await client.change_presence(activity=discord.Game(name="Python"))
async def on_message(self, message):
print('Message from {0.author}: {0.content}'.format(message))
await bot.process_commands(message)
client = MyClient()
client.run("Token Here")
bot = commands.Bot(command_prefix='!')
@bot.command()
async def test(ctx):
await ctx.send("Sup")
您目前正在混合 discord.Client
和 commands.bot
。
Discord.py 提供了多种方法来创建彼此不兼容的机器人。
此外,client.run
正在阻塞,应该在脚本的末尾。!
import discord
from discord.ext import commands
class MyClient(commands.Bot):
async def on_ready(self):
print('Logged on as {0}!'.format(self.user))
await client.change_presence(activity=discord.Game(name="Python"))
async def on_message(self, message):
print('Message from {0.author}: {0.content}'.format(message))
await self.process_commands(message)
client = MyClient(command_prefix='!')
@client.command()
async def test(ctx):
await ctx.send("Sup")
client.run("...")
请注意,您没有义务提交 class 图书馆提供的 commands.Bot
class。
这是另一个不使用 subclassing 的例子:
import discord
from discord.ext import commands
client = commands.Bot(command_prefix='!')
@client.event
async def on_ready():
print('Logged on as {0}!'.format(client.user))
await client.change_presence(activity=discord.Game(name="Python"))
@client.event
async def on_message(message):
print('Message from {0.author}: {0.content}'.format(message))
await client.process_commands(message)
@client.command()
async def test(ctx):
await ctx.send("Sup")
client.run("...")
如果您刚开始学习 dpy,使用第二种方法可能会有所帮助,并且在您没有很多命令时也可以使用。 但是,对于更大的项目,第一种方法将有助于通过对命令和事件使用齿轮来组织您的机器人。