我遇到了一个问题,我的机器人在丰富的嵌入中没有正确提及。它似乎根本无法标记用户。
一个提及最终看起来像......
<@601756839956447232>
它应该ping 用户,看起来像......
author.toString()在我的消息中做。<@${author.id}>.@${author.tag}.${author}.所有这些尝试都产生了相同的结果。
这是我正在使用的代码...
var serv = message.guild
var author = message.author
var myInfo = new discord.RichEmbed()
.setAuthor(`${serv.name}'s roles`,`${message.guild.iconURL}`)
.addField(`Roles`, serv.roles.map(r => `${r}`).join(' | '),true)
.setColor(0xffd000)
.setFooter('Server Roles.')
.setFooter(`Requested by @${author.tag}`,`${author.avatarURL}`)
message.channel.sendEmbed(myInfo);
Run Code Online (Sandbox Code Playgroud)
我的主要目标是在嵌入消息中标记用户而不标记用户。 我的主要重点是让https://imgur.com/a/hbgm1TX到https://imgur.com/a/lB1Moh9但 ping 实际上并没有 ping 位于嵌入中的任何人。
我想检查用户是否满足命令列出的任何权限。例如,如果所需的权限是Administrator或Manage_Webhooks,并且如果用户仅满足这些权限之一,则该命令将运行。
这是一些代码
if (message.member.guild.me.hasPermission("MANAGE_WEBHOOKS", "ADMINISTRATOR"))
return message.channel.send("I don't have the permissions to make webhooks, please contact an admin or change my permissions!")
if (!message.member.hasPermission("MANAGE_WEBHOOKS", "ADMINISTRATOR")) return message.channel.send("You need to be an admin or webhook manager to use this command.");
Run Code Online (Sandbox Code Playgroud)
如果需要其余代码,就在这里。
const Discord = require('discord.js');
const commando = require('discord.js-commando');
class pingy extends commando.Command {
constructor(client) {
super(client, {
name: 'pinghook',
group: 'help',
memberName: 'pinghook',
description: 'This is where you can set the pinghook.',
aliases: ['ph', 'pingh', 'phook', …Run Code Online (Sandbox Code Playgroud) 有没有办法在 Discord 中提及用户而不实际 ping 他们?我不想要角色 ping 之类的东西,因为您必须删除该角色,并且当新人查看它时,它会被视为@deleted-role。
也试过unicode,但没有用。检查了其他图书馆,什么都没有。我找到了一个可以做到这一点的机器人,但检查它的 message.content 没有显示任何内容,并且 D.JS 的 v12 功能disableMentions仅插入一个细的 unicode 字符来中断提及,这会导致类似<@id>, 或<@(really_small_unicode_char)id>(@\u200b) 的结果。
假设我正在使用一个GET请求https://example.com,响应如下:
This is a response message.
Run Code Online (Sandbox Code Playgroud)
我将如何以某种方式修改它,以便在我的代码中,以便它可以将响应更改为如下所示:
This is a MODIFIED response message.
Run Code Online (Sandbox Code Playgroud)
例如,如果我的 Electron 应用程序要导航到https://example.com,屏幕将显示修改后的内容而不是原始内容。
本质上,我试图从字面上修改请求。
我的代码基于这个问题,但它只显示了预先输入的概念证明Buffer,因为在我的情况下,我想修改响应而不是直接替换它。所以,我的代码如下所示:
This is a response message.
Run Code Online (Sandbox Code Playgroud)
这应该手动请求 URL、获取响应并返回它。如果没有协议事件,它可以工作并给我一个响应,但经过一些调试后,这段代码始终一遍又一遍地调用相同的 URL,但没有响应。
还有WebRequest API,但是没有办法修改响应体,只能修改请求头&相关内容。
我还没有完全研究基于 Chromium 的解决方案,但是在查看了这个之后,我不确定是否可以修改响应,以便它首先出现在我的应用程序端。此外,我不熟悉到处发送的 Chromium/Puppeteer 消息。
有没有一种优雅的方法让 Electron 获取 URL 响应/请求,使用 headers/body/等调用 URL,然后保存并修改响应以在 Electron 中显示不同?
所以,假设我正在制作像老虎机这样的东西,为了使用我想使用的表情符号,我会在一个数组中定义它们。
var arr = ["emoji","emoji2","emoji3","emoji4","emoji5"]
Run Code Online (Sandbox Code Playgroud)
假设我希望表情符号 1 - 4 出现超过 5 个,并说降低 emoji5 被选中的概率。
我可以做一些大的事情:
var arr = [
"emoji","emoji2","emoji3","emoji4",
"emoji","emoji2","emoji3","emoji4",
"emoji","emoji2","emoji3","emoji4",
"emoji","emoji2","emoji3","emoji4",
"emoji","emoji2","emoji3","emoji4",
"emoji","emoji2","emoji3","emoji4","emoji5",
]
var emoji = arr[Math.floor(Math.random() * arr.length)]
Run Code Online (Sandbox Code Playgroud)
但这不是一个非常有效的想法,那么是否可以在不制作非常大的数组的情况下执行上述想法?
我的目标基本上是拥有一个像
var arr = ["emoji","emoji2","emoji3","emoji4","emoji5"]
Run Code Online (Sandbox Code Playgroud)
它会输出一些表情符号 1 - 4 比 emoji5 更频繁出现的东西,没有大数组。
我有一个contenteditableDIV 元素,我不想粘贴 CSS,基本上只是它只粘贴到innerText,而不是innerHTML。我没有使用任何库,只是纯粹的 Javascript。目前,如果我从网站复制一些 CSS 文本,然后将其粘贴到我的 div 元素中,样式也会随之而来。我想要它,这样如果我要粘贴它,CSS 就不会出现,或者使 CSS 被oninput我为 div 元素的类放置的事件中的字体/颜色覆盖。那么,我该怎么做呢?
DIV 元素的 CSS:
.mystyle {
border:4px solid gray;
background-color: #00000070;
color: white;
font-family: 'Courier New', Courier, monospace;
width: 1245px;
height: 200px;
padding: 10px;
font-size: 14px;
text-shadow: 3px 3px #3f3f3f;
text-align: justify;
}
Run Code Online (Sandbox Code Playgroud)
HTML 片段:
<div class="mystyle" contenteditable="true" id="input"
oninput='//what to put here?'></div>
Run Code Online (Sandbox Code Playgroud) 当我尝试在 Discord.JS 中增强我的 aboutserver 命令时,我意识到你可以自定义输出,比如如果输出是 1,你可以让它说别的东西而不是 1,比如验证级别低。我为我的explicitContentFilter 和我的命令的verificationLevel 部分做了这个,他们设法获取了自定义消息,但只获取了代码每个部分的最后一个。当我调整调节或 eCF 时,自定义消息在运行命令时保持不变。
我试过backticks从代码中删除,
(if (serv.explicitContentFilter = `1`)
=>
(`if (serv.explicitContentFilter = 1)
但是没有做任何改变。我尝试?Number:1像这样在末尾添加: if (serv.explicitContentFilter?Question:1){ 并且代码不起作用,它一直卡住,我什至尝试调整代码的位置,我尝试else在最后删除部分代码。未进行更改。
async run(message, args){
if (message.channel instanceof discord.DMChannel) return message.channel.send('This command cannot be executed here.')
else
var serv = message.guild
if (serv.explicitContentFilter = `0`) {
var eFC = "Don't Scan Any messages";
} else {
var eFC = serv.explicitContentFilter;
}
if (serv.explicitContentFilter = `1`) {
var eFC = "Scan …Run Code Online (Sandbox Code Playgroud)