add chat queue
This commit is contained in:
parent
3b40fabb5c
commit
2841183fd3
1 changed files with 21 additions and 3 deletions
|
@ -1,25 +1,30 @@
|
|||
import EventEmitter from "node:events"
|
||||
import prismarineChat, { processNbtMessage } from "prismarine-chat"
|
||||
|
||||
// TODO: Chat queue
|
||||
|
||||
export default class Chat extends EventEmitter {
|
||||
|
||||
#client
|
||||
#chat
|
||||
#patterns
|
||||
#queue
|
||||
#sendInterval
|
||||
|
||||
constructor(client) {
|
||||
super()
|
||||
this.#client = client
|
||||
this.#chat = prismarineChat(client.version)
|
||||
this.#patterns = new Map()
|
||||
this.#queue = []
|
||||
|
||||
this.#client.addListener("system_chat", this.#systemChat.bind(this))
|
||||
|
||||
this.#sendInterval = setInterval(this.#sendMessage.bind(this), 1_000)
|
||||
this.#client.addListener("end", () => clearInterval(this.#sendInterval))
|
||||
}
|
||||
|
||||
chat(message) {
|
||||
this.#client.chat(message)
|
||||
this.#queue.push(message)
|
||||
// this.#client.chat(message)
|
||||
}
|
||||
|
||||
addPattern(name, regexp) {
|
||||
|
@ -49,4 +54,17 @@ export default class Chat extends EventEmitter {
|
|||
this.emit(`chat:${name}`, ...match)
|
||||
}
|
||||
}
|
||||
|
||||
#sendMessage() {
|
||||
if (this.#client.chat === undefined) {
|
||||
return
|
||||
}
|
||||
|
||||
const message = this.#queue.shift()
|
||||
if (message === undefined) {
|
||||
return
|
||||
}
|
||||
|
||||
this.#client.chat(message)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue