我正在尝试为Discord机器人创建一个发誓过滤器(使用Discordie库),并且我尝试了两个脚本(两个脚本都无法正常工作)<\ n / p>
var swear = ["swear1", "swear2"]
bot.Dispatcher.on(Event.MESSAGE_CREATE, e => {
if (e.message.content == swear) {
e.message.delete();
}
脚本中没有任何咒骂词被阻止,因此脚本甚至不存在。
我也试过这个:
var swear = ["swear1", "swear2"]
bot.Dispatcher.on(Event.MESSAGE_CREATE, e => {
var found = false;
for(var i = 0; i < vendors.length; i++) {
if (vendors[i].e.message.content == swear) {
found = true;
e.message.delete();
}
}
});
这些都不起作用,所以我不确定现在要尝试什么。我应该提出任何建议/改变吗?
答案 0 :(得分:1)
我不能说我熟悉不和谐的供应商,但两种方法的结合可能会有效。
首先,您要将数组与字符串进行比较,以便在一开始就给您带来问题。在第二个中,您使用循环遍历数组,但数组不是正确的。
此外,如果你有两个要比较的字符串,你不会想要检查它们是否完全相等,但字面意思是一个字符串在另一个字符串中。该函数有时作为Contains存在,但我相信javascript方法是indexOf。这有帮助,因为如果字符串不存在,函数应该返回-1。
考虑:
var swear = ["swear1", "swear2"]
bot.Dispatcher.on(Event.MESSAGE_CREATE, e => {
for(var i = 0; i < swear.length; i++){
if (e.message.content.indexOf(swear[i]) !== -1) {
e.message.delete();
}
}
}
答案 1 :(得分:0)
无效,因为您正在将字符串与数组进行比较。您应该检查字符串是否作为数组中的元素存在。为此,您可以使用:
getUsers_v2
有关详情,请查看:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf