MessMod
一个主要用于辅助红石装置、生电农场设计以及游戏机制研究的 Mod。
正如其名字中所说,这个 Mod 包含了很多方面的功能(世界控制,信息显示,特性更改以及一些 Bug 修复等),整体而言非常乱,就连代码风格也很乱。
不想输入 100 次“/summon creeper”来生成 100 只苦力怕?装上这个 Mod,这个操作仅用一条简短的指令(即“/repeat 100 false summon creepers”)就可以完成。
不想使用 /data 指令获取实体的速度值?装上这个 Mod,按下 F3 + E,然后对准那个实体,你会在屏幕的一角找到你想要的东西。
为被渲染到错误位置的 TNT 感到烦恼?装上这个 Mod,你会看到它们真正的碰撞箱。
厌倦了反复地输入“/tick freeze”和“/tick step 1”来观察红石机器的运作?装上这个 Mod,在您拿住砖块或骨头时点击右键即可完成那些繁琐的操作。
特色功能
更准确的实体碰撞箱显示;
使 /tick 更简捷的工具物品;
实体信息实时显示与记录(导出为表格);
从代码层面控制游戏运作;
功能多样的 Accessing Path;
六种直观易用的渲染器(详见下文);
导出指定区域为存档(尚在完善中);
使用 Ctrl + Z / Ctrl + U 撤销/重做方块放置与破坏;
弱加载区块模拟;
以及更多。
安装需求
Fabric Loader 0.7.4+;
gnembon 的地毯 Mod(Fabric Carpet)(部分功能需要,但并非必需);
Minecraft 1.16.4 ~ 1.20.1;
加入的指令
/accessingpath
目前只能自定义 Accessing Path 节点,之后应该会进行增补。
/countentity
更简单地计数实体,尤其是堆叠的实体。
/ensure
一个服务端方块状态查询工具。如果您正为幽灵方块所困扰,这可能会有所帮助。
/entityconfig
目前,该命令只能控制实体能否直接走上方块(如玩家在没有跳跃时走上楼梯),更多的功能可能会在之后的版本中被加入。
/entityfield
使用反射访问实体的 Java 字段,在 mapping 被加载时支持运行时反混淆。
/entitylog
一个实体日志记录器,或者说,一个用于从指定实体获取数据并并存储到文件的一个小工具。
/explode
比较有趣但是用途不大的一个东西,只能产生各种等级(甚至可以是负数或 NaN)的爆炸。
/exportsave
导出指定区域为存档
/entitysidebar
编辑实体信息侧边栏的信息显示。
/freezentity
暂停一些实体的运算,用于模拟弱加载环境。
/hud
在 HUD 中监听字段。
/lag
卡死服务端或客户端,用于某些特殊测试。
/lazyload
模拟弱加载区块。
/logchunkbehavior
记录区块活动(包括加载,生成,卸载等),用于一些非常特殊的研究
/logmovement
显示活塞推动实体的位移。
/logpacket
监听客户端和服务端间传输的数据。
/messcfg
该Mod的一些设置,详细的选项列表见下一节。
/modify
修改实体的一些属性。类似于 /data 和 /entityfield,但是更容易使用。
/moventity
以您希望的方式移动实体。
/namentity
命名一个实体。
/partlykill
杀死一部分而不是全部的选中实体。
/poi
一个 POI(兴趣点)查找器和编辑器。
/raycast
(可视化地)获取 raycast 过程中的一些细节。如果您想知道末影珍珠擦过方块表面时是否会发生碰撞,可以试试这个指令。
/repeat
以一定次数重复执行某个命令,卡顿要比多个命令方块命令方块同时执行低很多。
/ride
控制实体骑乘。
/rng
做一些 RNG 操控。
/setexplosionblock
如果爆炸把它破坏的方块替换成信标而不是空气会怎样?这个命令会给您答案。
/tileentity
访问方块实体数据,包括增删改查。可以试一下如果一个投掷器拥有营火的方块实体会怎样,不过不要激活它。
选项
以下选项均通过 /messcfg 命令设置,格式均为 /messcfg <选项名> <值>,如启用实体碰撞箱显示可使用 /messcfg serverSyncedBox true。选项命名规则类似于地毯端的设置,具体含义可由其名称看出,输入指令 /messcfg <选项名> 也可以获取对应的英文介绍(不久后会引入翻译)。
accessingPathInitStrategy
allowSelectingDeadEntities
allowTargetingSpecialEntities
antiHostCheating
attackableTnt
blameThreshold
blamingMode
blockPlacementHistory
blockShapeToBeRendered
commandExecutionRequirment
chunkLoadingInfoRenderer
chunkLoadingInfoRenderRadius
craftingTableBUD
creativeUpwardsSpeed
debugStickSkipsInvaildState
dedicatedServerCommands
disableChunkLoadingCheckInCommands
disableEnchantCommandRestriction
disableExplosionExposureCalculation
disableProjectileRandomness
enabledTools
endEyeTeleport
entityExplosionInfluence
entityExplosionRaysLifetime
entityExplosionRaysVisiblity
entityLogAutoArchiving
fillHistory
fletchingTablePulseDetectingMode
fletchingTablePulseDetector
generateChunkGrid
hideSurvivalSave
hotbarLength
hudAlignMode
hudStyles
hudTextSize
interactableB36
language
maxClientTicksPerFrame
maxEndEyeTpRadius
minecartPlacementOnNonRailBlocks
mobFastKill
optimizedEntityPushing
projectileChunkLoading
projectileChunkLoadingPermanentence
projectileChunkLoadingRange
projectileRandomnessScale
quickMobMounting
railNoAutoConnection
rejectChunkTicket
renderBlockShape
renderFluidShape
renderRedstoneGateInfo
serverSyncedBox
serverSyncedBoxRenderRange
skippedGenerationStages
skipUnloadedChunkInRaycasting
stableHudLocation
strictAccessingPathParsing
superSuperSecretSetting
tntChunkLoading
tntChunkLoadingPermanence
tntChunkLoadingRange
vanillaDebugRenderers
快捷键
F3 + E:开关显示当前玩家注视的实体信息的 HUD。
F3 + M:开关显示客户端玩家信息的 HUD。与投影的默认设置冲突,可以手动修改。
F3 + S:开关显示服务端玩家信息的 HUD。
渲染器
实体信息 HUD:内容参考下文。实体的所有数据取自服务端游戏刻末尾,客户端玩家信息取自客户端 tick 末。
实体爆炸射线:显示爆炸中心与实体碰撞箱内一些选中的点间的用于决定实体内爆炸影响的程度的线段。射线中被阻挡的部分显示为红色,否则为绿色。
服务端实体碰撞箱:不要总是相信 F3 + B 提供的碰撞箱,因为它们是经客户端为使运动更平滑调整过后的,在运动时可能会“跟不上”服务端。实体的碰撞箱会被渲染为绿色。
流体方块数据:显示玩家对准的流体的等级、高度、范围和流向向量。
方块边界箱:显示玩家对准的方块的碰撞箱或 OUTLINE Shape。
红石装置信号输出等级:显示玩家对准的中继器和比较器的输出等级。
区块加载状态渲染器:直观地显示区块是否为强/弱加载区块
工具物品(基于 Scarpet 实现)
红砖:使用 /tick freeze 暂停服务端游戏刻。
骨头:在服务端游戏刻被 /tick freeze 暂停时继续执行一段时间,执行的刻数等于该组骨头的个数。
下界合金锭:直接移除所有非玩家实体。
注意事项
该 Mod 仍在开发中,一些功能暂时不可用或存在 Bug,如果发现了欢迎反馈;
目前版本中对专用服务器的支持很弱,存在大量稳定性问题,一般情况下请只在单人游戏或局域网(仅房主所在客户端)中使用该 Mod;
一些命令,像 /explode ~ ~ ~ 2147483647 true 会造成服务端卡死,请注意;
不建议将该 Mod 用于生存,因为这可能会允许一些作弊行为,尤其是当一些全局选项被修改后。