iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0

今天的內容會是大量的程式碼配上一寫解說,這幾隻程式基本都是好玩沒什麼實用性的哈哈哈

1.隨機slap一個人

1.功能
只要在聊天室輸入 !slap 原因 他就會隨機打一個人

2.程式碼

from discord.ext import commands 
import discord
import random

intents = discord.Intents.all()

bot = commands.Bot(command_prefix='!',intents=intents)


class Slapper(commands.Converter):
        async def convert(self, ctx, argument):
            to_slap = random.choice(ctx.guild.members)
            return f'{ctx.author} slapped {to_slap} because *{argument}*'

@bot.command()
 async def slap(ctx, *, reason: Slapper):
        await ctx.send(reason)
bot.run(‘token’)

3.執行結果
https://ithelp.ithome.com.tw/upload/images/20230930/20161116uXXG5UYAM0.png

2.自動迴圈機器人

1.功能
只要啟動機器人他就會開始執行

2.程式碼

from discord.ext import commands 
import discord
import asyncio
intents = discord.Intents.all()

bot = commands.Bot(command_prefix='!',intents=intents)

@bot.event
async def on_ready():
    channel = bot.get_channel(your channel)

asyncio.create_task(my_background_task(channel))

async def my_background_task(channel):

    while True:
            print(channel) 
            await channel.send("poker來打apex")

            await asyncio.sleep(10(秒))

bot.run(’token’)

3.指定時間及原因的回圈機器人

1.功能
在聊天室輸入!loop 時間 原因 便會執行

2.程式碼

from discord.ext import commands 
import discord
import asyncio

intents = discord.Intents.all()

bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user.name}')
    
@bot.command()
async def loop(ctx, time_interval: int, *, reason=""):
    # 將時間間隔限制在最小值(例如,5秒)以及您認為合適的最大值之間
    time_interval = max(5, time_interval)
    
    while True:
        await ctx.send(f"{ctx.author.mention} {reason}")
        await asyncio.sleep(time_interval)
bot.run('token')


上一篇
[Day15]禁言成員
下一篇
[Day17] 計算機機器人
系列文
使用discord.py開發自己的機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言