2017-09-20 17 views
1

我有一些代碼在後臺運行,24/7,在JavaScript當然。我想設置一個discord.js機器人來輸出一條消息,如果在不斷運行的代碼上發生了某些事情(比如錯誤)。不和諧Bot發送消息無命令

如何在不聽消息的情況下向任何頻道發送消息?所有的教程都會創建依賴於COMMAND的命令來讓機器人「回覆」你。我想讓機器人成爲發送第一條消息的機器人,並閱讀我的迴應,並據此採取行動。

我目前使用的是discord.js節點庫(https://discord.js.org/)。

這可能嗎?

回答

2

按名稱從通道緩存中獲取通道列表,並將error event的事件偵聽器添加到窗口。當檢測到錯誤時,發送消息到channel

var client = new Discord.Client(); 
var channel = client.channels.get('name', nameOfChannel); // or client.channels.get("the channel id") 

window.addEventListener('onError', function(e) { 
    channel.send(e.error.message) // or client.sendMessage(channel, e.error.message) in older versions; 
}); 
+0

是否需要一個EventListener?或者我可以只是在if語句client.sendMessage例如? –

+0

當我運行你的代碼時,我也得到了這個:TypeError:client.sendMessage不是函數 –

+1

@GalAppelbaum它應該是'channel.sendMessage()',其中'channel'應該是你的目標通道,因爲'client'是機器人本身。而且,這是可能的。 Ori Drori在這裏做的是,如果檢測到錯誤,它會讓機器人首先將消息發送給目標渠道**。你顯然可以用其他一些事件處理器替換它。 (例如:當殭屍已經登錄時發送消息,或者當新用戶進入服務器時發送消息)。 – WQYeo