我已经开始为我的机器人设置一个调平系统,并一直在努力实现一个消息的水平上升。但是,因为我创建的函数不是一个命令,我认为我不能将上下文传递给它,这会导致问题。在
由于没有更好的解决方案,我把它放到我的函数中,该函数检查exp并与某个级别相匹配,结果是生成用户级别的副本,然后再与更新的版本进行比较,以查看是否发生了升级。这是可行的,但是我唯一的问题是不能发送“升级”消息。在
async def levelcheck(user):
global userlvl
global userlvlc
channel = discord.Object(id="")
# copying the userlevel BEFORE update
try:
userlvlc = userlvl
except NameError as e:
print(e)
with open('userexp.json', 'r') as fp:
userexp = json.load(fp)
# finding out level based on exp
for x in range(0,len(levelcaps)):
if userexp[str(user)] <= levelcaps[x]:
userlvl = x
try:
if userlvlc < userlvl:
await ctx.send('You levelled up --> {}'.format(userlvl))
except NameError as e:
print(e)
#
return userlvl
正如您可以清楚地看到的,这不是一个很好的命令,但肯定是有效的。我开始尝试获取频道id,但发现我不知道如何获取当前频道的上下文。有没有办法在没有上下文的情况下将消息发送到当前频道,还是需要重新考虑我的方法?在
既然你有一个用户ID,我就提出这个解决方案。在
注意:这是未经测试,但链接应提供信息,使其工作!在
这只是向他们发送个人信息,而不是在服务器上发布。要在服务器中发布,似乎需要交叉引用bot所在的用户所在的服务器,这对我XD来说似乎是太多的工作了
相关问题 更多 >
编程相关推荐