/**
* 正在播放的玩家uuid数组
* @type {String[]}
*/
let PlayerData = [];
/**
* 为玩家播放原神启动
* @param {Player} Player 玩家对象
*/
function startGenshin(Player) {
if (PlayerData.includes(Player.uuid)) return;// 正在播放的排除
PlayerData.push(Player.uuid);
mc.runcmdEx(`playsound "genshin_full" ${Player.realName.indexOf(' ') ? `"${Player.realName}"` : Player.realName}`);
Player.tell(`\n §d正 §3在 §6为 §l§e您 §r§5启 §9动 §a原 §b神 §c. §2. §4. \n `);
const time = new Date().getTime();
const intervalId = setInterval(() => {
if(time-new Date.getTime()<13600)return;
Player.setTitle('genshin', 2, 8.4, 10);
Player.talkAs("§2原 §a神§6 , §g启 §e动 §6!");
clearInterval(intervalId);
}, 40);
const intervalId2 = setInterval(()=>{
if(time-new Date.getTime()<20000)return;
PlayerData = PlayerData.filter(str => str != Player.uuid);
clearInterval(intervalId2);
},40)
}
mc.listen('onServerStarted',()=>{
const cmd = mc.newCommand('startgenshin','启动原神',PermType.Any);
cmd.optional('player',ParamType.Player);
cmd.overload(['player']);
cmd.setCallback((_cmd,origin,output,results)=>{
if(!origin.player&&(results?.player?.length ?? 0)==0)return output.error('只能由玩家执行此条指令。');
if(origin.player?.permLevel==0&&results?.player?.length>0)return output.error('您不是管理员^ ^');
if((results?.player?.length ?? 0)!=0){
results.player.forEach(startGenshin);
return output.success(` 已为 ${results.player.length} 名玩家启动原神。`);
}
return startGenshin(origin.player);
});
if(!cmd.setup())logger.error('命令安装失败!');
});