此组件由调试卡提供。
仅在创造模式可用的调试卡提供了一套实际上很危险的功能,可用于调试与测试代码。没有进行备份的话切勿使用调试卡,绝对不要。比如有一次我就不小心将竖着的一整片世界都变成了无文字的告示牌。
调试卡的“容器”指装有调试卡的机器人、电脑或平板电脑。
在专用服务器游玩时,调试卡必须绑定到某个玩家身上才能用runCommand回调来运行命令,绑定的方式为手持调试卡潜行右键单击。被绑定的玩家需要有运行提供给runCommand的命令的权限。
组件名:debug。
回调函数:
changeBuffer(value:number):numberconnectToBlock(x:number, y:number, z:number):booleangetPlayer(name:string):userdatagetPlayers():tablegetWorld([id:number]):userdatagetWorlds():tablegetX():numbergetY():numbergetZ():numberisModLoaded(name:string):booleanrunCommand(command:string):number, string/me,第二个返回值将为nil。test():userdatauser-data与通用数值的测试方法。getScoreboard():userdatasendToDebugCard(address:string, data...)sendToClipboard(player:string, text:string)scanContentsAt(x: number, y: number, z: number[, worldId: number]):boolean, string, tabletrue代表会被阻挡,不能进入)。第二个返回值为字符串值,代表障碍类型。可能的取值包括:EntityLivingBase、EntityMinecart、air、liquid、replaceable、passable、solid。最后一个返回值为此位置扫描到的实体或方块,以序列化的或普通表的形式来表示。下面的代码片段可用于调试获取可能阻挡机器人前进的物体,假设机器人面向X轴负方向。local debug = require("component").debug local serialize = require("serialization").serialize local x, y, z = debug.getX, debug.getY, debug.getZ local offset_x = -1 local offset_z = 0 local blocking, label, content = debug.scanContentsAt(x() - .5 + offset_x, y() - .5, z() - .5 + offset_z) print(blocking, label, serialize(content))
世界对象是容器当前所在的世界(维度)的映射。
getMetadata(x:number, y:number, z:number):numbergetBlockId(x:number, y:number, z:number):numbergetDimensionId():numberisLoaded(x:number, y:number, z:number):numbergetSeed():numberremoveFluid(amount:number, x:number, y:number, z:number, side:number):booleaninsertFluid(id:string, amount:number, x:number, y:number, z:number, side:number):booleangetDimensionName():stringgetTime():numbersetTime(value:number)getLightValue(x:number, y:number, z:number):numberisRaining():booleansetRaining(value:boolean)isThundering():booleansetThundering(value:boolean)setBlock(x:number, y:number, z:number, id:number or string, meta:number):numbersetBlocks(x1:number, y1:number, z1:number, x2:number, y2:number, z2:number, id:number or string, meta:number):numberremoveItem(x:number, y:number, z:number, slot:number[, count:number]):numberinsertItem(id:string, count:number, damage:number, nbt:string, x:number, y:number, z:number, side:number):booleangetSpawnPoint():number, number, numbersetSpawnPoint(x:number, y:number, z:number)canSeeSky(x:number, y:number, z:number):numbergetLightOpacity(x:number, y:number, z:number):numberhasTileEntity(x:number, y:number, z:number):numberplaySoundAt(x:number, y:number, z:number, sound:string, range:number)getTileNBT(x:number, y:number, z:number):tablesetTileNBT(x:number, y:number, z:number, nbt:table):booleangetBlockState(x:number, y:number, z:number[, actualState:boolean=false])玩家对象代表了世界中一个指定玩家。
getWorld():userdatagetGameType():stringsetGameType(gametype:string)survival-生存,creative-创造,adventure-冒险)。getHealth():numbersetHealth(health:number)getMaxHealth():numbergetPosition():number, number, numbersetPosition(x:number, y:number, z:number)getExperienceTotal():numbergetLevel():numberaddExperienceLevel(level:number)removeExperienceLevel(level:number)insertItem(id:string, amount:number, meta:number[, nbt:string]):numberclearInventory()addObjective(objectiveName:string, objectiveCriteria:string)removeObjective(objectiveName:string)increasePlayerScore(playerName:string, objectiveName:string, score:int)decreasePlayerScore(playerName:string, objectiveName:string, score:int)addPlayerToTeam(player:string, team:string):booleanremovePlayerFromTeam(player:string, team:string):booleanremovePlayerFromTeams(player:string):booleanaddTeam(team:string)removeTeam(teamName: string)getPlayerScore(playerName:string, objectiveName:string):intsetPlayerScore(playerName:string, objectiveName:string, score:int)