猫史档案馆


【box3】账号权限区分、权限申请和管喵查看申请列表的代码

用户:翎with珝翎with珝查看:0 回复:8 评论:0 创建时间:2023-02-03T17:54:51


看代码就彳亍了(

看不懂看注释(

↓ ↓ ↓ 以下是代码 ↓ ↓ ↓

//管喵
var admin = [
    '甲',
    '乙',
    '丙',
    '丁'
]
//权限申请者名称
var pr_name = []
//权限申请原因
var pr_whys = []
//权限申请结果
var pr_oc = []
//权限申请审核员
var pr_admin = []

//玩家进入地图
world.onPlayerJoin(async ({ entity }) => {
    //账号限制(opa:账号行为权)
    if (entity.player.boxId == "") {//boxId为空值
        entity.player.opa = false;//禁用行为
        //弹出窗口
        entity.player.dialog({
            type: Box3DialogType.TEXT,
            content: `检测到你的账号为游客账号\n已对你的行为禁用`,
        });
    } else if (entity.player.boxId.startsWith('code')) {//boxId前四位是code
        entity.player.opa = false;//禁用行为
        //弹出窗口
        entity.player.dialog({
            type: Box3DialogType.TEXT,
            content: `检测到你的账号疑似体验号\n已对你的行为禁用\n你可以向管喵索要权限`,
        });
    } else {//以上条件都不符合的
        entity.player.opa = true;//启用行为
    };
});

//玩家按下安静
world.onPress(async ({ entity, button }) => {
    if (button == Box3ButtonType.ACTION1) {//按下了右键(B)
        if (entity.player.crouchButton) {//还蹲下了
            //弹出菜单栏
            let ops = admin.includes(entity.player.name) ? ["管喵权限"] : ["索要权限"];
            let choice = await entity.player.dialog({
                type: Box3DialogType.SELECT,
                title: "控制面板",
                content: "请进行你的操作",
                options: ops,
            });
            if (!choice) return;
            if (choice) {
                if (choice.value == "索要权限") {//如果选择的是"索要权限"
                    let sq_name = entity.player.name;//将申请人名设为玩家名字

                    //给所有管喵声明
                    world.querySelectorAll("player").forEach((e) => {
                        if (admin.includes(e.player.name)) {
                            e.player.directMessage(`请暂时不要离开\n即将有无行为权限账号申请权限`);
                        };
                    });

                    //给申请权限的人弹出窗口
                    //让申请权限的人输入申请理由
                    let sqly = await entity.player.dialog({
                        type: Box3DialogType.INPUT,
                        title: "索要权限",
                        content: "请输入索要理由",
                        placeholder: "理由",
                        confirmText: "确认",
                    })
                    if (!sqly) return;
                    if (sqly) {
                        pr_name.push(sq_name);//将申请的玩家加入历史申请者名单
                        pr_whys.push(sqly);//将理由加入历史申请理由
                        //遍历所有玩家
                        world.querySelectorAll("player").forEach(async (e) => {
                            //玩家是管喵
                            if (admin.includes(e.player.name)) {
                                //给管喵弹出审核窗口
                                let sq = await e.player.dialog({
                                    type: Box3DialogType.SELECT,
                                    title: "申请页面",
                                    content: `来自${sq_name}的申请:\n申请原因:\n${sqly}`,
                                    options: ["通过", "劝返"]
                                });
                                if (!sq) return;
                                //管喵通过审核
                                if (sq.value == "通过") {
                                    //将当前审核设为审核的管喵
                                    let shy_name = e.player.name
                                    //审核状态设为"通过"
                                    pr_oc.push('通过')
                                    //将审核的管喵加入历史审核管喵
                                    pr_admin.push(shy_name)

                                    //再次遍历所有玩家
                                    world.querySelectorAll("player").forEach(async (e) => {
                                        //如果玩家名为申请的玩家名
                                        if (e.player.name == sq_name) {
                                            //给申请的玩家弹出窗口
                                            await e.player.dialog({
                                                type: Box3DialogType.SELECT,
                                                title: "审核详情",
                                                content: `你已通过了审核\n审核员:${shy_name}`,
                                            })
                                            e.player.opa = true//将行为设为允许
                                        } else if (admin.includes(e.player.name) && e.player.name !== shy_name) {//如果玩家名是某管喵的名字,且不是审核的管喵
                                            e.player.cancelDialogs();//关闭管喵打开的所有窗口
                                            //提示审核已被通过
                                            await e.player.dialog({
                                                type: Box3DialogType.SELECT,
                                                title: "审核页面",
                                                content: `@${sq_name} 的审核申请已被管喵 @${shy_name} 通过`,
                                            });
                                        };
                                    });
                                } else if (sq.value == "劝返") {//管喵没有通过审核
                                    //将当前审核设为审核的管喵
                                    let shy_name = e.player.name
                                    //审核状态设为"劝返"
                                    pr_oc.push('劝返')
                                    //将审核的管喵加入历史审核管喵
                                    pr_admin.push(shy_name)

                                    //再次遍历所有玩家
                                    world.querySelectorAll("player").forEach(async (e) => {
                                        //如果玩家名为申请的玩家名
                                        if (e.player.name == sq_name) {
                                            //给申请的玩家弹出窗口
                                            await e.player.dialog({
                                                type: Box3DialogType.SELECT,
                                                title: "审核详情",
                                                content: `你未通过审核\n审核员:@${shy_name}`,
                                            });
                                        } else if (admin.includes(e.player.name && e.player.name !== shy_name)) {//如果玩家名是某管喵的名字,且不是审核的管喵
                                            e.player.cancelDialogs();//关闭管喵打开的所有窗口
                                            //提示审核被劝返
                                            await e.player.dialog({
                                                type: Box3DialogType.SELECT,
                                                title: "审核页面",
                                                content: `@${sq_name} 的审核申请已被管喵 @${shy_name} 劝返`,
                                            });
                                        };
                                    });
                                };
                            };
                        });
                    };
                } else if (choice.value == "管喵权限") {//如果选择的是"管喵权限"
                    //弹出窗口
                    let pr_detail = await entity.player.dialog({
                        type: Box3DialogType.SELECT,
                        title: "权限管理",
                        content: "请进行你的操作",
                        options: ["权限申请详情"],
                    });

                    if (pr_detail) {
                        //如果玩家选择的是"权限申请详情"
                        if (pr_detail.value == "权限申请详情") {
                            //弹出窗口
                            let pr_det = await entity.player.dialog({
                                type: Box3DialogType.SELECT,
                                title: "权限申请详情",
                                content: "请选择你要查看的权限申请详情",
                                options: pr_name,
                            })
                            if (!pr_det) return;
                            if (pr_det) {
                                //根据玩家的选择项目
                                //查找对应的数据
                                entity.player.dialog({
                                    type: Box3DialogType.TEXT,
                                    title: "权限申请详情",
                                    content: `${pr_name[pr_det.index]}的申请\n申请原因:\n${pr_whys[pr_det.index]}\n审核情况:${pr_oc[pr_det.index]}\n审核员:${pr_admin[pr_det.index]}`,
                                });
                            };
                        };
                    };
                };
            };
        };
    };
});

凑合看看(


回复

上一页1 页 / 共 1下一页
翎with珝翎with珝

自古沙发归楼主(

点赞0


评论


raearaea

喵d

点赞0


评论


AokenAoken

ddd

 

 

 

 

 

 

 

 

 

 

 

 

 

点赞0


评论


仙之鹤仙之鹤

dddd

点赞0


评论


名字送冷吖O名字送冷吖O

因为别人的代码我不放心,所以我不会搬别人的代码而是自己写(

点赞0


评论


CenCen

喵喵

点赞0


评论


PoiresPoires

()()

点赞0


评论


星蘑本尊星蘑本尊

ddd

点赞0


评论