用户:
一只dog.创造师查看:11 回复:5 评论:11 创建时间:2022-06-19T10:42:43
什么代码是管喵禁言代码??(要完整版)
赵天宇azzzif (message.slice(2) == entity.player.name) {
entity.player.directMessage('无法禁言自己,请重新尝试!')
} else {
world.querySelectorAll('player').forEach((x) => {
if (x.player.name == message.slice(2)) {
x.player.directMessage('你被管理员禁言了,请遵守地图秩序!')
world.say('有人犯了错,被管理员禁言了!')
x.player.muted = true
}
})
}
}点赞0
评论
赵天宇azzzworld.onPlayerJoin(async ({ entity }) => {
//初始化玩家属性
entity.shanghai = 10
entity.junk = 0
entity.exp = 0
entity.coin = 50
entity.item = ['剑', '盾']
await loadUser(entity)//尝试读取存档
entity.player.onPress(async ({ button }) => {//右键显示状态栏
if (button == Box3ButtonType.ACTION1) {
const sel = await entity.player.dialog({
type: Box3DialogType.SELECT,
content: `
金币:${entity.coin}
经验:${entity.exp}
道具:[${entity.item}]
`,
options: ['保存','删档','游玩端数据','编辑端数据','赚钱'],
})
if (sel) {
if (sel.value == '保存') {
await saveUser(entity)
entity.player.directMessage('保存完毕')
}
else if (sel.value == '删档') {
await deleteUser(entity)
entity.player.directMessage('删档完毕')
}
else if (sel.value == '游玩端数据(有bug,别点)') {
await showAllPlaySideUser()
}
else if (sel.value == '编辑端数据(有bug,别点)') {
await showAllEditSideUser()
}
else if (sel.value == '赚钱') {
entity.coin += 1
}
}
}
})
})
async function initTable() {//创建玩家数据表
return await db.sql`
CREATE TABLE IF NOT EXISTS "player" (
shanghai INT NOT NULL,
junk INT NOT NULL,
"coin" INT NOT NULL,--金币
"exp" INT NOT NULL,--经验
"item" TEXT NOT NULL,--物品列表
"userKey" CHAR(16) PRIMARY KEY UNIQUE NOT NULL --用户识别码
)
`;
}
async function saveUser(user) {//玩家存档
await db.sql`
INSERT INTO "player" (-- player虽然是小写, 建议统一用""包住
"shanghai",
"junk",
"exp",-- 经验
"coin",-- 金币
"item",-- 道具
"userKey"-- 用户识别码
) VALUES (
${user.shanghai},
${user.junk},
${user.exp}, --尝试新建经验值
${user.coin}, --尝试新建金币值
${JSON.stringify(user.item)}, --尝试新建道具值
${user.player.userKey} --尝试新建当前玩家识别码
)
ON CONFLICT("userKey") -- 如果已经存在同样的用户识别码
DO UPDATE SET
"shanghai"=excluded."shanghai"
"junk"=excluded."junk"
"exp"=excluded."exp",-- 更新经验值
"coin"=excluded."coin",-- 虽然是小写, 建议统一用""包住
"item"=excluded."item"-- 虽然是小写, 建议统一用""包住
`
}
async function loadUser(user) {//玩家读档
const [data] = await db.sql`SELECT * FROM "player" WHERE "userKey"=${user.player.userKey} LIMIT 1`
if (data) {//如果这个玩家已经有存档
user.shanghai = data.shanghai
user.junk = data.junk
user.exp = data.exp
user.coin = data.coin
user.item = JSON.parse(data.item)
}
else {//玩家无存档
saveUser(user)
}
}async function deleteUser(user) {//删除玩家存档
await db.sql`DELETE FROM "player" WHERE "userKey"=${user.player.userKey}`
}
async function showAllPlaySideUser() {//显示游玩端玩家数据, 地图发布后运行才不会报错
for (const e of await db.sql`SELECT * FROM play."player"`) {
console.log(JSON.stringify(e))
}
}
async function showAllEditSideUser() {//显示编辑端玩家数据
for (const e of await db.sql`SELECT * FROM edit."player"`) {
console.log(JSON.stringify(e))
}
}
点赞0
评论