Discord.py 如何从不和谐消息中读取 int 并将其作为变量发送到嵌入中
Posted
技术标签:
【中文标题】Discord.py 如何从不和谐消息中读取 int 并将其作为变量发送到嵌入中【英文标题】:Discord.py how to read a int from a discord message and send it as a variable in the embed 【发布时间】:2020-12-13 17:38:13 【问题描述】:所以我正在制作一个机器人,它等待用户的 int 输入,然后更改嵌入描述中的数字。我当前的代码给了我不和谐的错误:错误:命令引发异常:TypeError:只能将str(不是“int”)连接到str
import discord
from discord.ext import commands, tasks
import os
import B
import wargaming
wot = wargaming.WoT('demo', region='na', language='en')
key=os.getenv('key')#just some things you might want inside the bot here.
wkey=os.getenv('wkey')
client = discord.Client()#declaring what the client is.
client = commands.Bot(command_prefix = ';;')
client.remove_command('help')
@client.event
async def on_ready():
await client.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name="Skirmish Tactics"))
print("Bot is ready!")
def check(ctx):
return lambda m: m.author == ctx.author and m.channel == ctx.channel
async def get_input_of_type(func, ctx):
while True:
try:
msg = await client.wait_for('message', check=check(ctx))
return func(msg.content)
except ValueError:
continue
@client.command()
async def skirmishstandings(ctx):
await ctx.send('Enter skirmish tier(6,8,10):')
tier = await get_input_of_type(int, ctx)
position = discord.Embed(title="Irish Rouge Ecelon's stronghold position", description="IRE's stronghold positon for tier" + int(tier) + "skirmishes")
await ctx.send(embed=position)
@client.event
async def on_command_error(ctx, error):
await ctx.send(f'Error: error')
我查看了堆栈溢出并更改了很多代码,但不幸的是没有成功。我想我会问我自己的问题。任何帮助表示赞赏!谢谢!
【问题讨论】:
这能回答你的问题吗? How can I concatenate str and int objects? 【参考方案1】:试试这个。
description=f"IRE's stronghold positon for tier tier skirmishes"
您正在尝试连接两个不同类型的对象。因此错误。因此,不要使用int(tier)
,而应使用str(tier)
来获得所需的输出。
【讨论】:
好吧,我以为我已经尝试过了,但我想我在定义 get_input_of_type 命令后没有尝试过。不过还是谢谢 效果很好以上是关于Discord.py 如何从不和谐消息中读取 int 并将其作为变量发送到嵌入中的主要内容,如果未能解决你的问题,请参考以下文章
discord.py 你能从 discord 标签中获取用户对象吗?
如何让不和谐机器人使用 discord.py 向消息添加表情符号反应?