@commands.command()
async def role(ctx):
role = ctx.bot.get_role(719997201283022879) # Получаем объект роли по ID
if role in ctx.author.roles:
await ctx.send("\N{WHITE HEAVY CHECK MARK}"} # ✅
else:
await ctx.send("\N{CROSS MARK}") # ❌
[p]
- префикс указанный для вашего бота[p]вип
- вернет ошибку[p]вип DiscordTag#0000
- не вернет, в случае если пользователь с тегом DiscordTag#0000 существует на сервереpass_context=True
- устаревший кусок кода, на текущей версии Discord.py такого аргумента у конструктора команд нет, Context передаётся в команду всегдаawait ctx.channel.purge(limit = 1)
- я так предполагаю, этот участок кода вами используется для удаления сообщения с командой. Если это так, рекомендую заменить его на await ctx.message.delete()
во избежание (возможного) "racing condition"@commands.has_permissions(administrator = True)
@client.command()
async def unban(ctx, *):
await ctx.message.delete() # Для удаления сообщения с командой, если в оригинале подразумевалось это
banned_users = await ctx.guild.bans()
for ban_entry in banned_users:
user = ban_entry.user
await ctx.guild.unban(user)
await ctx.send(f"Добро пожаловать. Снова. {user.mention}")
await user.send("Божество услышало твой зов, теперь снова можешь вернуться :3")
import youtube_dl
ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download(['https://vk.com/video-30316056_456326877'])
# [vk] -30316056_456326877: Downloading JSON metadata
# [vk] -30316056_456326877: Downloading m3u8 information
# [hlsnative] Downloading m3u8 manifest
# [hlsnative] Total fragments: 2
# [download] Destination: webm--30316056_456326877.mp4
# [download] 100% of 7.31MiB in 00:01
# [ffmpeg] Fixing malformed AAC bitstream in "webm--30316056_456326877.mp4"
# 0
discord.ext.commands
первым аргументом в команду всегда передает commands.Context.users
глобальной.os.chdir(r'D:\Sublime Text 3\testbot-master')
:users = {}
@bot.command()
async def Rank(ctx, user: discord.Member):
experience = users[str(user.id)]['experience']
lvl_start = users[str(user.id)]['level']
lvl_end = int(experience ** (1/50))
await ctx.send(':thumbsup: {}, Ваш уровень: {} :thumbsup:'.format(user.mention, lvl_end))
users[str(user.id)]['level'] = lvl_end
!Rank
вызовет в данном случае ошибку!Rank @DiscordTag#0000
- нет@bot.command()
async def Rank(ctx, user: discord.Member = None):
if not user:
user = ctx.author
...
pass_context
у команд нет, аргумент контекста передается первым автоматически всегдаfrom discord.ext.commands import Bot
- неиспользуемый импорт в этом коде KeyError
означает что указанного ключа в указанном словаре не существует.Что делать?
async def add_coins(users, user, coin):
if str(user.id) not in users:
users[str(user.id)]['coins'] = 0
users[str(user.id)]['coins'] += coin
v
, а не version
r = requests.get("https://api.vk.com/method/wall.get", params={"owner_id": id, "count": 1, "offset": 0, "access_token": access_token, "v": "5.80"})
response = r.json()
Но теперь выдаёт ошибку в 9 строке (l["text"] = "".join(s)), почему так?
from tkinter import *
import random
tk = Tk()
b = Button(text = "Сгенерировать")
l = Label (width = 20, bg = 'black', fg = "white")
def randomize(event):
r = random.randint(1,100)
s = str(r)
l["text"] = "".join(s)
b.bind ("<Button-1>", randomize)
b.pack()
l.pack()
tk.mainloop()