猫史档案馆


sql太难了!!!

用户:黑色中王牌黑色中王牌查看:6 回复:5 评论:6 创建时间:2022-07-05T16:43:43


async function savePlayer(entity) {
    if (entity.player.userKey) {
        await db.sql`
            INSERT INTO player (
                userName,
                hp,
                dengji,
                dianshu,
                beibaorongliang,
                beibao,
                xianzaichuandezhuanbie,
                xianzaitonglongshulian,
                xianzaiyoudetonglong,
                fuzhong,
                shitou,
                maocao,
                mutou,
                xianwei,
                tiekuang,
                shoupi,
                datuirou,
                mifeng,
                shuzhi,
                heizhenzhu,
                quhewu,
                qiyouhuaguo,
                baizhenzhu,
                shiyou,
                shuijin,
                qiyou,
                shuini,
                shuishi,
                heiyaoshi,
                youjijuhewu,
                jiatushu,
                mutan,
                chongwushiyao,
                xiyoumodu,
                ankangyuyou,
                maopi,
                yinghuofen,
                jiaozhi,
                xiaoxiaohuichen,
                jinshuding,
                userKey
            )
            VALUES(
                ${entity.player.name},
                ${entity.hp},
                ${entity.dengji},
                ${entity.dianshu},
                ${entity.beibaorongliang},
                ${JSON.stringify(entity.beibao)},
                ${JSON.stringify(entity.xianzaichuandezhuanbie)},
                ${entity.xianzaitonglongshulian},
                ${JSON.stringify(entity.xianzaiyoudetonglong)},
                ${entity.fuzhong},
                ${entity.shitou},
                ${entity.maocao},
                ${entity.mutou},
                ${entity.xianwei},
                ${entity.tiekuang},
                ${entity.shoupi},
                ${entity.datuirou},
                ${entity.mifeng},
                ${entity.shuzhi},
                ${entity.heizhenzhu},
                ${entity.quhewu},
                ${entity.qiyouhuaguo},
                ${entity.baizhenzh},
                ${entity.shiyou},
                ${entity.shuijin}
                ${entity.qiyou},
                ${entity.shuini},
                ${entity.shuishi},
                ${entity.heiyaoshi},
                ${entity.youjijuhewu},
                ${entity.jiatushu},
                ${entity.mutan},
                ${entity.chongwushiyao},
                ${entity.xiyoumodu},
                ${entity.ankangyuyou},
                ${entity.maopi},
                ${entity.yinghuofen},
                ${entity.jiaozhi},
                ${entity.xiaoxiaohuichen},
                ${entity.jinshuding},
                ${entity.player.userKey}
            )
            ON CONFLICT(userKey)
            DO UPDATE SET
                userName=${entity.player.name},
                hp=${entity.hp},
                dengji=${entity.dengji},
                dianshu=${entity.dianshu},
                beibaorongliang=${entity.beibaorongliang},
                beibao=${JSON.stringify(entity.beibao)},
                xianzaichuandezhuanbie=${JSON.stringify(entity.xianzaichuandezhuanbie)},
                xianzaitonglongshulian=${entity.xianzaitonglongshulian},
                xianzaiyoudetonglong=${JSON.stringify(entity.xianzaiyoudetonglong)},
                fuzhong=${entity.fuzhong},
                shitou=${entity.shitou},
                maocao=${entity.maocao},
                mutou=${entity.mutou},
                xianwei=${entity.xianwei},
                tiekuang=${entity.tiekuang},
                shoupi=${entity.shoupi},
                datuirou=${entity.datuirou},
                mifeng=${entity.mifeng},
                shuzhi=${entity.shuzhi},
                heizhenzhu=${entity.heizhenzhu},
                quhewu=${entity.quhewu},
                qiyouhuaguo=${entity.qiyouhuaguo},
                baizhenzhu=${entity.baizhenzhu},
                shiyou=${entity.shiyou},
                shuijin=${entity.shuijin},
                qiyou=${entity.qiyou},
                shuini=${entity.shuini},
                shuishi=${entity.shuishi},
                heiyaoshi=${entity.heiyaoshi},
                youjijuhewu=${entity.youjijuhewu},
                jiatushu=${entity.jiatushu},
                mutan=${entity.mutan},
                chongwushiyao=${entity.chongwushiyao},
                xiyoumodu=${entity.xiyoumodu},
                ankangyuyou=${entity.ankangyuyou},
                maopi=${entity.maopi},
                yinghuofen=${entity.yinghuofen},
                jiaozhi=${entity.jiaozhi},
                xiaoxiaohuichen=${entity.xiaoxiaohuichen},
                jinshuding=${entity.jinshuding}
            `
    } else {
        entity.player.directMessage('你需要先登录。')
    }
}
async function loadPlayer(entity) {
    const data = await db.sql`SELECT * FROM player WHERE userKey=${entity.player.userKey} limit 1`[0]
    if (data) {
        entity.hp = data.hp
        entity.dengji = data.dengji
        entity.dianshu = data.dianshu
        entity.beibaorongliang = data.beibaorongliang
        entity.beibao = JSON.parse(data.beibao)
        entity.xianzaichuandezhuanbie = JSON.parse(data.xianzaichuandezhuanbie)
        entity.beibaorongliang = data.beibaorongliang
        entity.xianzaiyoudetonglong = JSON.parse(data.xianzaiyoudetonglong)
        entity.fuzhong = data.fuzhong
        entity.shitou = data.shitou
        entity.maocao = data.maocao
        entity.mutou = data.mutou
        entity.xianwei = data.xianwei
        entity.tiekuang = data.tiekuang
        entity.shoupi = data.shoupi
        entity.datuirou = data.datuirou
        entity.mifeng = data.mifeng
        entity.shuzhi = data.shuzhi
        entity.heizhenzhu = data.heizhenzhu
        entity.quhewu = data.quhewu
        entity.qiyouhuaguo = data.qiyouhuaguo
        entity.baizhenzhu = data.baizhenzhu
        entity.shiyou = data.shiyou
        entity.shuijin = data.shuijin
        entity.qiyou = data.qiyou
        entity.shuini = data.shuini
        entity.shuishi = data.shuishi
        entity.heiyaoshi = data.heiyaoshi
        entity.youjijuhewu = data.youjijuhewu
        entity.jiatushu = data.jiatushu
        entity.mutan = data.mutan
        entity.chongwushiyao = data.chongwushiyao
        entity.xiyoumodu = data.xiyoumodu
        entity.ankangyuyou = data.ankangyuyou
        entity.maopi = data.maopi
        entity.yinghuofen = data.yinghuofen
        entity.jiaozhi = data.jiaozhi
        entity.xiaoxiaohuichen = data.xiaoxiaohuichen
        entity.jinshuding = data.jinshuding
    }
}
async function showPlayers() {
    console.clear()
    const playerList = await db.sql`SELECT * FROM player`
    for (const p of playerList) {
        console.log(JSON.stringify(p))
    }
}
async function createTable() {
    await db.sql`CREATE TABLE IF NOT EXISTS player (
        userName TEXT DEFAULT '',
        hp INTEGER DEFAULT 100,
        dengji INTEGER DEFAULT 0,
        dianshu INTEGER DEFAULT 0,
        beibaorongliang INTEGER DEFAULT 0,
        beibao TEXT DEFAULT '',
        xianzaichuandezhuanbie TEXT DEFAULT '',
        xianzaitonglongshulian INTEGER DEFAULT 0,
        xianzaiyoudetonglong TEXT DEFAULT '',
        fuzhong INTEGER DEFAULT 0,
        shitou INTEGER DEFAULT 0,
        maocao INTEGER DEFAULT 0,
        mutou INTEGER DEFAULT 0,
        xianwei INTEGER DEFAULT 0,
        tiekuang INTEGER DEFAULT 0,
        shoupi INTEGER DEFAULT 0,
        datuirou INTEGER DEFAULT 0,
        mifeng INTEGER DEFAULT 0,
        shuzhi INTEGER DEFAULT 0,
        heizhenzhu INTEGER DEFAULT 0,
        quhewu INTEGER DEFAULT 0,
        qiyouhuaguo INTEGER DEFAULT 0,
        baizhenzhu INTEGER DEFAULT 0,
        shiyou INTEGER DEFAULT 0,
        shuijin INTEGER DEFAULT 0,
        qiyou INTEGER DEFAULT 0,
        shuini INTEGER DEFAULT 0,
        shuishi INTEGER DEFAULT 0,
        heiyaoshi INTEGER DEFAULT 0,
        youjijuhewu INTEGER DEFAULT 0,
        jiatushu INTEGER DEFAULT 0,
        mutan INTEGER DEFAULT 0,
        chongwushiyao INTEGER DEFAULT 0,
        xiyoumodu INTEGER DEFAULT 0,
        ankangyuyou INTEGER DEFAULT 0,
        maopi INTEGER DEFAULT 0,
        yinghuofen INTEGER DEFAULT 0,
        jiaozhi INTEGER DEFAULT 0,
        xiaoxiaohuichen INTEGER DEFAULT 0,
        jinshuding INTEGER DEFAULT 0,
        userKey TEXT PRIMARY KEY UNIQUE DEFAULT ''--玩家的识别码
    )`
    showPlayers()
}
createTable()
require('./武器.js')
world.onPlayerJoin(async ({ entity }) => {
    entity.hp = 100
    entity.dengji = 0
    entity.dianshu = 0
    entity.beibaorongliang = 100
    entity.beibao = []
    entity.xianzaichuandezhuanbie = []
    entity.xianzaitonglongshulian = 0
    entity.xianzaiyoudetonglong = []
    entity.fuzhong = 0
    entity.shitou = 0
    entity.maocao = 0
    entity.mutou = 0
    entity.xianwei = 0
    entity.tiekuang = 0
    entity.shoupi = 0
    entity.datuirou = 0
    entity.mifeng = 0
    entity.shuzhi = 0
    entity.heizhenzhu = 0
    entity.quhewu = 0
    entity.qiyouhuaguo = 0
    entity.baizhenzhu = 0
    entity.shiyou = 0
    entity.shuijin = 0
    entity.qiyou = 0
    entity.shuini = 0
    entity.shuishi = 0
    entity.heiyaoshi = 0
    entity.youjijuhewu = 0
    entity.jiatushu = 0
    entity.mutan = 0
    entity.chongwushiyao = 0
    entity.xiyoumodu = 0
    entity.ankangyuyou = 0
    entity.maopi = 0
    entity.yinghuofen = 0
    entity.jiaozhi = 0
    entity.xiaoxiaohuichen = 0
    entity.jinshuding = 0
    loadPlayer(entity)
    entity.player.onPress(async ({ entity, button }) => {
        if (button == Box3ButtonType.ACTION1) {
            const result = await entity.player.dialog({
                type: Box3DialogType.SELECT,
                title: entity.player.name,
                content: `
                血量:${entity.hp}
                等级:${entity.dengji}
                点数:${entity.dianshu}
                背包容量:${entity.beibaorongliang}
                现在穿戴的装备:[${entity.xianzaichuandezhuanbie}]
                现在的驯服只数:${entity.xianzaiyoudetonglong}
                现在你有的恐龙:[${entity.xianzaiyoudetonglong}]
                负重:${entity.fuzhong}`,
                options: ['生存指南', '保存', '背包', '制作台'],
            })
            if (!result || result === null) return;
            if (result.value == '生存指南') {
                entity.player.dialog({
                    type: 'text',
                    content: `
                    ——————什么东西可以爆出什么东西?——————
                    1.树可以爆树皮,如果运气好,可以获得木头
                    2.喵可以爆石头,如果运气好,可以获得铁矿
                    3.鲨鱼可以爆鱼肉,如果运气好,可以爆出优质鱼肉
                    `,
                });
            }
            if (result.value == '保存') {
                await savePlayer(entity)
                entity.player.directMessage('保存成功')
            }
            if (result.value == '背包') {
                const result = await entity.player.dialog({
                    type: Box3DialogType.SELECT,
                    content: `
                    石头:${entity.shitou}
                    茅喵:${entity.maocao}
                    木头:${entity.mutou}
                    纤维:${entity.xianwei}
                    铁矿:${entity.tiekuang}
                    兽皮:${entity.shoupi}
                    大腿肉:${entity.datuirou}
                    蜂蜜:${entity.mifeng}
                    树脂:${entity.shuzhi}
                    黑珍珠:${entity.heizhenzhu}
                    聚合物:${entity.quhewu}
                    稀有花朵:${entity.qiyouhuaguo}
                    白珍珠:${entity.baizhenzhu}
                    石油:${entity.shiyou}
                    水晶:${entity.shuijin}
                    汽油:${entity.qiyou}
                    水泥:${entity.shuini}
                    燧石:${entity.shuishi}
                    黑曜石:${entity.heiyaoshi}
                    有机聚合物:${entity.youjijuhewu}
                    甲壳素:${entity.jiatushu}
                    木炭:${entity.mutan}
                    宠物饲料:${entity.chongwushiyao}
                    稀有蘑菇:${entity.xiyoumodu}
                    安康鱼油:${entity.ankangyuyou}
                    毛皮:${entity.maopi}
                    引火粉:${entity.yinghuofen}
                    角质:${entity.jiaozhi}
                    强效灰尘:${entity.xiaoxiaohuichen}
                    金属锭:${entity.jinshuding}
                    `,
                });
            }
            //if (result.value == '')
        }
    })
})

呜呜呜这个报错太难改了


回复

上一页1 页 / 共 1下一页
果敢的超能鸭viwX果敢的超能鸭viwX

你这......我该怎么说你......

点赞1


评论


1086爱编程1086爱编程

这么多不报错就怪了()

点赞0


评论


黑色中王牌黑色中王牌

报错是这样的

center_image

点赞0


评论


SCS_user_i1eril0dUySCS_user_i1eril0dUy

报错内容发一下

点赞0


评论


busterbuster

你这个。。。写这么长肯定有些东西遗漏或写错

点赞0


评论