簡體   English   中英

Discord 機器人在幾個小時后停止工作

[英]Discord bot stops working after a few hours

我的機器人工作了 7-8 個小時,然后我收到了這條消息。

在 GuildMember.isStaff (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\app.js:126:98) 在客戶端。 (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\app.js:56:25) 在 Client.emit (events.js:400:28) 在 VoiceStateUpdate.handle (C:\\Users\\Mert\\ Desktop\\Tasarım\\Discord Botları\\bot3\\node_modules\\discord.js\\src\\client\\actions\\VoiceStateUpdate.js:40:14) 在 Object.module.exports [as VOICE_STATE_UPDATE] (C:\\Users\\Mert\\Desktop\\Tasarım \\Discord Botları\\bot3\\node_modules\\discord.js\\src\\client\\websocket\\handlers\\VOICE_STATE_UPDATE.js:4:35) 在 WebSocketManager.handlePacket (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\node_modules \\discord.js\\src\\client\\websocket\\WebSocketManager.js:384:31) 在 WebSocketShard.onPacket (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\node_modules\\discord.js\\src\\client\\ websocket\\WebSocketShard.js:444:22) 在 WebSocketShard.onMessage (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\node_modules\\discord.js\\src\\client\\websocket\\WebSocketShard.js:301:10 ) 在 WebSocket.onMessage (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\node_modules\\ws\\lib\\event-target.j s:132:16) 在 WebSocket.emit (events.js:400:28) (使用node --trace-warnings ...顯示警告的創建位置)(節點:12296) UnhandledPromiseRejectionWarning:未處理的承諾拒絕。 這個錯誤要么是因為在沒有 catch 塊的情況下拋出了異步函數,要么是因為拒絕了一個沒有用 .catch() 處理過的承諾。 要在未處理的承諾拒絕時終止節點進程,請使用 CLI 標志--unhandled-rejections=strict (請參閱 https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (rejection id: 1) (node:12296) [DEP0018] DeprecationWarning:不推薦使用未處理的承諾拒絕。 將來,未處理的承諾拒絕將使用非零退出代碼終止 Node.js 進程。 (node:12296) UnhandledPromiseRejectionWarning: TypeError: 無法在客戶端讀取 GuildMember.isStaff (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\app.js:126:98) 的未定義屬性“位置”。 (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\app.js:56:25) 在 Client.emit (events.js:400:28) 在 VoiceStateUpdate.handle (C:\\Users\\Mert\\ Desktop\\Tasarım\\Discord Botları\\bot3\\node_modules\\discord.js\\src\\client\\actions\\VoiceStateUpdate.js:40:14) 在 Object.module.exports [as VOICE_STATE_UPDATE] (C:\\Users\\Mert\\Desktop\\Tasarım \\Discord Botları\\bot3\\node_modules\\discord.js\\src\\client\\websocket\\handlers\\VOICE_STATE_UPDATE.js:4:35) 在 WebSocketManager.handlePacket (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\node_modules \\discord.js\\src\\client\\websocket\\WebSocketManager.js:384:31) 在 WebSocketShard.onPacket (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\node_modules\\discord.js\\src\\client\\ websocket\\WebSocketShard.js:444:22) 在 WebSocketShard.onMessage (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\node_modules\\discord.js\\src\\client\\websocket\\WebSocketShard.js:301:10 ) 在 WebSocket.onMessage (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\node_modules\\ws\\lib\\event-target.j s:132:16) 在 WebSocket.emit (events.js:400:28) (node:12296) UnhandledPromiseRejectionWarning:未處理的承諾拒絕。 這個錯誤要么是因為在沒有 catch 塊的情況下拋出了異步函數,要么是因為拒絕了一個沒有用 .catch() 處理過的承諾。 要在未處理的承諾拒絕時終止節點進程,請使用 CLI 標志--unhandled-rejections=strict (請參閱 https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒絕編號:2)

我該怎么辦 ?

我認為你有幾個選擇:

  1. 使用 process.exit(-1) 使機器人失敗; 其中 -1 是錯誤代碼,讓 Process Manager 重新啟動它,但要確保在啟動時設置延遲,這樣它就不會陷入崩潰並完全保持離線狀態。
  2. 你的錯誤位於 GuildMember.isStaff (C:\\Users\\Mert\\Desktop\\Tasarım\\Discord Botları\\bot3\\app.js:126:98); 您的 isStaff 檢查正在拋出您可以包裝 try/catch 並安全地使其失敗而不會導致程序崩潰。
  3. 修復錯誤,它顯然返回 null/undefined 值或只是不可能,因此需要更多的作業並檢查 app.js 中上面幾行的代碼。

您需要相應地處理承諾拒絕或至少以某種方式處理它們。 錯誤消息的底部確實有說明“此錯誤源於在沒有 catch 塊的異步函數內部拋出,或拒絕未使用 .catch() 處理的承諾”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM