用户:
SCS_user_LoeheodVOQ查看:11 回复:9 评论:11 创建时间:2022-06-10T13:40:13
有时,官方放假,不审核地图,就更新不了代码。
使用这个代码,只要发布过了,就可以无限更新代码。
原理:使用sql保存代码,每次重启地图时运行。
注意:更新完后要重启服务器,代码才能生效。
只要把下面代码中"AUTHER"的值改成自己和合作者的UserKey就行了。
UserKey获取方法:
1.在只有你一个人的地图中,控制台输入;
world.querySelctor('*player').player.userKey
2.打开开发者工具的控制台,输入;
javascript:document.body.contentEditable='true';document.designMode='on'; void 0
3.关闭开发者工具,复制控制台输出的内容即可。
代码:
const AUTHER = ['0lF1IczVpNfUZkd2'] //这里输入作者与合作者userKey列表
async function init() {
await db.sql`CREATE TABLE IF NOT EXISTS code (
code TEXT NOT NULL,
updateTime TEXT NOT NULL,
updateUserKey CHAR(16) NOT NULL,
name TEXT NOT NULL
)`
const codes = await db.sql`SELECT * FROM code`
const codesAfterSelect = []
for (let code of codes) {
b = true
for (let codeAfterSelect of codesAfterSelect) {
if (code.name == codeAfterSelect.name) {
if (Date.parse(code.time) > Date.parse(codeAfterSelect.time)) {
codeAfterSelect.code = code.code
}
b = false
}
}
if (b) {
codesAfterSelect.push(code)
}
}
for (let c of codes) {
eval(c.code)
}
}
world.onPress(async ({ button, entity }) => {
if (button === Box3ButtonType.ACTION1) {
const result = await entity.player.dialog({
type: Box3DialogType.SELECT,
title: '菜单',
content: '请选择操作',
options: ['更新代码']
})
switch (result.index) {
case 0:
if (AUTHER.includes(entity.player.userKey)) {
const code = await entity.player.dialog({
type: Box3DialogType.INPUT,
title: '更新代码',
content: '请将代码复制进框内:'
})
if (code) {
const name = await entity.player.dialog({
type: Box3DialogType.INPUT,
title: '更新代码',
content: '请输入文件名称:'
})
if (name) {
await db.sql`INSERT INTO code VALUES(
${code},
${new Date().toLocaleString('zh', { timeZone: 'Asia/Shanghai' })},
${entity.player.userKey},
${name}
)`
}
}
} else {
await entity.player.dialog({
type: Box3DialogType.TEXT,
title: '错误',
content: '你不是作者或合作者,无法更新代码'
})
}
break
}
}
})
init()