我正在为我和我的朋友们建立一个Discord服务器,并且我需要一个能够在键入特定触发短语的情况下对任何消息添加20条反应的机器人。 我曾经有一个可以做到这一点的机器人,但它已经更新,并且仅限3次反应,但对我不起作用。
因此,在这里,我对编程有非常基本的了解,试图为此目的设置一个非常基本的机器人。
我已经尝试过在YT上找到的一个简单的bot命题,但它根本没有用,而且我不知所措,不知道为什么以及如何解决它。
所以这是我尝试过的命题,但没有使函数起作用:
import discord
from discord.ext import commands
from discord.ext.commands import Bot
import asyncio
bot = commands.Bot(command_prefix='!')
@bot.event
async def on_ready():
print ("Ready to react, boss !")
@bot.event
async def on_message(message):
if(message.channel.id == "550373218758688790"):
await bot.add_reaction(message, ":war_tank:552569109108490252")
bot.run("NTY5OTQ0NTMyMzIyNjE1MzI2.XL4IBg.WH-Ms1DWKJN8qGBBLAxdGye0q2I")
因此,这个人应该对每条消息都做出反应,并计划从那里开始工作,但实际上没有任何效果。 相反,我在cmd日志中为每条看起来像这样的消息得到了一条消息:
Ignoring exception in on_message
Traceback (most recent call last):
File "G:\Jeux\Discord Bot\lib\site-packages\discord\client.py", line 255, in _run_event
await coro(*args, **kwargs)
File "G:\Bureau\TotemReact Bot\bot.py", line 16, in on_message
await bot.add_reaction(message, ":war_tank:552569109108490252")
AttributeError: 'Bot' object has no attribute 'add_reaction'
因此,如果任何有实际技能(考虑我的话,我会很容易打动我)的人都可以向正确的方向指点我,我会感到很高兴。
感谢您的时间和精力。
答案 0 :(得分:2)
首先,如果您还没有的话,现在要更改令牌。
您正在使用discord.py版本v0.16中的语法,该语法不再受支持。
请参见the guide for migrating to v1,尤其是Models are Stateful section。
您应该使用Message.add_reaction
而不是Bot.add_reaction
。
答案 1 :(得分:0)
您正在查看旧教程。 Client.add_reaction
已在discord.py 1.0中移至Message.add_reaction
您描述的功能可能类似于:
default_emojis = [
"\N{GRINNING FACE}",
"\N{KEYCAP DIGIT ONE}"
]
custom_emojis = [
"war_tank"
]
async def react(message):
for emoji in default_emojis:
await message.add_reaction(emoji)
for emoji in message.guild.emojis:
if emoji.name in custom_emojis:
await message.add_reaction(emoji)
@bot.event
async def on_message(message):
if message.author == bot.user:
return
if "react to me" in message.content.lower():
await react(message)
答案 2 :(得分:0)
先在replit网站注册
然后创建新的reply并创建node.js
并创建新文件并重命名 server.js
并复制这些代码
对于 server.js
const express = require('express');
const server = express();
server.all('/', (req, res)=>{
res.setHeader('Content-Type', 'text/html');
res.write('<link href="https://fonts.googleapis.com/css?family=Roboto Condensed" rel="stylesheet"> <style> body {font-family: "Roboto Condensed";font-size: 22px;} <p>Hosting Active</p>');
res.end();
})
function keepAlive(){
server.listen(3000, ()=>{console.log("Server is online!")});
}
module.exports = keepAlive;
对于 index.js
const Discord = require('discord.js');
const client = new Discord.Client();
const mySecret = process.env['mysecrettoken']
const keepAlive = require("./server");
client.on('message', msg => {
if (msg.attachments.size > 0) { //Make sure there are attachments at all
var react = false; //Do we react to the message? Default to false
msg.attachments.forEach(attachment => { //Check each attachment to see if it's a jpg, png, or jpeg
if (attachment.url.includes(".jpg") || attachment.url.includes(".png") || attachment.url.includes(".jpeg")) {
react = true; //It's an image! We want to react to the message
};
});
if (react === true) { //React to the message
msg.react('837608362719969291');
msg.react('837608381283827734');
msg.react('837608396659097640');
msg.react('837608412337668096');
msg.react('837608426821124096');
};
};
}
)
keepAlive();
client.login(process.env.mysecrettoken);
创建您的第一个不和谐机器人并为其授予管理员权限。您可以观看 YouTube 视频,了解如何创建 dc bot 并将其授予管理员权限。
点击此网站 https://discord.com/developers/applications/
create your dc bot give admin rights regenerate and copy your toke paste to replit secret values
copy url add monitoring sites and your discord bot is ready to use 7/24 using
复制您的令牌并创建您的 mysecrettoken
监控站点示例:https://uptimerobot.com ???? 您的 dc 机器人已准备就绪