第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在沒有命令或事件的情況下發(fā)送消息discord.py

如何在沒有命令或事件的情況下發(fā)送消息discord.py

郎朗坤 2023-07-27 10:34:01
我正在使用日期時間文件來打印:現(xiàn)在是早上 7 點,每天早上 7 點?,F(xiàn)在因為這超出了命令或事件引用,所以我不知道如何以不和諧的方式發(fā)送一條消息說現(xiàn)在是早上 7 點。不過需要澄清的是,這不是一個警報,它實際上是針對我的學校服務器的,它會在早上 7 點發(fā)送我們需要的所有內(nèi)容的清單。import datetimefrom time import sleepimport discordtime = datetime.datetime.nowwhile True:    print(time())    if time().hour == 7 and time().minute == 0:        print("Its 7 am")    sleep(1)這就是早上 7 點觸發(fā)警報的原因,我只想知道觸發(fā)此警報時如何發(fā)送不和諧的消息。如果您需要任何澄清,請詢問。謝謝!
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊

您可以創(chuàng)建一個后臺任務來執(zhí)行此操作并將消息發(fā)布到所需的頻道。


您還需要使用asyncio.sleep()而不是time.sleep()因為后者會阻塞并且可能會凍結并崩潰您的機器人。


我還添加了一項檢查,以便該頻道不會在早上 7 點的每一秒都收到垃圾郵件。


discord.pyv2.0


from discord.ext import commands, tasks

import discord

import datetime


time = datetime.datetime.now



class MyClient(commands.Bot):


    def __init__(self, *args, **kwargs):

        super().__init__(*args, **kwargs)

        self.msg_sent = False


    async def on_ready(self):

        channel = bot.get_channel(123456789)  # replace with channel ID that you want to send to

        await self.timer.start(channel)


    @tasks.loop(seconds=1)

    async def timer(self, channel):

        if time().hour == 7 and time().minute == 0:

            if not self.msg_sent:

                await channel.send('Its 7 am')

                self.msg_sent = True

        else:

            self.msg_sent = False



bot = MyClient(command_prefix='!', intents=discord.Intents().all())


bot.run('token')


discord.pyv1.0


from discord.ext import commands

import datetime

import asyncio


time = datetime.datetime.now


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


async def timer():

    await bot.wait_until_ready()

    channel = bot.get_channel(123456789) # replace with channel ID that you want to send to

    msg_sent = False


    while True:

        if time().hour == 7 and time().minute == 0:

            if not msg_sent:

                await channel.send('Its 7 am')

                msg_sent = True

        else:

            msg_sent = False


    await asyncio.sleep(1)


bot.loop.create_task(timer())

bot.run('TOKEN')


查看完整回答
反對 回復 2023-07-27
?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

從Discord.py 文檔中,當您設置了客戶端時,您可以使用以下格式直接向頻道發(fā)送消息:

channel?=?client.get_channel(12324234183172)
await?channel.send('hello')

擁有頻道后(設置客戶端后),您可以根據(jù)需要編輯該代碼片段,以選擇適當?shù)念l道以及所需的消息。請記住"You can only use await inside async def functions and nowhere else.",您需要設置一個異步函數(shù)來執(zhí)行此操作,并且您的簡單While True:循環(huán)可能不起作用


查看完整回答
反對 回復 2023-07-27
?
阿波羅的戰(zhàn)車

TA貢獻1862條經(jīng)驗 獲得超6個贊

根據(jù)discord.py的文檔,您首先需要通過其id獲取頻道,然后才能發(fā)送消息。

您必須直接獲取通道,然后調(diào)用適當?shù)姆椒?。例子?/p>

channel?=?client.get_channel(12324234183172)
await?channel.send('hello')

希望這可以幫助。


查看完整回答
反對 回復 2023-07-27
  • 3 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號