owobot/plugins/player.js

77 lines
2.4 KiB
JavaScript
Raw Normal View History

2024-08-12 05:13:32 -04:00
const parse = require('../util/chatparse_plain')
const parseNBT = require('../util/parseNBT')
module.exports = {
2024-08-12 05:13:32 -04:00
load: (b) => {
b.players = {}
b._client.on('player_info', (data) => {
const buffer2 = {}
for (const player of data.data) {
let uuid
if (player.uuid) {
uuid = player.uuid
} else if (player.UUID) {
uuid = player.UUID
2024-07-27 02:39:18 -04:00
}
2024-08-12 05:13:32 -04:00
let displayName
if (player.displayName !== undefined) {
displayName = player.displayName
2024-08-12 05:13:32 -04:00
} else {
displayName = '{"text":"[[[[ No display name ]]]]"}'
}
if (player.player && player.player.name !== undefined) {
buffer2[uuid] = { realName: player.player.name, displayName: parse(parseNBT(displayName)) }
} else if (player.name !== undefined) {
buffer2[uuid] = { realName: player.name, displayName: parse(parseNBT(displayName)) }
} else if (player.displayName !== undefined) {
buffer2[uuid] = { displayName: parse(parseNBT(displayName)) }
2024-07-27 02:39:18 -04:00
}
}
for (const uuid in buffer2) {
if (!b.players[uuid]) b.players[uuid] = { displayName: '', realName: '' }
2024-09-19 23:27:19 -04:00
let displayName = ''
let realName = ''
if (buffer2[uuid].displayName) {
2024-09-19 23:05:54 -04:00
displayName = buffer2[uuid].displayName
b.players[uuid].displayName = buffer2[uuid].displayName
2024-09-19 23:27:19 -04:00
}
if (buffer2[uuid].realName) {
2024-09-19 23:05:54 -04:00
realName = buffer2[uuid].realName
b.players[uuid].realName = buffer2[uuid].realName
2024-09-19 23:27:19 -04:00
}
b.emit('playerdata', uuid, displayName, realName)
}
})
b.findUUID = (name) => {
for (const i in b.players) {
if (b.players[i].realName === name) {
return i
}
}
return '00000000-0000-0000-0000-000000000000'
}
b.findRealName = (name) => {
for (const i in b.players) {
if (b.players[i].displayName === name) {
return b.players[i].realName
}
}
2024-08-12 05:13:32 -04:00
return '[[[[ no name ]]]]'
2024-07-27 02:39:18 -04:00
}
b.findRealNameFromUUID = (uuid) => {
if (b.players[uuid]) {
return b.players[uuid].realName
} else {
return '[[[[ no name ]]]]'
}
}
b.findDisplayName = (uuid) => {
if (b.players[uuid]) {
const displayName = b.players[uuid].displayName.split(' ')
return displayName[displayName.length - 1]
} else {
return '[[[[ No display name ]]]]'
}
}
}
}