/sharewhereiam
基本信息
| 属性 | 值 |
|---|---|
| 类型 | 客户端命令(ClientCommandHandler 注册) |
| 命令名 | sharewhereiam |
| 注册类 | com.muxiu1997.sharewhereiam.command.CommandWaypointShareLocation |
| 权限等级 | 0 |
| 适用侧 | 仅客户端 |
行为
命令以玩家自身位置作为坐标,向所有玩家广播一条 MessageShareWaypoint。这是 Ctrl + Shift + INSERT 的命令版等价行为(参考 WaypointShare 按键)。
流程
- 命令体要求参数长度恰好为 0(任何参数都会抛
sharewhereiam.command.sharewhereiam.usage)。 - 检查
sender instanceof EntityPlayer,仅在玩家执行时生效(控制台/命令方块无响应)。 - 通过
WaypointUtil.waypointOfLocation()构造PlayerWaypoint:name=player.getDisplayName()(x, y, z)= 玩家floor_double(posX/Y/Z)color=0xFFFFFF(白色)dimension=player.worldObj.provider.dimensionId
- 客户端发送
MessageShareWaypoint(playerWaypoint)到服务端。 - 服务端
network.sendToAll(message)广播给所有客户端。 - 每个客户端
WaypointUtil.addShareWaypointChat在聊天框打印:[JourneyMap] <playerName> shared a waypoint:<name> (<x>, <y>, <z>) [Save] [Edit?] [Toggle]([Edit]仅 JourneyMap 5 显示)- 若
additionalInformation非空,再多打印一行(VisualProspecting 提示,由 V6 插件在 FullscreenMap 悬停时填入)
行为与按键差异
| 触发方式 | 来源 | 备注 |
|---|---|---|
Ctrl + Shift + INSERT(无 GUI、无 Insert 修饰外的 Ctrl) |
EventHandler#handleKeyInput |
等价命令 |
/sharewhereiam |
命令 | 完全一致 |
/savewaypoint <base64> |
命令 | 反向操作:把 waypoint code 写入本机 |
该命令不会调用
WaypointManager.addTransientBeacon(不会渲染世界中的临时 Beacon),也不会触发WaypointManager.setTemporaryBeacon,仅广播聊天信息 + 可点击按钮。
数值
| 数值 | 值 |
|---|---|
| 参数长度 | 0(必须恰好 0) |
| 默认颜色 | 0xFFFFFF(白色) |
| 默认图标 | waypoint-normal.png |
默认 Origin |
JourneyMap |
默认 Type |
Normal |