You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.1 KiB

function User(socket, authenticatedDefault) {
this.registered = false
this.authenticated = authenticatedDefault
this.nickname = undefined
this.connection = socket
this.realname = ""
this.username = ""
this.setNickname = function(nickname) {
if (this.nickname !== undefined) {
this.sendRaw(`:${this.nickname} NICK ${nickname}`)
}
this.nickname = nickname
}
this.getNickname = function(nickname) {
return this.nickname
}
this.register = function(username, realname) {
if (!this.authenticated) {
this.connection.destroy()
}
this.username = username
this.realname = realname
this.registered = true
}
this.getAddress = function() {
return this.connection.address().address
}
this.closeConnection = function () {
this.connection.destroy()
}
this.sendMsg = function (from, message, to = this.nickname) {
this.sendRaw(`:${from.nickname} PRIVMSG ${to} :${message}`, "ascii")
}
this.sendRaw = function(message) {
this.connection.write(`${message}\r\n`, "ascii")
}
}
module.exports = User