是否可以使用discord.py包更改Discord状态?
我想用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会不会对此采取行动。不过,由于任何形式的用户账号自动化都是被禁止的,他们确实有可能会采取措施。
我认为,除非你有不好的意图,否则没有理由去自动化一个个人账号。
话虽如此,丰富的在线状态功能让你可以合法地自动显示你的在线状态。虽然这看起来可能和自定义状态不完全一样,但也许这对你来说是个不错的选择?