2017-08-07 58 views
0

我試圖創建一個不和諧的機器人(使用Discordie庫)一發誓過濾器,我嘗試了兩個腳本(這兩者都不能正常工作)如何在字符串在對象中時執行某些操作?

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(); 
     } 
    } 
}); 

這些都不工作,所以我不知道現在是什麼嘗試。我應該提出的任何建議/更改?

回答

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(); 
    } 
    } 
} 
+0

謝謝,劇本的作品,但現在我有另一個problem-換句話說被阻塞,以及。例如,如果將「舊」添加到要刪除的腳本中,那麼如果我說「粗體」,那麼它也會被刪除。最重要的是,過濾器存在大小寫敏感問題(我可以通過在其中添加各種大寫字母來解決這個問題,這並不是很糟糕) – Permanently

+0

您是否已經解決了這個問題?您的解決方案是將小寫字母拆分爲空格,然後遍歷每個單詞以檢查其發誓列表中是否存在。 – user2676208

相關問題