這個Discord bot實現了將成員近言跟解禁言的命令:
分鐘版本
from discord.ext import commands
import discord
import datetime
intents = discord.Intents.all()
bot = commands.Bot(command_prefix='!',intents=intents)
@bot.command()
@commands.has_permissions(manage_roles=True) # 只有管理員才能使用這個指令
async def timeout(ctx, member: commands.MemberConverter, minutes: int):
await member.edit(timed_out_until=discord.utils.utcnow() + datetime.timedelta(minutes=minutes))
await ctx.send(f'{member.name}已被設定超時時間,將在{minutes}分鐘後解除超時。')
@bot.command()
@commands.has_permissions(manage_roles=True)
async def remove_timeout(ctx, member: commands.MemberConverter):
await member.edit(timed_out_until=discord.utils.utcnow()) # 使用已知的 UTC 時間
await ctx.send(f'{member.name}的超時已被解除。')
bot.run(‘token’)
秒版本
import discord
from discord.ext import commands
import datetime
intents = discord.Intents.all()
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.command()
@commands.has_permissions(manage_roles=True)
async def timeout(ctx, member: discord.Member, seconds: int):
await member.edit(timed_out_until=discord.utils.utcnow() + datetime.timedelta(seconds=seconds))
await ctx.send(f"{member.mention} 已被設定超時 {seconds} 秒。")
@bot.command()
@commands.has_permissions(manage_roles=True)
async def remove_timeout(ctx, member: discord.Member):
await member.edit(timed_out_until=None)
await ctx.send(f"已解除 {member.mention} 的超時。")
bot.run(‘token’)