我的机器人有管理员权限,所以我只是想知道是否可以从一个频道抓取所有消息,例如#general。频道历史记录
这是可能的,有一个函数可以做到:
此函数可用于检索通道中发送的所有消息。但是,如果要检索包含数千条消息的通道中的所有消息,则速度非常慢
示例
此示例显示如何检索在特定通道中发送的每条消息:
async def get_history_of_channel(channel):
messages = await channel.history(limit=None) # adding
我想向服务器中的每个人发送一条消息或一条消息
我在谷歌上搜索,什么也没有显示。
我看到一些机器人在做一个声明。下午好。
我怎么能做到。我想要一个我正在使用discord js的工作示例。最有效的方法是制作一个公告频道,并将机器人发送到“@everyone”
如果要对服务器中的每个人进行DM,请循环遍历服务器成员列表并分别对每个用户进行DM;记住,Discord每5秒限制5条消息,所以在循环中设置一个延迟 Discord Api有限制bot DMs有一些限制,您可以在
最好提及每个人或角色
我想做个小测验。如果有人键入这样的命令!答案是,机器人提供了一个角色,比如说2级。下一次该人员回答正确时,他们将获得下一个角色,如3级。使用。因此,添加角色代码可以是这样的:
@client.command(name='give_me_role')
异步def给我角色(ctx):
role=discord.utils.get(ctx.guild.roles,name='Level 2')
尝试:
等待ctx.message.author.add_角色(角色)
除discord.errors.pr
我正在制作一个具有加入-离开消息的bot,但我需要设置它,以便用户可以发送并指定他们希望在哪个频道发布消息
例如:
用户:。请离开
Bot:请发送希望发送加入/离开消息的频道id。
用户:[频道ID]
机器人:谢谢!加入休假消息将在[频道ID]中发布
到目前为止,我所拥有的:
@client.event
async def on_member_join(member):
role = discord.utils.get(member.server.roles, name='
我一直在制作一个discord机器人,并尝试使用反应发出命令。我已经看到使用wait_for是实现这一目标的最佳方式。如果有人能提供一些例子:
•利用反应赋予角色
•利用反应创建通道
•使用反应编辑消息
如果你能把代码一行一行地分解,这样我就可以学习它,如果只是复制粘贴的话,我将不胜感激。提前感谢文档有很好的解释,但一开始可能很难理解,
通常,反应角色是这样完成的(如果我们暂时不考虑数据库):
reaction,user=wait self.bot.wait_for('reaction'))
如
当我对您发送消息的频道“idere”中的消息做出反应时,您可以尝试返回消息。
试试这个:
const emojiChannelName=“idere”;
const emojichannelnameaccessed=“idere accepted”;
const emojichannelnamedevered=“idere deferred”;
client.on(“message”,异步(message)=>{
if(message.guild.id==guildID){
if(messag
因此,我遇到了一个错误,当我使用client.guilds.cache.get(guildId)时,它将可用显示为假。通过谷歌搜索,我发现当公会再次可用时会触发一个guildCreate事件。问题是,根据,当机器人加入公会,公会可用时,guildCreate事件将触发,但我需要机器人为每个公会执行不同的操作。我不知道从哪里开始,所以没有代码显示。guildCreate:
每当客户加入公会时发出
例如,要检查公会是否可用,只需在代码中添加检查即可
if(guild.available){
我试图让他们在一个特定的频道上写文章时,它会删除他们的评论,而机器人会在嵌入中回复,但我很挣扎
client.on("message", message => {
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (message.channel.id == `6359912889713
我创建了一个全局聊天机器人,但我有一个静音命令的问题
if(command === "mute") {
if(!message.member.hasPermission("ADMINISTRATOR")){
return message.channel.send("Nie masz permisji do tej komendy!")
}
const user = message.mentions.membe
所以我在写命令,每一个命令都有冷却时间。像这样:
@client.command()
@commands.cooldown(...)
async def bot_command(ctx):
pass
问题是冷却适用于每个用户。但是,我希望冷却时间不适用于存储在列表中的bot开发人员id。如何以更高效的方式执行此操作?您可以在异常处理程序中捕获异常,然后从那里手动调用该命令
@client.command()
@commands.cooldown(...)
async def bot_co
当我运行此程序时,它不会更改我的机器人的昵称
latest_names是一个名称列表
从discord.ext导入命令、任务
从itertools导入周期
latest\u names=andres.get\u latest()
名称=周期(最新名称)
@tasks.loop(秒=10)
异步def change_name():
等待guild.me.edit(尼克=下一个(状态))
您需要调用self.change\u name.start()来启动循环。您应该在cog的init()函数中执行
如何更改发送所有频道消息的用户权限?
我想阻止用户通过discord.js向所有频道发送消息
我在代码中尝试:
let member=message.notices.members.first()
updateOverwrite(client.guild.roles.member,{SEND_MESSAGES:false});
您可以在特定公会中迭代频道,然后修改特定用户的权限
client.on('message',message=>{
if(message.indications.membe
例如,如果用户输入的命令是r!测试
然后,bot也将响应aatest等
有没有办法解决这个问题?
我还尝试了命令。startsWith('r!')不起作用,bot根本没有响应。
如果你需要它,这里是代码
if(命令=='slap'){
const taggedUser=msg.indications.users.first();
如果(!msg.notices.users.size){
const-sinetisembed=new Discord.MessageEmbed()
.setColor
我认为这个错误:
System.ArgumentException: 'Command names cannot contain whitespace characters. '
我在这行代码中处理这个问题
MainAsync(args).ConfigureAwait(false).GetAwaiter().GetResult();
这是不正确的代码:
static void Main(string[] args)
{
MainAsync(args).Configure
我用python创建了一个discord机器人,并将其安装在我的discord服务器上,一切正常。
但是,当我把我的机器人的链接给一个朋友,让他把它安装在他的服务器上时,他要求他在与服务器连接良好的情况下,用电子邮件和密码确认自己的身份。
当我通常安装一个机器人时,它不会要求我输入密码,所以我如何才能在这里获得它,这样它就不会要求输入密码了?
这件事我已经解决了好几天了,这是最后一根稻草
Reaction\u add仅在我执行时有效!在服务器“常规”频道的_message上,如果我直接向bot发送消息,它不会做任何事情。不过,有趣的是,如果我先直接向机器人发送消息,然后输入!在服务器常规通道中的_message上,bot会在常规通道和直接消息中做出反应
在TimeoutError之后,我在直接消息中被拒绝了
这是直接来自discord.py文档的代码,我使用的是Bot作为Client:
@bot.command(pass\u cont
我已经为我的机器人编写了以下代码以进行评估:
var-gs=[];
client.guilds.cache.forEach(g=>{
一般事务推送([g.id,g.memberCount]);
});
gs.分拣(功能(a、b){
返回b[1]-a[1];
});
var msg=“”;
对于(变量i=0;i
我试图让机器人在加入服务器时发送消息
这是我目前的代码:
client.on('guildCreate', guild => {
guild.systemChannel.send(`Hello, I'm LMAOBOT. Thanks for inviting me, here are a list of all my commands! :alien:`, {
embed:{
title: ':x: Prefix',
color: 0x2471
我正在执行一个静音命令,如果找不到该角色,我希望它创建该角色。这是我的密码
@client.command()
async def mute(ctx, member: discord.Member , time, *, reason):
guild = ctx.guild
for role in guild.roles:
if role.name == 'muted' or 'Muted':
await memb
我想给我的discord机器人添加一个kick命令,它使用wait函数
client.on("message", async (message) => {
但是,我无法在commands文件夹中的命令文件中执行此操作
我的踢腿命令
const { MessageEmbed } = require("discord.js");
module.exports = {
name: "kick",
description: &
ctx.guild.members
是一个数组,它应该返回从中调用命令的服务器中的每个成员,但如果我这样做了
print(ctx.guild.members)
它只返回bot本身
[]
我正在努力达到质量标准,这就是为什么在新版discord.py(1.5.x)中,它的措辞冗长而不切题的原因,有一些关于意图的更新。意图就像权限一样,你必须定义它来使用一些东西,比如获取成员、渠道等
导入不一致
intents=discord.intents().all()
client=discord.Bot(前
对于我的服务器,我需要我的bot定期对每个人进行DM。我用
client.users.cache.get(args[1]).send(toSend);
为此,其中args[1]包含用户id,而toSend是要发送的消息。但是,它只是出现了无法读取未定义的属性“send”。然后我尝试将client.users.cache记录到控制台中,结果显示其中只有两个用户,机器人本身和我。考虑到服务器至少有30个用户,为什么会这样?看看这是否回答了您的问题@worthyapaca噢,哇,这么简单。谢谢这回答
我试图让我的discord机器人(API包装器Discord4J)监听昵称的更新
以下是我尝试过的:
client.on(MemberUpdateEvent.class).subscribe(event -> {
System.out.println("event triggered");
});
但是,当更改某人的昵称时,不会触发该事件
bot已经可以侦听消息,其工作方式是:
client.on(MessageCre
因此,我目前正在制作一个bot,该bot应该能够对在discord之外输入其discord名称(例如#0000)的用户进行dm,我现在需要该bot将其名称转换为其Id,以便对其进行dm
这可能吗?
为了澄清,bot与用户不在同一台服务器上,并且从未与他们进行过交互。不,不可能按名称获取用户/成员实例如果您不共享公会,唯一可能的方法是使用ID从API获取它
user = await bot.fetch_user(123345567901)
这个问题被问了太多次了。你可以试着浏览其他问题。如果你找
我正在开发一个机器人,想知道是否有一种方法可以从服务器中的所有人打开dms,并查看其中是否有任何命令。如果是这样的话,我希望命令被完成,但只与某些关键字。请帮忙 您可以通过GuildMember.user.DMchannel循环查看GuildMember集合,并使用GuildMember.user.DMchannel访问GuildMember的DMchannel.messages.fetch()然后使用filter()获取包含您要查找的关键字的消息
message.guild.members.c
我想这样做,如果我执行[prefix][command]操作,它将产生与[提及bot][command]相同的效果,但我创建命令和参数的方式使这变得很困难:
前缀存储为var prefix='!3';
这就是我创建命令的方式:
bot.on('message',msg=>{
如果(!msg.content.startsWith(前缀)| | msg.author.bot)
回来
//“!13”之后的第一条消息
//!
设args=msg.content.toLowerCase().substri
我试图建立一个不和谐的机器人,但我需要发送一个消息到一个特定的渠道。我已经尝试了100次,但一直得到:
TypeError:bot.channels.fetch(…).send不是函数。
我读到的每一个地方都会看到“use channel.send()”,但我找不到解决问题的实际方法。channel.send()是否已弃用?以下是错误引发错误的行:
bot.channels.fetch(id)、send(message)
我知道channels.get()已被删除,当使用.fetch(id)时,
我正在做一个循环,每5秒检查一次用户状态是否包含“hi”,如果是,则应该给用户一个角色。
我真的不知道怎么做,但也许有人能帮上忙。
我的代码:
#以下是我请求的命令的一个小基础。。。
#我希望它能帮助你
@tasks.loop(秒=15)
异步定义状态_角色():
如果???.lower()中的“hi”
#代码来了
#(Idk代码是什么,所以我问你们:D)
成员=ctx.message.author
role=get(member.server.roles,name=“Friendly dude
我试图让我的bot响应在触发字之后发送的消息,但它所做的只是向我发送以下错误:AttributeError:'generator'对象没有属性“content”。这是我的密码:
@client.event
async def on_message(message):
if message.content == "report":
await message.author.send("Type your report below")
所以我一直想弄明白这一点,但我弄不明白,有人能告诉我我做错了什么吗。顺便说一句,此命令和其他所有命令都是新命令
const Discord=require(“Discord.js”);
const bot=new Discord.Client();
常量前缀=“!”;
const token=“token”;
const randomMessage=[“是,这是一个突然的时刻”,“不是,这不是一个突然的时刻,停止过度反应”];
bot.on(“就绪”,()=>{
log(`${bot.user.
最近,我用python制作了一个discord机器人,我想添加reddit命令,正如我在Dank Memer、MEE6和其他从reddit发送图像帖子的机器人上看到的那样。我在网上找到了一些代码(我对discord.py很陌生),并找到了如何使用aiohttp实现这一点
async def meme(ctx):
embed = discord.Embed(title="Post from r/memes.", description=None, color=0xff0000)
我需要有关Discord bot的帮助,我正在使用Discord.js
所以我做了这个:
client.on("message", async(message) => {
if (!message.guild) return;
if (message.author.bot) return;
if (mentionn) {
const randomAmountOfCredits = Math.floor(Math.random() * 29) + 1
我正试图发出一个不和谐的送礼重播命令。
问题是,当命令运行时,它没有响应/重新滚动赠品。
我用同一个命令查看了多个站点,但所有这些站点都不起作用/都有解决方案。
我还尝试不嵌入,看看这是否是代码的问题。
下面是reroll命令代码-
(如果需要赠品命令代码,我可以提供)
@client.command()
@commands.has_权限(kick_members=True)
异步def reroll(ctx,通道:discord.TextChannel,id:int):
尝试:
new\u m
我尝试在每个通道中禁用一个名为“mutedRole”的角色,因此我键入了一些代码,下面是代码:
if(message.content === `${prefix}mute`) {
message.guild.channels.cache.forEach((channel) => {
channel.updateOverwrite(channel.guild.roles.mutedRole, {
SEND_MESSAGES: false
})
.then(channel
当我执行console.log(message.guild.name)时,它工作正常,给我一条消息中提到的行会名称。但是,由于某些原因,在对用户进行DMing时运行该代码时,会出现以下错误:
(节点:36816)未处理的PromisejectionWarning:TypeError:无法读取null的属性“name”
A不在公会中,因此不能将公会附加到它
您需要检查message.channel.type属性以确定它是什么类型的频道。消息可以来自这些频道类型中的任何一种(也称为公会文本频道),或
嗨,我正在制作一个机器人,其中说明了机器人的信息,但我希望它将我标记为所有者
var所有者=[];
让argsS=message.content.substring(前缀.length).split(“”);
如果(argsS[1]=“版本”){
message.channel.send(“**Mafia Bot**当前的版本为:**'+version+'**!”);
}否则{
message.channel.send(`Mafia Bot**是由${owner}`创建的);
}
打破
虽然我
我有一个计算成员和机器人并分别输出的命令。然后我想输出在线用户的数量。这可能吗
此命令获取成员和bot计数
if message.content.startswith('<count'):
membersInServer = message.guild.members
channel = message.channel
# Filter to the list, returns a list of bot-members
当我在discord bot的DM中使用某些命令(例如Mute或ServerInfo)时,它会崩溃,因为DM和server中的命令不同
所以,我一直在搜索,我唯一看到的是Discord.JS指南。我试过了,但没用。因此,我想知道是否有其他方法可以使某些命令在DM中不起作用?如果它失败了与DM通道相关的条件,只需返回:
如果(!msg.guild)返回;
或
if(msg.channel.type==“dm”)返回;
我应该将tho放在与命令相关的代码顶部的什么位置。
在Discord.jsv11中,您可以使用guild.setRolePosition({role:'1234567890121345678',position:1})设置特定角色的位置。如何使用新方法指定角色(例如“静音”)?它似乎只接受一个职位编号和一些选项,如options.relative。我想要的是将角色位置分配给事件中禁用的角色Admin、Friends和roles。我知道roleCreate事件仅在创建角色时运行,但不知何故,“position”参数不能很好地使用。实际上可以很好地使
所以我在网上或任何地方都找不到任何代码,我个人也不知道如何使用bug报告命令。
我希望命令能像这样工作,在一个专门的频道上发布报告
因此,它的工作原理就像当你发送“s!bug report(bug)”时,它会将(bug)发送到我服务器中的某个频道。在上面提到的评论中,你被卡住了,因为你不知道如何将消息发送到特定的频道,所以我会让你开始
您可以使用Client.get_channel()获取channel实例。这可以从任何地方调用,因此它是您自己服务器中的一个通道,或者在另一个服务器中被调用都无关
我有一个禁止命令,但出于某种原因,版主可以禁止管理员。如何设置层次结构
例如,当管理员角色高于mod时,mod可以禁止管理员
谢谢你 可能有点晚了,但这里有一个有效的解决方案
if (message.member.roles.cache.find(role => role.position > message.mentions.members.first().roles.highest.position)) {
// If role is above
// Here
在我的bot中,我有一个消息计数器,用于存储用户在服务器中发送消息的次数。
我试图计算一个用户在服务器中被提及的次数。有人知道我该怎么做吗?您可以使用message.indications.members或message.indications.users查看邮件中的提及内容。您可以存储每个用户的提及次数:每次提及他们时,您都会增加计数
var\u count={};
client.on'message',message=>{
用于message.indications.users.keyArr
有没有办法获得频道的名称?我正在创建一个机器人,将记录创建和删除的频道,我希望能够获得频道名称,而不是ID
我已经检查了,但是没有name属性,所以我想知道是否有办法解决这个问题
我目前的代码是:
const Discord=require('Discord.js');
const client=new Discord.client();
client.on('channelCreate',channel=>{
const logChannel=channel.guild.channels.fi
我想做的是一个简单的事件记录器,它将在其中输出,比如某个角色失去/获得了权限。所以我想比较两者,然后简单地减去它们,所以它只显示一个特定的权限。相反,我得到1个未定义的(权限丢失,下面的检查代码),而另一个则变为空白,因为根本没有文本(权限获得,下面的检查代码)。我已经做过了,比如说如果一个公会成员失去了一个角色或者得到了一个角色,但是效果不一样
我做错了什么,我怎样才能继续下去
代码:
bot.on(“角色更新”,异步(旧角色,新角色)=>{
if(oldRole.permissions!==
我正在使用server info命令,我想添加“具有管理员权限的成员列表”。有什么语法吗?你应该展示你在文章中尝试过的代码
const adminMembers=.members.cache.filter(e=>e.permissions.has(“管理员”);
const array=adminMembers.map(e=>e.user.tag).array();
常量str=array.join(“\n”);
为什么要将Guild设置为?它代表一个Guild类的实例,这样无论您如何获得该实例
我有一个关于使用Discord.js编程Discord机器人的问题。嗯,当我使用displayAvatarURL时,用户的化身会显示给我,但质量很低。有什么方法可以提高这种质量吗?您发布的问题很容易修复,根据,您可以将对象作为参数传递以设置图像的大小,如下所示:
user.displayAvatarURL{size:2048,dynamic:true};
我还添加了动态:真的让GIF的化身成为动画 可以将对象作为参数传递以设置图像大小:
user.displayAvatarURL({size:
我正在使用discord.py rewrite,希望生成一个名为~warn的命令,用于向用户发出警告,并显示用户发出的警告数量。我已经找了一个关于这个的教程,但是几乎所有的都在discord.js中,而在discord.py中的都是异步的。有人能帮我编码吗?你可以用,我来做命令
async def update_数据(用户,用户):
如果在用户中不是f{user.id}:
用户[f'{user.id}']={}
用户[f'{user.id}']['warns']=0
异步定义添加警告(用户、用户
我正在编写一个建议机器人,它应该将玩家的建议发送到我服务器上的建议频道,并在建议频道中使用一些表情符号做出反应
问题是使用“message”作为message参数会对发送的消息做出反应以触发代码,但我希望它对bot发送到建议通道的消息做出反应。我对编码相当陌生。如何让机器人对不同通道中的消息做出反应
text\u channel=client.get\u channel('527127778982625291')
msg='您的建议已发送到'+str(text_channel.notice)+'
这是我目前使用的代码:
@client.command()
async def say(ctx, arg: str):
await ctx.channel.purge(limit=1)
await ctx.send(f"{arg}")
这段代码有效,但机器人只说出句子的第一个单词。我怎样才能让它说出整个句子呢?我希望这能奏效:
@client.command()
async def say(ctx, *args):
await ctx.message.delete()
这是我的代码,我希望它只执行一次,我不知道为什么,但它开始滥发,是因为我的on_message()事件中有它吗
@commands.Cog.listener()
_消息上的异步定义(self,message):
如果message.channel.id==my_channel_id:
wait message.channel.send(f“{int(message.content)+1}”)
返回
通过
您的机器人会对自己的消息做出反应。试试这个:
@commands.Cog.listener(
上一页 1 2 ...
4 5 6 7 8 9 10 ...
下一页 最后一页 共 23 页