Захотел использовать в своем боте класс, но он выдает ошибку: AttributeError: 'Guild' object has no attribute 'guild' Не совсем понимаю из за чего такое, вот код: Код import configparser import discord from discord.ext import commands config = configparser.ConfigParser() config.read("config.ini", encoding='utf-8') bot = commands.Bot(command_prefix=config["Config"]["prefix"], intents=discord.Intents.all()) #удаление стандартной команды help bot.remove_command('help') class NewYear: async def __init__(self, guild): self.guild = guild async def ny_start(self): #изменение названия сервера guild_name = self.guild.name try: await self.guild.guild.edit(name=f'{guild_name}') except: print('Нет прав для изменения названия сервера') await self.guild.owner.send('Эй, бот не имеет прав.\n Вы должны выдать права "Управлять каналами","Управлять никнеймами","Управлять сервером","Управлять сообщениями" и запустить команду .start') return members = self.guild.members #перебор участников и установка ника for member in members: raw_name = member.name name = raw_name.replace("","") await member.edit(name=f'{name}', reason='Новый год ') #назначение прав для канала overwrites = { self.guild.default_role: discord.PermissionOverwrite(connect=False), self.guild.owner: discord.PermissionOverwrite(connect=True) } await self.guild.create_voice_channel('Новый год ', overwrites=overwrites, position=0) return async def ny_reset(self): #то же самое, но в обратном направлении #изменение названия сервера guild_name = self.guild.name await self.guild.edit(name=guild_name.replace("","")) members = self.guild.members #перебор участников и сброс ника for member in members: name = member.name await member.edit(name=name.replace("",""), reason='Конец нового года') #удаление канала "Новый год " for voice in self.guild.voice_channels: if voice.name == 'Новый год ': await voice.delete() @bot.event async def on_ready(): print("Запустился под", bot.user) #установка статуста(Играет в {игра}) await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.playing, name=config["Config"]["activity"])) @bot.event async def on_guild_join(guild): await NewYear.ny_start(guild) @bot.command(aliases=['помощь']) async def help(ctx): await ctx.message.delete() embed=discord.Embed(title="christmas-tree-in-discord", url="https://github.com/Shandeika/christmas-tree-in-discord", description="При входе на сервер проходится по каждому пользователю и добавляет ему перед ником и после. Украсит ваш сервер к новому году.") embed.set_author(name="Shandy", url="https://vk.com/id0", icon_url="https://images-ext-1.discordapp.net/external/Nifqk3jVLvmFBCoVz1hauEOemI9X2MJPAGByFf5xpBk/%3Fsize%3D512/https/cdn.discordapp.com/avatars/335464992079872000/9c00b41b1efbc4fd02dce40ff5469bc0.png") embed.set_image(url='https://media.discordapp.net/attachments/680742104187797606/789168605961912322/cristmas_tree_bot.png') embed.set_footer(text="Copyright © 2019–2020 Shandy developer agency All Rights Reserved. © 2020") await ctx.channel.send(embed=embed) @bot.command(aliases=['старт']) @commands.has_guild_permissions(administrator=True) async def start(ctx): await ctx.message.delete() await ctx.channel.send('Запущен процесс "новогодизации" сервера, ожидайте, пожалуйста.\nЭтот процесс может длиться достаточно долго.') await NewYear.ny_start(ctx.guild) await ctx.channel.send('Успешно!') @bot.command(aliases=['сброс']) @commands.has_guild_permissions(administrator=True) async def reset(ctx): await ctx.message.delete() await ctx.channel.send('Запущен процесс сброса изменений, ожидайте, пожалуйста.\nЭтот процесс может длиться достаточно долго.') await NewYear.ny_reset(ctx.guild) await ctx.channel.send('Успешно!') bot.run(config["Config"]["token"]) Код import configparser import discord from discord.ext import commands config = configparser.ConfigParser() config.read("config.ini", encoding='utf-8') bot = commands.Bot(command_prefix=config["Config"]["prefix"], intents=discord.Intents.all()) #удаление стандартной команды help bot.remove_command('help') class NewYear: async def __init__(self, guild): self.guild = guild async def ny_start(self): #изменение названия сервера guild_name = self.guild.name try: await self.guild.guild.edit(name=f'{guild_name}') except: print('Нет прав для изменения названия сервера') await self.guild.owner.send('Эй, бот не имеет прав.\n Вы должны выдать права "Управлять каналами","Управлять никнеймами","Управлять сервером","Управлять сообщениями" и запустить команду .start') return members = self.guild.members #перебор участников и установка ника for member in members: raw_name = member.name name = raw_name.replace("","") await member.edit(name=f'{name}', reason='Новый год ') #назначение прав для канала overwrites = { self.guild.default_role: discord.PermissionOverwrite(connect=False), self.guild.owner: discord.PermissionOverwrite(connect=True) } await self.guild.create_voice_channel('Новый год ', overwrites=overwrites, position=0) return async def ny_reset(self): #то же самое, но в обратном направлении #изменение названия сервера guild_name = self.guild.name await self.guild.edit(name=guild_name.replace("","")) members = self.guild.members #перебор участников и сброс ника for member in members: name = member.name await member.edit(name=name.replace("",""), reason='Конец нового года') #удаление канала "Новый год " for voice in self.guild.voice_channels: if voice.name == 'Новый год ': await voice.delete() @bot.event async def on_ready(): print("Запустился под", bot.user) #установка статуста(Играет в {игра}) await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.playing, name=config["Config"]["activity"])) @bot.event async def on_guild_join(guild): await NewYear.ny_start(guild) @bot.command(aliases=['помощь']) async def help(ctx): await ctx.message.delete() embed=discord.Embed(title="christmas-tree-in-discord", url="https://github.com/Shandeika/christmas-tree-in-discord", description="При входе на сервер проходится по каждому пользователю и добавляет ему перед ником и после. Украсит ваш сервер к новому году.") embed.set_author(name="Shandy", url="https://vk.com/id0", icon_url="https://images-ext-1.discordapp.net/external/Nifqk3jVLvmFBCoVz1hauEOemI9X2MJPAGByFf5xpBk/%3Fsize%3D512/https/cdn.discordapp.com/avatars/335464992079872000/9c00b41b1efbc4fd02dce40ff5469bc0.png") embed.set_image(url='https://media.discordapp.net/attachments/680742104187797606/789168605961912322/cristmas_tree_bot.png') embed.set_footer(text="Copyright © 2019–2020 Shandy developer agency All Rights Reserved. © 2020") await ctx.channel.send(embed=embed) @bot.command(aliases=['старт']) @commands.has_guild_permissions(administrator=True) async def start(ctx): await ctx.message.delete() await ctx.channel.send('Запущен процесс "новогодизации" сервера, ожидайте, пожалуйста.\nЭтот процесс может длиться достаточно долго.') await NewYear.ny_start(ctx.guild) await ctx.channel.send('Успешно!') @bot.command(aliases=['сброс']) @commands.has_guild_permissions(administrator=True) async def reset(ctx): await ctx.message.delete() await ctx.channel.send('Запущен процесс сброса изменений, ожидайте, пожалуйста.\nЭтот процесс может длиться достаточно долго.') await NewYear.ny_reset(ctx.guild) await ctx.channel.send('Успешно!') bot.run(config["Config"]["token"]) Если вместо self.guild.edit писать self.edit все начинает работать, но VSCode показывает ошибку: Как быть?
ошибку скрином дай --- Сообщение объединено с предыдущим 18 дек 2020 ты здесь передаёшь guild, хотя в атрибутах его не указал + у тебя не используется конструктор
Pcholken, async def __init__(self, guild): self.guild = guild Python async def __init__(self, guild): self.guild = guild Это разве не он?