用户:
23332808查看:2 回复:5 评论:2 创建时间:2023-10-21T22:31:38
async function showMinecraft() {
playerList = await db.sql`SELECT * FROM block`
console.log(playerList.length)
}
async function set_minecraft_table() {
await db.sql`
CREATE TABLE IF NOT EXISTS block (
other TEXT DEFAULT '',--金钱, INTEGER类型用于存储整数
blocklist TEXT DEFAULT '',--废品, INTEGER类型用于存储整数
lasttime INTEGER DEFAULT 0,--道具列表, TEXT类型用于存储字符串
worldname TEXT PRIMARY KEY UNIQUE DEFAULT 'minecraft'--玩家的唯一识别码, TEXT类型用于存储字符串
)
`
};set_minecraft_table()
async function save_world(){
//await db.sql`DELETE FROM block`
for(saveworldy=0;saveworldy<127;saveworldy+=1){
world_list_piece=[]
for(z=0;z<127;z+=1){
world_list_x=[]
for(x=0;x<127;x+=1){
world_list_x.push(voxels.getVoxelId(x,saveworldy,z))
}
world_list_piece.push(world_list_x)
}
world.say(saveworldy+"/126")
await sleep(10)
other={}
time=new Date().valueOf()
await db.sql`
INSERT INTO block (
other,
blocklist,
lasttime,
worldname
)
VALUES(
${JSON.stringify(other)},
${JSON.stringify(world_list_piece)},--JSON.stringify(world_list)
${time},
${saveworldy}
)
ON CONFLICT(worldname)
DO UPDATE SET
other=excluded.other,
lasttime=excluded.lasttime,
blocklist=excluded.blocklist
`
}
showMinecraft()
}
async function loadworld(){
loadworldlist=await db.sql`SELECT * FROM block`
for(loadworldi in loadworldlist){
loadworldpiece=JSON.parse(loadworldlist[loadworldi].blocklist)
for(z=0;z<127;z+=1){
for(x=0;x<127;x+=1){
voxels.setVoxelId(x,loadworldi,z,loadworldpiece[z][x])
}
}
await sleep(100)
world.say(loadworldi+"/126")
}
}
具体用法:
1.先调用save_world方法(无参数)对地形进行存档,注意要等进度条加载完
2.在存档之后调用loadworld方法(无参数)下载地形,即可下载地图
注意事项:
1.只适用于128,128,128地图
2.注意函数名、变量名、SQL表格名不要重名
3.普通、pro版均适用
上知天文求一个数据存储谢谢!imgsrc="https://static.cod喵/emotion/thunder_monkey/%E9%9B%B7%E7%94%B5%E7%8C%B4-%E4%B8%BE%E6%89%8B1.gif"alt="emotion_雷电猴_举手"
点赞0
评论