是否可以使用discord.py包更改Discord状态?

-3 投票
2 回答
46 浏览
提问于 2025-04-14 15:55

我想用discord.py把我自己的个人状态(不是机器人的)在特定时间改成隐身。

这段代码本来是要获取我电脑上的当前时间,然后根据一天中的时间来判断是在线还是离线,返回真或假。

虽然代码没有报错,但它并没有让我个人状态变成隐身或在线。

另外,我使用的是1.7.0版本,因为在2.0.0版本之后,他们取消了自用机器人的功能。

这是我目前写的代码:

from discord import *
from discord.ext import commands
from essentials import *
from datetime import time

import time as t
import datetime
import discord
import asyncio

intents = discord.Intents().all()
intents.typing = False
intents.presences = False

#Local variables
token = "my-token"
prefix = "."

bot = commands.Bot(command_prefix=prefix, intents=intents, help_command=None, self_bot=True)

# ---------------------------------------------------------

# Definitions
def getTime():

    dt = datetime.datetime
    
    timestamp = dt.now().time() # Throw away the date information
    t = string.before(str(timestamp), ".")
    t = dt.strptime(t, '%H:%M:%S')
    hour = t.hour

    return hour

def goInvis():
    hour = getTime()
    time_stamps = [12,22]
    if time < time_stamps[0] or time > time_stamps[1]:
        return True
    else:
        return False
    


# -------------------------------------------------------------------------

@bot.event
async def on_ready():
    print("Ready")
    while True:
        if goInvis:
            print("Went invis")
            await bot.change_presence(status=discord.Status.offline)
        else:
            print("Went online")
            await bot.change_presence(status=discord.Status.online)
        
        t.sleep(2)


bot.run(token, bot=False)

2 个回答

-1

你不能通过Discord机器人来改变自己的状态。可能这甚至违反了服务条款,但我不太确定。

2

这绝对是违反服务条款的。没有人能告诉你Discord会不会对此采取行动。不过,由于任何形式的用户账号自动化都是被禁止的,他们确实有可能会采取措施。

我认为,除非你有不好的意图,否则没有理由去自动化一个个人账号。

话虽如此,丰富的在线状态功能让你可以合法地自动显示你的在线状态。虽然这看起来可能和自定义状态不完全一样,但也许这对你来说是个不错的选择?

撰写回答