当前位置: 首页 > 知识库问答 >
问题:

静音命令不工作,无错误信息;不和谐巨蟒

习狐若
2023-03-14

我试图为我的不和谐机器人创建一个静音命令。我把所有的代码都打了出来,我很确定它应该能工作。然而每当我输入N?静音不会发生任何事情,随后在我的命令提示符中也不会显示任何内容。没有错误消息,没有什么。我试图在异步def静音()之后放置一个打印,但也没有显示出来。

我有以下代码:

import random
import discord
from discord.ext import commands
import urllib.parse
import os
import pymongo
from pymongo import MongoClient

client = commands.Bot(command_prefix='N?')

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.command()
@commands.has_role(743487766796697720)
async def mute(ctx, member: discord.Member):
    role = discord.utils.get(ctx.guild.roles, name="Muted")
    guild = ctx.guild
    if role not in guild.roles:
        perms = discord.Permissions(send_messages=False, speak=False)
        await guild.create_role(name="Muted", permissions=perms)
        await member.add_roles(role)
        embed=discord.Embed(title="User Muted!", description="**{0}** was muted by **{1}**!".format(member, ctx.message.author), color=0xff00f6)
        await message.channel.send(embed=embed)
    else:
        await member.add_roles(role)
        embed=discord.Embed(title="User Muted!", description="**{0}** was muted by **{1}**!".format(member, ctx.message.author), color=0xff00f6)
        await message.channel.send(embed=embed)

@mute.error
async def mute_error(ctx, error):
    if isinstance(error, commands.MissingRole):
        embed=discord.Embed(title="Permission Denied.", description="You don't have permission to use this command.", color=0xff00f6)
        await message.channel.send(embed=embed)
@mute.error
async def mute_error(ctx, error):
    if isinstance(error, commands.BadArgument):
        embed=discord.Embed(title="Permission Denied.", description="That is not a valid member.", color=0xff00f6)
        await message.channel.send(embed=embed)

我试着做一个踢命令berore,但是在搜索stackoverflow和其他十几个网站来找出为什么它不起作用后,我放弃了。现在我想知道为什么client.commands到目前为止都没有成功。到目前为止,我只使用了client.listen()和client.event(),两者都运行良好。我不知道这是一个疏忽还是我做了一些蠢事,但我现在不知所措。我是相当新的Discord.py所以原谅我缺乏技能:)

共有2个答案

袁弘化
2023-03-14

我把bot.event改成bot.listen!确保你的事件受到限制,并且主要使用监听和命令。我认为超过1bot.event杀死了我的代码。感谢大家的投入,我希望这能为来自谷歌的人修复它:)

施琦
2023-03-14

您没有消息变量。而不是消息写ctx。

所以呢

 await message.channel.send(embed=embed)

应该成为

await ctx.channel.send(embed=embed)

要查看命令提示符上的错误,可以先删除所有错误命令。当我制作机器人时,错误命令不会让我在命令提示符上看到错误。也许试试那个。

 类似资料:
  • 当我在discord内部运行以下脚本(“cmd中的node musicbot.js”)和“!play ytlink”时,bot加入语音通道,并在控制台中记录命令和链接。然而,音乐并没有开始播放。我安装了ffmpeg、ytdl核心和discord。js。 有人能帮我吗?我不知道是哪一部分搞砸了。

  • 我已经创建了一个bot,它现在在我的discord服务器中,使用下面的代码。 我的问题是,一旦我在与bot不和谐的聊天中,我如何调用命令让bot运行代码,为用户列表收集csv?我不确定如何调用机器人,一旦它在聊天/服务器中获得列表。

  • 如前所述。我正在尝试为我的Discord机器人创建一个临时静音命令。我遇到的问题是,它创建了一个静音的角色,但即使我更改了烫发,用户仍然可以编写消息。除此之外,我还收到了以下弃用警告: (节点:15956)弃用警告:集合#查找:改为传递函数

  • 我正在为我朋友组的游戏服务器开发一个discord机器人。我想添加一个命令,使语音频道中的每个人都静音。我想这是可以工作,但它返回时不是一个函数,导致机器人崩溃。这是的工作原理是,它将服务器静音发送消息的成员,但显然不是我想要的整个频道。我对不和谐是全新的。js和文档有点混乱。谢谢你的时间!

  • 我已经在不和谐机器人上工作了几天。 起初只是简单的命令等,但慢慢地,我也致力于音乐机器人的主题。 我也使用YouTube数据API来实现这一点,到目前为止一切都正常。不过,我现在想合并一个Youtube搜索命令或将其构建到另一个(Play命令)中。我已经有半个搜索命令了。 到目前为止你可以做$play(歌名) 将选择找到的第一个轨迹。 然而,我希望能够看到前10个搜索结果,然后在它们之间进行选择。

  • 我已经下载了jdk 1.8.0\u 131 当我打开命令提示符并编写以下命令-java-version时,它会给出输出 但是当我编写以下命令时:javac-version它会给我输出 我已经编辑了系统变量路径-C:\Progra~1\Java\jdk1.8.0_131\bin; 当我执行以下命令时:"C:\Program Files\Java\jdk1.8.0_131\bin\javac"-ver