• >
  • 魔改Mod
  • >
  • [JED]维度配置 (Just Enough Dimensions)
[JED]维度配置 (Just Enough Dimensions)
模组属性评比

距离显示结果还剩5票~

路过的这位少侠,你觉得这款Mod怎么样,可否愿意来评一评它呢?登录并评比
更新日志
  • 暂无日志..

历史编辑记录更多
    管理组申请

      暂无管理组..

    编辑组申请

      暂无编辑组..

    开发组申请

      暂无开发组..

    活跃
    开源
    [JED]

    维度配置

    Just Enough Dimensions

    0.0

    无人问津

    昨日指数: 12
    昨日平均指数: 64.813

    3.13万

    总浏览

    --

    资料填充率


    如何下载?
    • 介绍

      Just Enough Dimensions允许在游戏内注册新的自定义维度,也能调整现有维度的设置。
      例如可以调整开启每个维度单独的世界边界,让地狱的边界是主世界的1/8而不是一样大。或者改变天空/雾/云的颜色或者渲染高度。

      在1.6.0版本,也能在世界创建的时候直接改变已有的设置,例如生成器设置的世界类型(例如生成超平坦/虚空世界(虚空世界也是超平坦的一种)),又或是直接设置一些GameRules(虽然1.6.0以前也能实现,但是不是十分有效)

      注意:由于维度id在Forge和原版中有处理过程,而且自定义选项需要进行网络数据交换,所以客户端也需要安装该mod
      概览

      所有维度的注册和设置都通过一个JSON文件进行。游戏内也有一个命令"dimbuilder"来创建/注册维度,或者修改之前增加过的维度的设置,还能改变大多数config文件存储的项目值(并不是所有值,例如光照表或者群系颜色改变,这些只能通过dimensions.json文件来设置)。

      维度的注册和已有维度的设置都是通过"config/justenoughdimensions/dimensions.json"进行修改,或者是"worlddirectory/justenoughdimensions/dimensions.json",后者具有优先性。
      关于JSON格式

      如果你只是了解JSON格式,或者只想检查格式正确性,可以通过一些网站来检查内容的合法性,比如https://www.bejson.com/explore/index_new/

      当然某些文本编辑软件的插件也是有效的,比如Notepad++的JSONViewer。

      JED 1.6.0 的设置改变

      如果你是用的1.6.0的开发版本,它和之前的版本的dimension.json在设置上有些不同。
      有些JED设置的标签被移除或者改名了,有些其他的设置项也改名了
      过去内置于worldinfo标签内的被叫做JED的标签,现在更名为小写的jed,而且移出了worldinfo标签,直接隶属于per-dimension对象。

      1.6.0开发版的所有更改:https://pastebin.com/raw/28jeWZyv
      大量不同设置示范案例:https://pastebin.com/u/masa-
      不同特性的示范案例: https://pastebin.com/m9xYSHZd

      设置选项,最基础的自定义维度注册

      mod的cfg文件内有少许设置选项,用来开启现有功能
      注意: 为了以防万一,它们都是默认关闭的!


      ·enableForcedGameModes - 自动转换玩家的gamemode到每个维度各自的设置,如果该维度有设置ForcedGameMode选项。
      ·enableInitialSpawnDimensionOverride - 开启初始世界在其他维度(在initialSpawnDimensionId一项设定)的设置。
      ·enableLoggingInfo - 开启记录信息。会产出大量运行信息,需要查问题的时候可以打开寻找问题。
      ·enableOverrideBiomeProvider - 如果开启了,维度设置中的"biome" : "name"的键值对会使用BiomeProviderSingle覆盖该维度的BiomeProvider,直接使用给定的群系,"name字段"必须是ResourceLocation里面注册过的群系字段,例如"minecraft:plains"(或者直接用"plains"一样可以调用原版的群系)
      ·enableReplacingRegisteredDimensions - 如果开启,dimensions.json中维度设置内的override": true键值将会用于覆盖已有的维度。注意:若果想有效覆盖,当JED执行注册和覆盖操作的时候该维度不能被加载。
      ·enableUnregisteringDimensions - 如果开启,dimensions.json中维度设置内的"unregister": true键值生效,用于卸载已有的维度,比如禁用地狱和末地
      ·enableSeparateWorldBorders - 如果开启,可以增加自定义的世界边界,取消其他维度和主世界的边界同步(注意:如果想使用各自独立的世界边界,你还需要在维度设置中增加"worldinfo"字段,至少是一个空字段以开启独立设置)
      ·enableSeparateWorldInfo - 如果开启,所有存在于dimensions.json中有"worldinfo"字段的维度将使用各自独立的WorldInfo设置,空字段也可。即使不被此mod注册的维度同样生效(因为该维度已存在且未被覆写)
      ·initialSpawnDimensionId - 设置玩家首次加入服务器/进入世界时出生的维度

      维度的注册和已有维度的设置都是通过"config/justenoughdimensions/dimensions.json"进行改变,或者是"worlddirectory/justenoughdimensions/dimensions.json",后者具有优先性。
      示例

      以下是一个简单的例子用来注册一些自定义维度(换行符和间隔符不是必须的)

      {
          "dimensions": [
              {
                  "dim": 9,
                  "dimensiontype": {
                      "id": 9,
                      "name": "Test dim 9",
                      "suffix": "_dim9",
                      "keeploaded": false,
                      "worldprovider": "WorldProviderSurface"
                  }
              },
              {
                  "dim": 10,
                  "dimensiontype": {
                      "id": 10,
                      "name": "Test dim 10",
                      "suffix": "_dim10",
                      "keeploaded": false,
                      "worldprovider": "WorldProviderHellJED"
                  }
              },
              {
                  "dim": 11,
                  "dimensiontype": {
                      "id": 11,
                      "name": "Test dim 11",
                      "suffix": "_dim11",
                      "keeploaded": false,
                      "worldprovider": "WorldProviderEndJED"
                  }
              },
              {
                  "dim": 15,
                  "dimensiontype": {
                      "id": 15,
                      "name": "Test dim 15",
                      "suffix": "_dim15",
                      "keeploaded": false,
                      "worldprovider": "biomesoplenty.common.world.WorldProviderHellBOP"
                  }
              }
          ]
      }

      字段解释

      "dim": <int>,
      //维度的ID,整型,必须有
      "dimensiontype": {
      //包含世界的生成信息,含有若干子项
          "id": <int>,
          //DimensionType ID,一般用于传送/传送门的代码,决定了传送是否能开启以及如何传送实体
          "vanilladimensiontype": "<DimensionType>",
          //如果该项存在,将会使用设置的(已有的)DimensionType来创建世界而不是新建一个,下面的所有项将被忽略。
          "name": "<WorldName>",
          //世界的名字,可能会被某些mod的传送相关道具使用
          "suffix": "<suffix>",
          //一般用于现有的文件名,因此不要使用空格或者其他什么特殊的字符,最好像示例中写的那样。
          "worldprovider": "<WorldProvider>",
          //世界生成器名称,可以使用其他mod的世界生成器但是需要完整的路径名
      }

      "unregister": <bool>,
      //为真时将卸载这个维度,忽略其他所有设置,需要打开enableUnregisteringDimensions
      "override": <bool>,
      //为真时将用此设置覆盖已有维度的设置,需要打开enableReplacingRegisteredDimensions
      "disableteleportingfrom": <bool>,
      //为真时将不能从此世界传送出去
      "disableteleportingto": <bool>,
      //为真时将不能传送进入此世界
      "biome": "<BiomeName>",
      //将会覆盖worldprovider,整个世界将会只有设置的群系
      "colors":<object>
      //设置染色,类似群系的染色

      各自独立的世界信息设定

      JED可以让不同维度使用不同的levels.dat,以让不同维度拥有不同的seed、leveltype、生成器,例如你可以在主世界是RTG生成的时候建立一个用BOP生成的附属世界,需要开启enableSeparateWorldInfo,并且至少有一个worldinfo的空字段
      注意:如果没有各自独立的世界信息设置,tpj命令将会把你传送到危险的地方,因为不同的世界使用的是同一个出生点坐标,所以一般建议开启。
      字段解释:很多字段没有解释,但是自己建立一个心仪的世界然后用nbt编辑工具打开levels.dat看往上面抄就行,注意所有项都是大小写区分的

      "worldinfo": {
          "RandomSeed": "<seed>",
          //设置生成种子
          "generatorName": "<GeneratorName>",
          //生成器名称,例如default(默认),flat(超平坦),amplified,largeBiomes,debug_all_block_states,BIOMESOP(需要安装biomesO'plenty)、RTG(需要安装Realistic Terrain Generation)
          "generatorOptions": "<option>",
          //生成器设置,可以在levels.dat里面找到,BOP也提供了一键导出,注意这是一个字符串字段,里面的所有引号之前需要加转义符"\",例如下面这个RTG的设置
          //"{\"villageSize\":5,\"mineShaftChance\":0.01,\"dungeonChance\":20,\"templeDistance\":16,\"monumentSpacing\":16,\"monumentSeparation\":3,\"mansionSpacing\":40,\"mansionSeparation\":10,\"strongholdCount\":256,\"strongholdDistance\":16,\"strongholdSpread\":4}"
          "generatorVersion": "<version>",
          //当前世界类型可能会分版本(原文如此),生成器是defult这里必须是1,或者直接使用defult_1_1这个生成器名称
          "GameType": <int>,
          //游戏类型,生存/创造/HC
          "GameRules": <RulesObject>,
          //和generatorOptions不一样这是个JSON对象字段,所有项目都是键值对的形式,举个例子
          //{"commandBlocksEnabled":true,"doFireTick":false,"mobGriefing":false,"universalAnger":false}
          "MapFeatures": <>,
          "SpawnX": <int>,
          "SpawnY": <int>,
          "SpawnZ": <int>,
          "Time": <int>,
          //最好不要设置,不然每次载入世界都会覆盖到设定的值
          "DayTime":  <int>,
          "LastPlayed": <int>,
          "LevelName": "<LevelName>"
          "clearWeatherTime": <int>,
          "rainTime": <int>,
          "raining": <bool>,
          "thunderTime": <int>,
          "thundering": <bool>,
          "hardcore": <bool>,
          "allowCommands": <>,
          "Difficulty": <int>,
          "DifficultyLocked": <bool>;
          "BorderCenterX": <int>,
          "BorderCenterZ": <int>,
          "BorderSize": <int>,
          "BorderSizeLerpTime": <int>,
          "BorderSizeLerpTarget": <int>,
          "BorderSafeZone": <int>,
          "BorderDamagePerBlock": <int>,
          "BorderWarningBlocks": <int>,
          "BorderWarningTime": <int>
      }

      或者你可以使用"worldinfo_onetime"代替"worldinfo",这样不会每次载入世界都会覆写一遍,而是只有在创建的时候写入
      JED特有设置

      在"worldinfo"字段下还可以添加JED字段来增加一些独特的设置,必须使用WorldProviderSurfaceJED这个生成器,这些设置无法作用于"worldinfo_onetime"

          "JED": {
              "ForceGameMode": <bool>,
              //强制转换模式,需要打开enableForcedGameModes,当玩家进入该维度是强制转换玩家的游戏模式
              "CustomDayCycle": <bool>,
              //是否开启自定义昼夜循环
              "DayLength": <int>,
              //白天持续的游戏刻
              "NightLength": <int>,
              //晚上持续的游戏刻
              "CloudHeight": <int>,
              //云的高度
              "SkyColor": "<HEXRGB>",
              "FogColor": "<HEXRGB>",
              "CloudColor": "<HEXRGB>",
              "SkyRenderType": <int>,
              //1为普通世界,2为末地
              "SkyDisableFlags": <int>,
              //可以取消某些星体,1=太阳,2=月亮,3=太阳和月亮,4=星星,5=太阳和星星,6=月亮和星星,7=所有
              "CanRespawnHere": <bool>,
              //是否可以在本维度重生
              "RespawnDimension": <int>
              //如果上一项为false则在这一项设置重生的维度
          }
    • 使用JED删除已经存在的维度

    短评加载中..