Add an error handler for uncaught exception

This commit is contained in:
7cc5c4f330d47060 2024-11-07 02:33:43 -05:00
parent b9bb068252
commit fb3328b669
Signed by: 7cc5c4f330d47060
SSH key fingerprint: SHA256:e+4tcZut1nBpe10PqjaO+Rvie0Q7W4qIvFzcUw+7riA

52
plugins/errorh.js Normal file
View file

@ -0,0 +1,52 @@
import { default as settings } from '../settings.json' with {type: "json"}
import { default as version } from '../version.json' with {type: "json"}
import { bots } from "../index.js"
import botVersion from "../util/version.js"
import chatlog from '../util/chatlog.js'
process.on("uncaughtException",(e, o)=>{
for(const i in bots){
try{
bots[i].ccq[0]=`/tellraw ${version.botAuthor} ${
JSON.stringify({
translate: "%s\n",
color: settings.colors.fatalError,
with: [
`An error occured and ${version.botName} will now shut down.`
]
})
}`
bots[i].advanceccq()
const stack = e.stack.split("\n")
for(const item of stack){
bots[i].ccq[0]=`/tellraw ${version.botAuthor} ${
JSON.stringify({
text: item,
color: settings.colors.fatalError
})
}`
bots[i].advanceccq()
}
bots[i].ccq[0]=`/tellraw ${version.botAuthor} ${
JSON.stringify({
translate: "\n%s",
color: settings.colors.fatalError,
with: [
[
"Additional info:\n",
`Bot version: ${botVersion}`
]
]
})
}`
bots[i].advanceccq() // Force the command queue to advance
} catch (e) {}
}
chatlog("error", e.stack)
console.error(e)
process.exit(1)
})
export default function load (b) {
// Due to the nature of this plugin, it does not need to do anything at the bot level
}