/pspace 命令
基本信息
| 属性 | 值 |
|---|---|
| 类 | me.eigenraven.personalspace.PersonalSpaceCommand extends CommandBase |
| 命令名 | pspace |
| 权限等级 | 2(OP) |
| 注册事件 | FMLServerStartingEvent |
| 注册语句 | event.registerServerCommand(new PersonalSpaceCommand()) |
行为
processCommand 按 args[0] 分发子命令:
pspace ls
列出所有已注册的 PersonalSpace 维度:
<dimId>: <saveDirName>
数据源:CommonProxy.getDimensionConfigObjects(false).forEachEntry(...)。
pspace where <player>
输出 commands.pspace.where,参数为 sender 名 + 玩家当前所在维度 ID。
pspace tpx <player> <dimId> [x y z]
- 检查
DimensionManager.isDimensionRegistered(dimId),否则抛commands.pspace.badDimension。 - 自动
DimensionManager.initDimension(dim)(如果该 dim 尚未实例化)。 - 目标坐标 = 该维度的 spawn point 上方 1 格,可选 6 参数(
x y z,相对调用者位置)。 PersonalTeleporter(world, x, y, z)强制放置。transferPlayerToDimension(player, dim, tp)。- 输出
commands.pspace.tpx给调用者。
pspace give-portal <player> <dimId> [x y z]
- 验证维度注册(同上)。
- 构造
ItemStack(BLOCK_PORTAL, 1, 0),写入 NBT:active=true,target=[dim,x,y,z]。 player.dropPlayerItemWithRandomChoice(stack, false)投放给玩家,并把delayBeforeCanPickup=0、func_145797_a(senderName)。
pspace allow-worldgen-change <dimId>
DimensionConfig.getForDimension(dimId, false),若 null → 抛commands.pspace.badDimension。cfg.setAllowGenerationChanges(true)— 设置下一次 GUI 操作可改generatingTrees/generatingVegetation/boundary/gap/center。Packets.INSTANCE.sendWorldList().sendToClients()— 同步客户端。
pspace reload-config
- 从
Config.getSavedConfigFile()重新加载配置。 Config.validateBlocks()重新校验。Packets.INSTANCE.sendWorldList().sendToClients()广播。
其它
- 无参 / 未知子命令 → 抛
WrongUsageException("commands.pspace.usage")。
数值
| 参数 | 默认值 |
|---|---|
| 权限等级 | 2(OP) |
| 玩家名索引位置 | args[1](isUsernameIndex) |