@bot.event
async def on_message(message):
if message.author != bot.user: # Если автор сообщения НЕ бот.
if {i.lower().translate(str.maketrans('', '', string.punctuation)) for i in message.content.split(' ')} \
.intersection(set(json.load(open('slyhi.json')))) != set():
channel = bot.get_channel(894897187593551892)
await channel.send(f'[Выхваченное Сообщение]:~/// {message.author.mention}: {message.content}')
await bot.process_commands(message)
channels = [1231234234, 1231231234]
if message.channel.id in channels:
do_something()
from_dict()
emb_json = json.load(embed_file)
emb = discord.Embed.from_dict(emb_json)
await ctx.send(embed=emb)
@bot.command()
async def habr(ctx, arg=None):
await ctx.message.delete() # Удаляем наше сообщение.
emb = discord.Embed(title="Хабр", colour=discord.Color.orange()) # Инициализируем эмбед.
emb.add_field(name='Первое поле', value=f'Реально же первое!') # Добавляем поле.
msg = await ctx.send(embed=emb) # Отправляем сообщение и запоминаем что оно такое красивое есть.
await asyncio.sleep(2)
emb = msg.embeds[0] # Выдергиваем с нашего отправленного сообщения эмбед и пересобираем его так, как нужно нам.
for i, item in enumerate(emb.fields): # Перебираем поля в эмбеде. i - индекс(позиция); item - содержание.
if arg: # Если есть аргумент, то добавляем его в наше новое поле.
emb.add_field(name='Второе поле', value=f'{arg}')
else: # Если аргумента нету, то редактируем наше первое поле.
if "Первое поле" in item.name:
emb.set_field_at(index=i, name=item.name, value='Без аргумента? Жаль.', inline=item.inline)
await msg.edit(embed=emb) # Отправляем отредактированное сообщение.
@bot.command(pass_context = True)
@commands.has_permissions(administrator = True)
async def checkuser_user(ctx, arg):
await ctx.channel.send('Please, wait')
# Пребираем все пользователей на сервере.
for guild in bot.guilds:
for member in guild.members:
# Сравниваем введенный ник и ники тех кто есть на сервере, убирая идентификатор из ника "#9999"
if arg == str(member)[0:-5]:
PREFIX = '>'
emb = discord.Embed(title = 'User info')
emb.add_field(name = '{}Bans'.format(PREFIX),value = '0')
emb.add_field(name = '{}Kicks'.format(PREFIX),value = '0')
emb.add_field(name = '{}Warns'.format(PREFIX),value = '1/3')
emb.add_field(name = '{}Ban reason: '.format(PREFIX),value = 'None')
emb.add_field(name = '{}Role history'.format(PREFIX),value = 'Verify.')
await ctx.send(embed = emb)
from fuzzywuzzy import fuzz
@bot.command(pass_context = True)
@commands.has_permissions(administrator = True)
async def checkuser_user(ctx, arg):
await ctx.channel.send('Please, wait')
# Пребираем все пользователей на сервере.
for guild in bot.guilds:
for member in guild.members:
# Сравниваем введенный ник и ники полученные из списка.
if fuzz.partial_ratio(arg, str(member)[0:-5]) > 95: # <- Процент при котором совпадение "успешно".
PREFIX = '>'
emb = discord.Embed(title = 'User info')
emb.add_field(name = '{}Bans'.format(PREFIX),value = '0')
emb.add_field(name = '{}Kicks'.format(PREFIX),value = '0')
emb.add_field(name = '{}Warns'.format(PREFIX),value = '1/3')
emb.add_field(name = '{}Ban reason: '.format(PREFIX),value = 'None')
emb.add_field(name = '{}Role history'.format(PREFIX),value = 'Verify.')
await ctx.send(embed = emb)
bot.get_channel(id_here)
for channel in ctx.guild.channels:
if channel.name == "report":
#Объект канала, который мы будем использовать для отправки сообщения.
channel = bot.get_channel(channel.id)
@bot.command(pass_context=True)
async def report(ctx, *, arg):
emb = discord.Embed(title="REPORT", description=f"От пользователя {ctx.author.mention}", colour=discord.Color.red())
emb.add_field(name="Причина:", value=arg, inline=True)
# Получаем все каналы в нашей гильдии.
for channel in ctx.guild.channels:
if channel.name == "report":
# Объект канала, который мы будем использовать для отправки сообщения.
channel = bot.get_channel(channel.id)
# Отправляем сообщение в нужный нам канал.
await channel.send(embed=emb)
@bot.command()
async def forward(ctx, name_channel=None):
# Получаем id канала по его названию.
for channel in ctx.guild.channels:
if channel.name == name_channel:
channel = bot.get_channel(channel.id)
# Получаем все содержание сообщения и отсылаем его в нужный нам канал.
content = ctx.message.content
await channel.send(content)
@Bot.command(pass_context=True)
@commands.has_permissions(administrator=True)
async def kick(ctx, member: discord.Member, *, reason):
channel = Bot.get_channel(789968921432031272)
#Отправляем сообщение пользователю, до кика с сервера
emb = discord.Embed(title="Вы были кикнуты с нашего замечательного сервера.", description="Приходите еще и получите экстра порцию банов!", colour=discord.Color.blue())
emb.add_field(name='Кикнул вас негодяй:', value=ctx.message.author)
await member.send(embed = emb)
#Теперь можно кикать.
await member.kick( reason = reason)
await ctx.channel.purge(limit=0)
emb = discord.Embed(color=344462)
emb.add_field(name='✅ Kick пользователя', value='Пользователь {} был кикнут!'.format(member.mention))
await channel.send(embed = emb)