【问题标题】:Discord.py warningDiscord.py 警告
【发布时间】:2021-07-25 04:40:30
【问题描述】:
我一直在开发一个主持人不和谐机器人。做了除警告命令之外的所有命令。谁能帮我发出警告命令。
如果成员(具有管理成员权限)键入 ?warn @user 原因,机器人会将警告保存在文件中
如果用户说?warnings @user,机器人将显示用户的警告,也会显示一个未警告的命令,例如当用户说?unwarn @user 机器人应该能够取消警告指定的用户。
【问题讨论】:
标签:
discord
discord.py
warnings
【解决方案1】:
你是这个意思吗?
def save_warn(ctx, member: discord.Member):
with open('warns.json', 'r') as f:
warns = json.load(f)
warns[str(member.id)] += 1
with open('warns.json', 'w') as f:
json.dump(warns, f)
def remove_warn(ctx, member: discord.Member, amount: int):
with open('warns.json', 'r') as f:
warns = json.load(f)
warns[str(member.id)] -= amount
with open('warns.json', 'w') as f:
json.dump(warns, f)
def warns_check(member: discord.Member)
with open('warns.json', 'r') as f:
warns = json.load(f)
warns[str(member.id)]
return warns
@bot.command()
@commands.has_permissions(kick_members=True)
async def warn(ctx, member: discord.Member, *, reason):
save_warn(ctx, member)
dm = await bot.fetch_user(member.id)
em=discord.Embed(title="Warning", description=f"Server: {ctx.guild.id}\nReason: {reason}"
await dm.send(embed=em)
@bot.command()
@commands.has_permissions(kick_members=True)
async def warnings(ctx, member: discord.Member):
warns = warns_check(member)
await ctx.send(f"{member.name} has {warns} warnings.")
@bot.command()
@commands.has_permissions(kick_members=True)
async def rmwarn(ctx, member: discord.Member, amount: int):
remove_warn(ctx, member, amount)
await ctx.send(f"Removed {amount} warnings from {member.name}!")