75 lines
No EOL
2.3 KiB
JavaScript
Executable file
75 lines
No EOL
2.3 KiB
JavaScript
Executable file
import { default as parse } from '../util/chatparse_plain.js'
|
|
import { default as parseNBT } from '../util/parseNBT.js'
|
|
|
|
export default function 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
|
|
}
|
|
let displayName
|
|
if (player.displayName !== undefined) {
|
|
displayName = player.displayName
|
|
} 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)) }
|
|
}
|
|
}
|
|
for (const uuid in buffer2) {
|
|
if (!b.players[uuid]) b.players[uuid] = { displayName: '', realName: '' }
|
|
let displayName = ''
|
|
let realName = ''
|
|
if (buffer2[uuid].displayName) {
|
|
displayName = buffer2[uuid].displayName
|
|
b.players[uuid].displayName = buffer2[uuid].displayName
|
|
}
|
|
if (buffer2[uuid].realName) {
|
|
realName = buffer2[uuid].realName
|
|
b.players[uuid].realName = buffer2[uuid].realName
|
|
}
|
|
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
|
|
}
|
|
}
|
|
return '[[[[ no name ]]]]'
|
|
}
|
|
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 ]]]]'
|
|
}
|
|
}
|
|
} |