网易我的世界论坛

标题: 自定义api——查询游戏版本 [打印本页]

作者: sevenstars    时间: 2020-1-2 21:40
标题: 自定义api——查询游戏版本
本帖最后由 sevenstars 于 2020-1-2 21:56 编辑

昨天更新了移动光源,把隐形末地烛换成了新版本的光源方块,但很多玩家说不能用,因为他们无法更新到最新版。为了兼容旧版本,需要查询游戏版本,如果是新版就用光源方块(光源方块能被方块填充,亮度更高),否则用末地烛与它的放置算法(防止玩家不能放置)。代码如下,需要把这个函数放在服务端的类里
还有件事,我的开发者昵称7stars,如果工作人员看到了,请给我解除一下三天限制,现在移动光源修复后无法提审,玩家有很多不能更新游戏,导致他们用不了了。马上就是周末了,我希望在周末之前把修复版上架,谢谢
        # -*- coding: utf-8 -*-
import server.extraServerApi as serverApi
import math
def version(self, id):
        command = serverApi.CreateComponent(serverApi.GetLevelId(), "Minecraft", "command")
        command.SetCommand('/fill ~~2~~~2~ light_block 0 replace air 0',id)
        PosComp = serverApi.CreateComponent(id, "Minecraft", "pos")
        x,y,z = math.floor(PosComp.pos[0]),math.floor(PosComp.pos[1]-1.62),math.floor(PosComp.pos[2])
        blockcomp = serverApi.CreateComponent(id, "Minecraft", "blockInfo")
        blockid, aux = self.GetCompData(blockcomp, "serverlevel", "get_block_and_data", x, y+2, z)
        if blockid in [-215,470]:
            return True
        else:
            command.SetCommand('/tellraw @s {"rawtext":[{"text":"你的游戏版本低,请升级到最新版。"}]}',id)           
            return False
#直接用判断语句即可使用,注意传入参数
if version(id):
    print('版本通过')




作者: 雾都漫游者    时间: 2020-1-7 15:22
后续如果有审核相关紧急的事情,可以直接联系群管理哈。
用到Beta版本的接口的组件,建议等新版本全平台上线后再更新出去,避免出现有玩家用不了。
获取客户端版本的接口,已经添加到开发计划中





欢迎光临 网易我的世界论坛 (http://mc.netease.com/) Powered by Discuz! X3.3