- 注册
- 2021/09/08
- 消息
- 570
- 金粒
- 1,937金粒
1 正常现象,因为ui无法自动播放声音,加入服务器那段BGM靠的是改主界面bgm实现的,有时甚至一点也不播,目前没有办法解决;反馈问题:
1.进服时音频和画面对不上,音频有点延迟
2.startgenshin指令无效,只有提示但并未原神启动(错误提示:No targets matched selector找不到目标)
【Lv:3】
原版的聊天界面显示坐标的是啥插件啊
/**
* 正在播放的玩家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}"`);
Player.tell(`\n §d正 §3在 §6为 §l§e您 §r§5启 §9动 §a原 §b神 §c. §2. §4. \n `);
setTimeout(() => {
Player.setTitle('genshin', 2, 8.4, 10);
Player.talkAs("§2原 §a神§6 , §g启 §e动 §6!");
}, 13.6 * 1000);
setTimeout(() => PlayerData = PlayerData.filter(str => str != Player.uuid), 20 * 1000);
}
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('命令安装失败!');
});
这么一改,很多功能都没了,有些东西用复杂的方案实现不是没有道理的。小小简化了一下
JavaScript:/** * 正在播放的玩家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}"`); Player.tell(`\n §d正 §3在 §6为 §l§e您 §r§5启 §9动 §a原 §b神 §c. §2. §4. \n `); setTimeout(() => { Player.setTitle('genshin', 2, 8.4, 10); Player.talkAs("§2原 §a神§6 , §g启 §e动 §6!"); }, 13.6 * 1000); setTimeout(() => PlayerData = PlayerData.filter(str => str != Player.uuid), 20 * 1000); } 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('命令安装失败!'); });
什么功能没了,说一下这么一改,很多功能都没了,有些东西用复杂的方案实现不是没有道理的。
指令执行部分的if else 语句也没必要紧缩,业务场景都模糊了。