global['login_info'] = {}
// 获取格式化时间
var getFormattedTime = function(date){
let currYear = date.getFullYear();
let currMonth = date.getMonth() + 1;
let currDay = date.getDate();
let currHour = date.getHours();
let currMinutes = date.getMinutes();
let currSeconds = date.getSeconds();
currMonth = (currMonth > 9) ? currMonth:"0" + currMonth;
currDay = (currDay > 9) ? currDay:"0" + currDay;
currHour = (currHour > 9) ? currHour:"0" + currHour;
currMinutes = (currMinutes > 9) ? currMinutes:"0" + currMinutes;
currSeconds = (currSeconds > 9) ? currSeconds:"0" + currSeconds;
return `${currYear}-${currMonth}-${currDay} ${currHour}:${currMinutes}:${currSeconds}`;
}
// 玩家登入时记录信息
onEvent('player.logged_in',event => {
let date = getFormattedTime(new Date());
let p = event.player;
global['login_info'][event.player.profile.name] = {time : date, pos: {x : p.x, y : p.y, z : p.z, dim : p.level.dimension}};
})
// 玩家退出时记录信息
onEvent('player.logged_out',event => {
global['login_info'][event.player.profile.name] = null;
})
// 聊天信息获取
onEvent('player.chat',event => {
let input = event.message.trim();
if(input.substring(0,8) == "gameinfo"){
// 传入登入信息对象
event.server.scheduleInTicks(1, global['login_info'], function (callback) {
let playerID = input.substring(9,);
if(callback.data[playerID] == undefined){
event.player.tell(Component.gold('====查询结果===='))
event.player.tell(Component.red("未查询到该玩家在线信息!"));
return;
}
let info = callback.data[playerID];
let playerTime = info.time;
let pos = info.pos;
event.player.tell(Component.gold('====查询结果===='));
event.player.tell(`玩家id:${playerID}\n登入时间:${playerTime}\n登入坐标:x = ${pos.x}, y = ${pos.y}, z = ${pos.z}\n登入维度:${pos.dim}`);
})
}
})