使用 discord.py rewrite 创建即时邀请,似乎无法做到没有错误

Posted

技术标签:

【中文标题】使用 discord.py rewrite 创建即时邀请,似乎无法做到没有错误【英文标题】:Creating instant invite using discord.py rewrite, can't seem to do so without errors 【发布时间】:2019-11-15 08:18:01 【问题描述】:

我正在使用 python 让我的机器人生成即时邀请。 但是,我无法找到和创建即时邀请。 这是我的代码:

from progress.bar import Bar # Only to show a loading bar, all imports are successful.
print("Loading...")
imports = [
    'import os',
    'import sys',
    'import asyncio',
    'import discord',
    'import random',
    'import functools',
    'import time as tm',
    'from discord.ext import commands',
    'from discord.ext.commands import when_mentioned'

]

bar = Bar('', max=len(imports))
for i in range(0, len(imports)):
    exec(str(imports[i]))
    bar.next()
bar.finish()

BOT_PREFIX = "!"
BOT_TOKEN = 'token'
OWNER_ID = int("owner's user id for support")

class Stuff(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.command()
    async def create_invite(self, ctx):
        """- Create instant invite"""
        link = await discord.abc.GuildChannel.create_invite(self, max_age='300')
        await ctx.send("Here is an instant invite to your server: "+link)

当命令运行不和谐时,我得到这个错误:

discord.ext.commands.errors.CommandInvokeError:命令引发异常:AttributeError:“Stuff”对象没有属性“_state”

如何正确生成即时邀请?

【问题讨论】:

【参考方案1】:

尝试使用discord.TextChannel.create_invite()

这样,

@commands.command()
async def create_invite(self, ctx):
    """Create instant invite"""
    link = await ctx.channel.create_invite(max_age = 300)
    await ctx.send("Here is an instant invite to your server: " + link)

【讨论】:

【参考方案2】:

嘿,伙计,这是你的代码

@client.command(pass_context=True)
async def invite(ctx):
  #Creating an invite link
  link = await ctx.channel.create_invite(xkcd=True, max_age = 0, max_uses = 0)
  #max_age = 0 The invite link will never exipre.
  #max_uses = 0 Infinite users can join throught the link.
  #-----------------------------------------------------#

  #-------Embed Time-----#
  em = discord.Embed(title=f"Join The ctx.guild.name Discord Server Now!", url=link, description=f"**ctx.guild.member_count Members** [**JOIN**](link)\n\n**Invite link for ctx.channel.mention is created.**\nNumber of uses: **Infinite**\nLink Expiry Time: **Never**", color=0x303037)
  
  #Embed Footer
  em.set_footer(text=f"Made by </iFreaku?YT>2.0#0908")
  
  #Embed Thumbnail Image
  em.set_thumbnail(url=ctx.guild.icon_url)
  
  #Embed Author
  em.set_author(name="INSTANT SERVER INVITE")
  #-----------------------------------------#
  await ctx.send(f"> link", embed=em)

输出

我想发布一张图片,但我没有太多名声。

转到此链接以查看输出。 https://media.discordapp.net/attachments/887163354123206666/910568231184498718/unknown.png

【讨论】:

以上是关于使用 discord.py rewrite 创建即时邀请,似乎无法做到没有错误的主要内容,如果未能解决你的问题,请参考以下文章

discord.py-rewrite - 使用 PyQt5 的动态 Web 抓取无法正常工作

Discord.py-rewrite wait_for() 我该如何使用?

Twopart 嵌入式 API 消息 Discord.py(branch>rewrite)

使用 Heroku 时如何从 Discord.py 异步更改为重写?

Discord.py channel.connect() 永远不会返回

Discord.py 重写多服务器数据