def online(data: structures.OnlineStructure): embed = CustomEmbed(title='**Топ по количеству голосов**', author=EmbedAuthor(name='Excalibur-Craft Data', icon_url=images.EX_CRAFT_LOGO), thumbnail_url=images.ONLINE_THUMBNAIL, color=0xdbdbdb) for _player in data.players: embed.add_field(name=f'**{_player.nickname}**', value=_player.online) return embed
def votes(data: structures.VoteStructure): embed = CustomEmbed(title='**Топ по количеству голосов**', author=EmbedAuthor(name='Excalibur-Craft Data', icon_url=images.EX_CRAFT_LOGO), thumbnail_url=images.VOTE_THUMBNAIL, color=0xffb136) for _player in data.players: embed.add_field(name=f'**{_player.place} место**', value=_player.nickname) return embed
def monitoring(data: structures.MonitoringStructure): embed = CustomEmbed(title='**Мониторинг серверов**', author=EmbedAuthor(name='Excalibur-Craft Data', icon_url=images.EX_CRAFT_LOGO), thumbnail_url=images.MONITORING_THUMBNAIL, fields=[ EmbedField(name='**Общий онлайн**', value=f'{data.total_online} игроков') ]) for server in data.servers: embed.add_field(name=f'**{server.name}**', value=f'{server.online} игроков') return embed
def voice_channel_delete(channel: discord.VoiceChannel): return CustomEmbed(title='**Удаление голосового канала**', color=colors.red, fields=[ EmbedField(name='Название:', value=channel.name), EmbedField(name='ID:', value=f'{channel.id}') ])
def category_channel_delete(channel: discord.CategoryChannel): return CustomEmbed(title='**Удаление категории**', color=colors.red, fields=[ EmbedField(name='Название:', value=channel.name), EmbedField(name='ID:', value=f'{channel.id}') ])
def message_edit(message: discord.Message, before_message_content: str, after_message_content: str): member = message.author return CustomEmbed( title='**Изменение сообщения**', thumbnail_url=member.avatar_url, footer=EmbedFooter(text=f'ID: {member.id}'), fields=[ EmbedField( name='Пользователь:', value=f'<@!{member.id}> | {member.name}#{member.discriminator}' ), EmbedField(name='Канал:', value=f'<#{message.channel.id}>'), EmbedField(name='Сообщение:', value=f'[Нажми на меня]({message.jump_url})'), EmbedField(name='Первоначальное сообщение:', value=before_message_content), EmbedField(name='Конечное сообщение:', value=after_message_content), EmbedField(name='Разница:', value=''.join([ li for li in difflib.ndiff(before_message_content, after_message_content) if li[0] != ' ' ])) ])
def text_channel_delete(channel: discord.TextChannel): return CustomEmbed(title='**Удаление текстового канала**', color=colors.red, fields=[ EmbedField(name='Канал:', value=f'<#{channel.id}>'), EmbedField(name='Название:', value=channel.name) ])
def welcome(data: structures.WelcomeStructure): return CustomEmbed( title= f'**Добро пожаловать на Discord-сервер официального клана [BestLife]**', author=EmbedAuthor(name='BestLife Official Clan', icon_url='https://i.ibb.co/YfvrWVZ/image.png'), color=colors.darkseagreen, thumbnail_url=data.thumbnail, image_url=data.image_url, footer=EmbedFooter( text='\nНадеемся, Вы останетесь надолго!', icon_url= 'https://cdn.discordapp.com/emojis/586502453424553985.png?v=1'), fields=[ EmbedField(name=f'**Мои поздравления, {data.name}!**', value=f'Вы {data.members_count}-й участник сервера!'), EmbedField(name='**Общение с другими участниками сервера: **', value=f'<#{channels.COMMUNITY}>'), EmbedField(name='**Speedwagon (клановый бот): **', value=f'<#{channels.SPEEDWAGON}>'), EmbedField(name='**Дискорд конференции официальных кланов:**', value=f'<#{channels.OFFICIAL_CLANS}>'), EmbedField( name='**Ссылка на набор в клан:**', value= '[Нажми на меня](https://forum.excalibur-craft.ru/forum/125-BestLife/)' ), EmbedField(name='**Бессрочное приглашение на наш сервер:**', value='[Нажми на меня](https://discord.gg/ER5Vfmx)') ])
def error(event, *args, **kwargs): return CustomEmbed(title='**Event raised an uncaught exception**', fields=[ EmbedField(name='Event:', value=event), EmbedField(name='Args:', value=f'{args}'), EmbedField(name='Kwargs:', value=f'{kwargs}') ], color=colors.red)
def member_ban(user: discord.User): return CustomEmbed( title='**Пользователь забанен**', color=colors.red, thumbnail_url=user.avatar_url, footer=EmbedFooter(text=f'ID: {user.id}'), fields=[ EmbedField( name='Пользователь:', value=f'<@!{user.id}> | {user.name}#{user.discriminator}') ])
def voice_state_update(member: discord.Member, state: str): return CustomEmbed( title='**Обновление голосового статуса**', thumbnail_url=member.avatar_url, fields=[ EmbedField( name='Пользователь:', value=f'<@!{member.id}> | {member.name}#{member.discriminator}' ), EmbedField(name='Статус:', value=state) ])
def member_join(member: discord.Member): return CustomEmbed( title='**Участник подключился к серверу**', color=colors.green, thumbnail_url=member.avatar_url, footer=EmbedFooter(text=f'ID: {member.id}'), fields=[ EmbedField( name='Пользователь:', value=f'<@!{member.id}> | {member.name}#{member.discriminator}' ) ])
def member_role_delete(member: discord.Member, role: discord.Role): return CustomEmbed( title='**Снятие роли с пользователя**', color=colors.red, thumbnail_url=member.avatar_url, footer=EmbedFooter(text=f'ID: {member.id}'), fields=[ EmbedField( name='Пользователь:', value=f'<@!{member.id}> | {member.name}#{member.discriminator}' ), EmbedField(name='Роль:', value='%s' % role.name) ])
def reaction_clear(message: discord.Message, reactions: [discord.Reaction]): return CustomEmbed( title='**Очистка реакций с сообщения**', color=colors.red, fields=[ EmbedField(name='Канал:', value=f'<#{message.channel.id}>'), EmbedField(name='Сообщение:', value=f'[Нажми на меня]({message.jump_url})'), EmbedField(name='Количество реакций:', value=f'{len(reactions)}'), EmbedField(name='Реакции:', value=''.join( [str(reaction.emoji) for reaction in reactions])) ])
def reaction_remove(user: discord.User, reaction: discord.Reaction): return CustomEmbed( title='**Удаление реакции с сообщения**', color=colors.red, thumbnail_url=user.avatar_url, fields=[ EmbedField( name='Пользователь:', value=f'<@!{user.id}> | {user.name}#{user.discriminator}'), EmbedField(name='Канал:', value=f'<#{reaction.message.channel.id}>'), EmbedField(name='Сообщение:', value=f'[Нажми на меня]({reaction.message.jump_url})'), EmbedField(name='Реакция:', value=reaction.emoji) ])
def message_delete(message: discord.Message, message_content: str): member = message.author return CustomEmbed( title='**Удаление сообщения**', color=colors.red, thumbnail_url=member.avatar_url, footer=EmbedFooter(text=f'ID: {member.id}'), fields=[ EmbedField( name='Пользователь:', value=f'<@!{member.id}> | {member.name}#{member.discriminator}' ), EmbedField(name='Канал:', value=f'<#{message.channel.id}>'), EmbedField(name='Сообщение:', value=message_content) ])
def message_purge(member: discord.Member, channel_id: int, purged_messages_number: int): return CustomEmbed( title='**Чистка сообщений**', color=colors.red, thumbnail_url=member.avatar_url, footer=EmbedFooter(text=f'ID: {member.id}'), fields=[ EmbedField( name='Пользователь:', value=f'<@!{member.id}> | {member.name}#{member.discriminator}' ), EmbedField(name='Канал:', value=f'<#{channel_id}>'), EmbedField(name='Количество удаленных сообщений:', value=f'{purged_messages_number}') ])
def member_name_change(before_member: discord.Member, after_member: discord.Member): return CustomEmbed( title='**Изменение никнейма пользователя**', thumbnail_url=before_member.avatar_url, footer=EmbedFooter(text=f'ID: {before_member.id}'), fields=[ EmbedField( name='Пользователь:', value= f'<@!{after_member.id}> | {after_member.name}#{after_member.discriminator}' ), EmbedField(name='Предыдущий никнейм:', value=f'{before_member.nick}') if before_member.nick is not None else EmbedField(name='Предыдущий никнейм:', value=f'{before_member.display_name}'), EmbedField(name='Конечный никнейм:', value=f'{after_member.nick}') if after_member.nick is not None else EmbedField( name='Конечный никнейм:', value=f'{after_member.display_name}') ])
def player(data: structures.PlayerStructure): return CustomEmbed( title=f'**Информация об игроке {data.nickname}**', author=EmbedAuthor(name='Excalibur-Craft Data', icon_url=images.EX_CRAFT_LOGO), thumbnail_url=data.thumbnail, image_url=data.image_url, fields=[ EmbedField(name='**Дата регистрации:**', value=data.registration_date), EmbedField(name='**Часов в игре за месяц:**', value=f'{data.monthly_online}'), EmbedField(name='**Часов в игре за все время:**', value=f'{data.all_time_online}'), EmbedField(name='**Статус в игре:**', value=data.status), EmbedField(name='**Клан:**', value=f'{data.clan}\n\n**Скин и плащ**', inline=False) if data.has_cape else EmbedField( name='**Клан:**', value=f'{data.clan}\n\n**Скин**') ])
def clan(data: structures.ClanStructure): return CustomEmbed(title=f'**Информация о клане {data.name}**', author=EmbedAuthor(name='Excalibur-Craft Data', icon_url=images.EX_CRAFT_LOGO), thumbnail_url=data.thumbnail, fields=[ EmbedField(name="**Девиз клана:**", value=data.motto), EmbedField(name="**Место в топе:**", value=f'{data.top_place}'), EmbedField(name="**Место в рейтинге:**", value=f'{data.rating_place}'), EmbedField(name="**Голосов:**", value=f'{data.votes}'), EmbedField(name="**Опыт:**", value=f'{data.experience}'), EmbedField(name="**Игроков:**", value=f'{data.players}'), EmbedField(name="**Средний онлайн за всё время:**", value=f'{data.all_time_online}'), EmbedField(name="**Средний онлайн за месяц:**", value=f'{data.monthly_online}') ])
def role_create(role: discord.Role): return CustomEmbed( title='**Создание роли**', color=colors.green, footer=EmbedFooter(text=f'ID: {role.id}'), fields=[EmbedField(name='Название роли:', value=role.name)])
def session_confirm_blocked(): return CustomEmbed( title='**Session initialization blocked**', description= 'A second attempt to initialize and authorize the session will be made after 30 minutes.', color=colors.red)
def session_confirm_failed(): return CustomEmbed(title='**Session initialization failed**', color=colors.red)
def session_confirm_success(): return CustomEmbed( title='**Session initialization completed successfully**', color=colors.green)
def session_confirm_progress(): return CustomEmbed(title='**Session initialization in progress**', color=colors.yellow)
def ready(): return CustomEmbed(title='**Connection completed successfully**', color=colors.green)
def user_card(image_url): return CustomEmbed(title='**Статистика игрока:**', color=colors.yellow, image_url=image_url)
def top_card(image_url): return CustomEmbed(title='**Топ игроков по активности:**', color=colors.yellow, image_url=image_url)
_rank = CustomEmbed( title='**Speedwagon Support**', description='Информация по системе рангов', color=colors.green, thumbnail_url='https://i.imgur.com/TaaRJIY.png', fields=[ EmbedField( name='**Что такое система рангов?**', value= 'Система рангов - система, разработанная для клана BestLife, позволяюшая отслеживать и поощрать активность участников клана' ), EmbedField( name='**Как получать ранг?**', value= 'Уровень (ранг) пользователя расчитывается, исходя из его месячного онлайна и количества внесенных за месяц голосов' ), EmbedField( name='**Что дает ранг?**', value= 'Топ пользователей по рангу в конце месяца получает призы в Личный Кабинет, дополнительные роли и возможность создавать собственные' ), EmbedField(name='**Как узнать свой текущий ранг?**', value='Команда **/rank**'), EmbedField(name='**Как узнать ранг другого игрока?**', value='Команда **/rank <ник>**'), EmbedField(name='**Как узнать текущий топ по рангу?**', value='Команда **/toprank**'), EmbedField(name='**Как вывести данное сообщение?**', value='Команда **/help**'), EmbedField( name= '**Как включить / выключить оповещение о получении нового уровня?**', value='Команда **/notifications | /nots**') ])
def role_delete(role: discord.Role): return CustomEmbed( title='**Удаление роли**', color=colors.red, footer=EmbedFooter(text=f'ID: {role.id}'), fields=[EmbedField(name='Название роли:', value=role.name)])