Comments (4)
Hey, leider konnte ich den Bug mit dem oben angegebenen Code und einer normalen main.py
Datei nicht reproduzieren. Könntest du einen minimalen Code bereitstellen, bei dem der Error auftritt?
from ezcord.
Ergebniss Nachforschungen bezüglich des on_ready event error
Wir konnten den Fehler auf die Annoucenment
Klasse zurück verfolgen. Hier haben wir die Config
Klasse und Announcement
Klasse verglichen und haben einen unterschied gefunden.
config.py
import discord
from discord.ext import commands
from discord.commands import SlashCommandGroup
from LogManager import LogManager
from configManager import ConfigManager
class Config(commands.Cog):
def __init__(self, BOT):
self.BOT = BOT
self.LogManager = LogManager()
config = SlashCommandGroup("config")
@config.command()
@commands.guild_only()
@commands.is_owner()
async def view(self, ctx):
await ctx.respond("comming soon")
def setup(BOT):
BOT.add_cog(Config(BOT))
announcement.py
import discord
from discord.ext import commands
from discord.commands import SlashCommandGroup
from LogManager import LogManager
from configManager import ConfigManager
class Announcement(commands.Cog):
def __init__(self, BOT):
self.BOT = BOT
self.LogManager = LogManager()
group = SlashCommandGroup(name="announcement", description="")
@group.command()
@commands.guild_only()
async def view(self, ctx: discord.ApplicationContext):
if not ConfigManager.checkIfUserHasPermissions(guildid=ctx.guild.id, rank='admin', user_roles=ctx.author.roles):
await ctx.respond(f'You dont have permissions to use this command!')
return
CONFIG = ConfigManager.GET_GuildConfig(ctx.guild.id)
channel = commands.Bot.get_channel(self.BOT, CONFIG['services']['announcement']['channel'])
await ctx.respond(f'Announcement Channel : {channel.mention}')
def setup(BOT):
BOT.add_cog(Announcement(BOT))
Hier ist uns aufgefallen das der Variablen name für die SlashCommandGroup
in der config.py
gleich mit dem namen der Gruppe ist allerdings dies nicht in der announcement.py
zu finden ist. Hier wurde die Variable der SlashCommandGroup
anders als der name der Gruppe genannt. In diesem fall group
. Wir haben als versuch die Variable umbenannt zu announcement
also gleich wie der name der Gruppe. Darauf hin ist der Fehler verschwunden.
Anscheinend wird der Veriablen name abgerufen und nicht der SlashCommandGroup
name der Gruppe.
Sollte mann den Fehler haben muss man also einfach nur die Variable und den Gruppen namen gleich setzen.
neue announcement.py
import discord
from discord.ext import commands
from discord.commands import SlashCommandGroup
from LogManager import LogManager
from configManager import ConfigManager
class Announcement(commands.Cog):
def __init__(self, BOT):
self.BOT = BOT
self.LogManager = LogManager()
announcement = SlashCommandGroup(name="announcement", description="")
@announcement.command()
@commands.guild_only()
async def view(self, ctx: discord.ApplicationContext):
if not ConfigManager.checkIfUserHasPermissions(guildid=ctx.guild.id, rank='admin', user_roles=ctx.author.roles):
await ctx.respond(f'You dont have permissions to use this command!')
return
CONFIG = ConfigManager.GET_GuildConfig(ctx.guild.id)
channel = commands.Bot.get_channel(self.BOT, CONFIG['services']['announcement']['channel'])
await ctx.respond(f'Announcement Channel : {channel.mention}')
def setup(BOT):
BOT.add_cog(Announcement(BOT))
from ezcord.
Hey, danke für die Analyse! Der Error lag, wie ihr schon richtig erkannt habt, an dem Namen group
. Grundsätzlich dürfen die Variablen zwar anders heißen als die Gruppe, jedoch gibt es bei ezcord.Cog
auch ein group
Attribut, um mehrere Cogs zu gruppieren. Der Error ist entstanden, weil EzCord das group
Attribut der SlashCommandGroup
fälschlicherweise als Cog-Attribut erkannt hat.
from ezcord.
Ahh gut zu wissen. evtl. sollte man das in die Dokumentation hinzufügen.
from ezcord.
Related Issues (10)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ezcord.