【问题标题】:Allowing links only in a specific channel仅允许特定频道中的链接
【发布时间】:2020-05-06 06:34:23
【问题描述】:

我想知道你们中是否有人可以帮助我,我想将频道设为仅链接,这意味着如果您尝试在那里输入或发送消息,它将被删除机器人会说“错误!此频道仅用于链接”之类的内容,就像您对要删除的链接进行过滤时一样。感谢任何可以提供任何帮助和示例的人。

【问题讨论】:

    标签: discord discord.js


    【解决方案1】:

    在您的 message 事件中,您可以检查消息是否在唯一链接通道中发送,如果是,请检查 message.contentRegExp() 以确定是否应允许。

    if (message.channel === message.guild.channels.find(channel => channel.name === 'links-only')) {
            const linkRegex = new RegExp(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g)
            if (!linkRegex.test(message.content)) {
                message.delete()
                message.reply('this is a link-only channel').then(msg => msg.delete(5000))
            }
        }
    

    【讨论】:

    • 非常感谢您的帮助,如果您可以将代码重新格式化为 v11.5,因为我还没有迁移到 v12,那将非常感谢您。
    • 谢谢它有点用,我只是使用了你提供的那个,但不知何故,机器人在删除第一条消息后并没有停止。它不断发送“这是一个仅限链接的频道”,这很大程度上是因为它检测到机器人正在那里发送文本,所以它就像一个循环
    • 我已经修好了,对不起,括号丢失了,如果答案解决了你的问题,请接受它
    • 不,它仍然是同样的问题,就像我说它检测到机器人也在发送文本,因此它会一遍又一遍地删除,我所做的唯一修复是删除它的最后一部分说 message.reply 并保留它 message.delete
    • 哦,无论如何,您的message 事件中都应该有if (message.author.bot) return;
    猜你喜欢
    • 1970-01-01
    • 2018-07-07
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    相关资源
    最近更新 更多