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/shandeika", 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"])