跳到正文

Xaero的世界地图

Xaero’s World Map
作者:thexaero

添加一张全屏世界地图,显示你在世界中探索过的区域。与Xaero的小地图搭配使用效果极佳。

收藏

截图

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

请勿将此模组与 XaeroPlus 一起使用!它与我无关,会导致无法追踪的严重漏洞/崩溃。据称它还与一个服务器破坏组织有关联,这可能会让你的服务器建筑面临风险。

Xaero的世界地图模组为你的 Minecraft 客户端添加了一个自动绘制的全屏地图。它可以作为独立模组使用,但与 Xaero的小地图搭配效果会好得多。之所以单独提供,是为了让 Xaero的小地图尽可能保持轻量。此模组主要作用于客户端。在服务端安装是可选的,可用于世界识别等一些额外功能。

该模组仍在开发中!请报告你遇到的任何漏洞,否则它们可能不会被修复。 

请确保你的世界已针对你所玩的 Minecraft 版本进行了优化(单人游戏 – 编辑 – 优化世界)(每次 Minecraft 更新后都要重复此操作)。从未优化的世界存档生成单人游戏地图会花费长得多的时间。

在 Mastodon(Twitter 的替代品)上关注我? mas.to/@xaero96

在 Patreon 上支持我? patreon.com/xaero96

谢谢!

特性

  • 自动生成的世界地图(而非手动纸质地图)。你可以在同一服务器地址上创建多张地图,并手动或自动切换。
  • 适用于单人游戏、多人游戏和 Realms。
  • 直观的界面。按 M 键打开地图界面。用鼠标移动地图,使用鼠标滚轮放大/缩小,类似 Google 地图。所有相关控制项都列在地图界面的工具提示中,你可以自定义其中许多控制项。
  • 可选的服务器自动多世界检测。
  • 服务端配置带有游戏内 UI 界面,让你实时控制服务器上的玩家如何使用该模组。你可以基于等级/权限(xaero.world_map.enforced_server_profile)。支持 FTB Ranks、Odyssey Roles、LuckPerms 和通用权限 API。
  • 显示来自 Open Parties and Claims 模组的区块声明和盟友玩家。让你可以直接从地图上声明或强制加载区块。
  • 资源包支持。更改资源包会导致整个世界地图重新生成。
  • 洞穴维度支持(例如下界)。
  • 可选的原版地图模式,使世界地图看起来像原版纸质地图。
  • 地形阴影自定义。
  • “足迹”功能,显示你最近走过的路径。
  • 可在必要时帮助提升模组性能的设置。不过在大多数情况下,模组默认性能应该就很出色。
  • Xaero的小地图集成。小地图模组将显示世界地图提供的区块。世界地图模组将显示 Xaero的小地图模组中的路径点。也兼容 Better PVP 模组。你可以不离开地图界面就创建、编辑并传送到路径点。
  • 药水效果可用于控制服务器/地图上玩家对世界地图的使用。撰写本文时存在以下药水效果:xaeroworldmap:no_world_map。这些效果默认是中性类型,但你也可以在效果 ID 末尾附加 _harmful 来指定有害类型,例如 xaeroworldmap:no_world_map_harmful。
  • 自模组 1.14.0 版本起,你可以点击地图界面右下角的图标打开地图上的路径点菜单。在路径点菜单中,你可以看到来自已渲染集合的所有地图路径点列表,用鼠标光标与它们交互,在文本框中按名称筛选它们。该菜单还允许你切换已禁用路径点的可见性、切换渲染所有集合以及更改当前路径点集合。将鼠标悬停在菜单中的路径点上,效果等同于在地图上悬停:它们会在地图上高亮显示,你可以使用右键或悬停控制项与它们交互。
  • 可将地图导出为 PNG 图像文件的选项。模组会尝试导出整张地图,因此如果地图长达数百万方块,可能无法正常工作。我计划在未来提供更多地图导出选项!
  • 通过将地图绑定到快捷栏中所需或需装备的物品来限制地图访问的选项。例如,在配置文件的任意位置添加 mapItemId:minecraft:compass 即可将其绑定到指南针物品。这样除非你的快捷栏中有指南针或已装备指南针,否则地图将无法使用。 

获取 Xaero的小地图

常见问题

如何将多人游戏中 1.30 更新前的地狱地图恢复为以“完整”洞穴模式类型显示?

首先,退出服务器并找到你用于在该服务器上游玩的 Minecraft 游戏目录。在游戏目录中,进入 xaero/world-map/Multiplayer_[server_address]/DIM-1/[map_folder]。在较旧版本中,xaero/world-map 就是 XaeroWorldMap。如果尚不存在,请创建一个名为“caves”的文件夹(不带引号),并进入其中。在 caves 文件夹内,如果尚不存在,请创建一个名为“-2147483648”的文件夹(不带引号)。回到包含“caves”文件夹的文件夹中,将所有“.zip”文件移动到 caves/-2147483648 文件夹中。你可以随意删除缓存文件夹,或将它们与“.zip”文件一起移动。

如何将洞穴模式设置为在洞穴模式引入之前 1.30 之前的行为?

只有使用普通版本的小地图或完全不使用小地图时,你才能完全实现这一点。公平游玩版本的小地图现在会在地狱中禁用世界地图洞穴模式,且无法切换,因此它不会与以前完全一样。

如果你有 1.30 之前的地狱地图数据,请先按照本页“如何将多人游戏中 1.30 更新前的地狱地图恢复为以“完整”洞穴模式类型显示?”下的说明将其移动到正确的文件夹中。
完成之后,加入一个世界/服务器并打开世界地图设置。找到“默认洞穴模式类型”并将其设置为关闭,然后将“清晰洞穴地图”设置为开启。接下来,打开世界地图界面并点击屏幕左下角的洞穴图标。在打开的菜单中,将“洞穴模式顶部 Y”设置为任意数字。如果你在主世界,请将“洞穴模式类型”设置为关闭。之后当你在地狱时,将“洞穴模式类型”设置为完整。洞穴模式类型按维度存储,因此你可以将任何类似地狱的维度设置为完整,而其他维度保持关闭。你还可以通过切换来在显示基岩屋顶下方和上方之间切换。

为什么右键传送对我不起作用?

该模组会发送一条聊天命令将你传送到特定坐标,默认是 _/tp @s x y z_,因此需要相应的权限。原版 /tp 命令需要 OP 状态(启用作弊),但在安装了某些插件的非原版服务器上,命令可以有单独的权限。使用的命令可以在世界地图设置中通过“地图传送命令”更改。非原版传送命令通常不支持 @s 等选择器,因此你可能需要将其从配置的命令中移除。还有一个名为“玩家传送命令”的选项,当你右键点击已追踪的玩家(例如来自 Open Parties and Claims 的队伍)时会使用它。传送到路径点使用小地图模组中的独立设置。你可以在小地图描述页面的常见问题下了解相关内容。

如何在不手动行走的情况下探索地图?

在单人游戏中,地图直接从世界存档加载。这意味着你可以使用任何你喜欢的工具预生成世界,重新登录并使用世界地图设置中的“重新加载区域”选项来修复地图缓存中的任何冲突。在多人游戏中,情况就没那么简单了。但是,如果你能下载服务器世界存档并在单人游戏中进入该世界,那么你可以使用你选择的方法预生成世界,重新登录,然后使用世界地图设置中的“转换所有区域”将整个世界存档转换为多人游戏兼容的地图实例,保存到 xaero->world-map->World->null->cm$converted。在较旧版本中,xaero/world-map 就是 XaeroWorldMap。你可以将该地图实例文件夹复制/移动到 xaero/world-map 文件夹中的服务器地图实例中。

为什么同一服务器地址/IP 上的多个世界使用并写入同一张地图?

此模组允许你在同一服务器地址上拥有多张地图。你可以随时自由切换地图并创建新地图。通过为你所玩的服务器类型选择正确的“地图选择”模式,可以防止地图被覆盖。地图选择在一个特殊菜单中完成,点击世界地图屏幕左下角的图标即可打开(如果菜单默认未打开)。在菜单中,你可以在手动、世界出生点和单一模式之间切换,并使用顶部中央的下拉菜单选择/创建地图。如果你将鼠标悬停在地图选择选项上,你可以阅读关于每种地图选择模式(包括服务器模式)的所有必要信息。世界出生点模式等同于 1.6 之前世界地图所使用的模式。因此你不必降级模组就能继续使用它。服务器模式在大多数情况下是最佳选择,因为服务器会根据服务端关卡 ID 自动控制你的地图选择。它需要在服务端安装该模组。如果更改地图选择模式将你的地图切换为空白地图,你始终可以通过从下拉菜单中选择你想要使用的地图并确认来重新绑定。 

为什么世界地图会请求确认?

一个服务器地址可以有多个主世界、下界等。这可能是由于多个子服务器或多个世界存档,例如一个“大厅”世界和一个“游戏”世界。不同的世界在客户端没有任何唯一标识符,这使得无法可靠地区分它们。因此,世界地图模组允许你在同一服务器地址上为每个维度拥有多个世界地图。在较旧的模组版本中,默认情况下地图选择为手动,这意味着每次你切换维度/世界/子服务器时,都会要求你确认使用哪张地图。你也可以选择两种自动模式之一。地图选择在一个特殊菜单中完成,点击世界地图屏幕左下角的图标即可打开(如果菜单默认未打开)。在菜单中,你可以在手动、世界出生点和单一模式之间切换,并使用顶部中央的下拉菜单选择/创建地图。如果你将鼠标悬停在地图选择选项上,你可以阅读关于每种地图选择模式(包括服务器模式)的所有必要信息。世界出生点模式等同于 1.6 之前世界地图所使用的模式。因此你不必降级模组就能继续使用它。服务器模式在大多数情况下是最佳选择,因为服务器会根据服务端关卡 ID 自动控制你的地图选择。它需要在服务端安装该模组。如果更改地图选择模式将你的地图切换为空白地图,你始终可以通过从下拉菜单中选择你想要使用的地图并确认来重新绑定。 

为什么安装了世界地图后,我在服务器上看不到小地图的路径点?

你当前确认的地图会影响小地图模组中哪个路径点子世界被视为自动。这允许每个创建的地图拥有独立的路径点数据。在任何时候,你都可以通过进入路径点菜单(按 U)并从右上角的下拉菜单中选择,来选择和查看任何非自动的路径点子世界。你可以通过选择选项 -> 设为子世界自动,为你当前确认的地图将任何子世界设为自动。

为什么我的世界地图在某个特定服务器上“重置”了?

不要惊慌。它几乎肯定没有被真正删除。旧版世界地图使用基于世界出生点的系统来将服务器分隔成多个地图。这个系统经常出问题,因为服务器会通过向你的游戏客户端发送虚假的世界出生点坐标,为原版指南针物品添加自定义功能。 请确保将模组更新到最新版本。 现在有多种地图选择模式可供你选择,其中手动是默认模式。你现在可以查看你在当前服务器地址上拥有的任何世界地图。如果地图选择菜单没有默认打开,请点击世界地图左下角的图标来打开它。顶部中央的下拉菜单允许你选择现有或创建新的世界地图。你可以将鼠标悬停在地图选择模式设置(左下角)上,以了解每种模式的工作方式。服务器模式在大多数情况下是最佳选择,因为服务器会根据服务端的关卡 ID 来控制你的地图选择。它要求服务器端也安装该模组。 手动模式是最安全的替代方案,应该适用于其他所有服务器。当服务器模式不可用时,还有 2 种额外的自动地图选择模式。可在该设置的提示框中了解更多相关信息。

旧地图不在菜单中? 这可能意味着两件事:服务器地址已更改,或者维度 ID 已更改。

我们先从维度 ID 变更说起。服务器上的每个维度在游戏目录 -> xaero -> world-map 目录下都有一个单独的目录。在旧版本中,xaero/world-map 就是 XaeroWorldMap。在开始对它做任何操作之前,请先备份 xaero/world-map 目录。在较旧的模组版本中,维度目录名包含服务器地址和维度键,例如 XaeroWorldMap/Multiplayer_127.0.0.1_DIM1。在较新的版本中,维度目录是一个子目录,类似 xaero/world-map/Multiplayer_127.0.0.1/DIM1。出于兼容性原因,默认的主世界、下界和末地维度分别命名为 null、DIM-1 和 DIM1。其他维度的名称应基于原始维度 ID,例如 Multiplayer_127.0.0.1/minecraft$overworld_creative。在 1.16+ 中,你可以在游戏内 F3 界面上看到当前维度 ID,从而弄清哪个目录对应哪个维度(例如 “minecraft:overworld”)。在编辑文件/目录之前,请先退出到游戏标题界面或关闭游戏。
每个维度目录都包含子目录,每个子目录对应你在该维度中的一张地图(例如 mw$default 或 mw-4,0,-4),此外还有一个名为 dimension_config.txt 的文件,其中包含地图的实际显示名称。你可以借助该文件找到你想要的具体地图目录。在维度目录之间移动/复制地图目录,就相当于在维度之间移动/复制它。你可以稍后在游戏内为它命名。最常见的情况是把地图从 /null 移动到 /minecraft$overworld_survival 之类。当 1.16+ 服务器开始为每个子世界使用唯一维度 ID 时,就需要这样做。

关于服务器地址变更,你需要先删除游戏目录 -> xaero -> world-map 内所有包含新服务器地址的目录。如果你使用的是最新模组版本,通常只有 1 个这样的目录。在执行此操作之前,请先备份整个 xaero/world-map 目录。另外,至少要退出到游戏标题界面。然后你需要将每个旧服务器地址目录(在 xaero/world-map 中)重命名为新地址,只替换地址部分。

如有疑问,请给我发消息或留言!

如果你无法将模组更新到 1.6.1 或更新版本,这里是旧版说明:

不要惊慌。它几乎肯定不是真的被删除了(据我所知这从未发生过)。这很可能是由某个服务器插件改变了原版指南针物品的行为,并干扰了模组的“多世界”检测导致的。在大多数此类情况下,指南针物品会指向你的床而不是全局出生点。如果睡在另一张床是地图“重置”的原因,那么再次睡在正确的那张床上应该能为你恢复一切。
如果地图“重置”是因为添加了新插件(而且你无法选择移除它),那么你可以这样恢复你的地图(并祈祷该插件不会再这样做):

确保 Minecraft 没有在运行。

1. 前往游戏目录

2. 前往 XaeroWorldMap 目录

3. 找到代表你在服务器上访问过的维度的目录。这些目录的名称中包含服务器的地址。以 _null 结尾的是主世界,_dim-1 是下界等。

4. 打开主世界目录(_null)。

5. 你应该会看到多个以 mw 开头的目录。

6. 找到其中文件大小最大的那个。把它的名称复制到某个地方,以免丢失。

7. 现在找到最新的 mw 目录(可能是最空的,或者直接查看创建日期)。把这个目录移到别处。暂时不要删除它。

8. 将第 6 步中的目录重命名为第 7 步中备份目录的名称。

9. 打开 Minecraft,测试主世界地图是否已恢复。

10. 如果没有恢复,请退出 Minecraft,恢复你重命名过的目录的旧名称 + 恢复备份的文件夹。重新阅读所有步骤,确保每一步都做对了。
如果主世界现在已修复,请继续执行第 11 步。

11. 对于你想要恢复的每个其他维度,按照与主世界相同的方式重命名并备份目录。

如有疑问请联系我!

为什么恢复地图后我的路径点没有恢复?

请阅读 小地图描述 页面上的 “为什么我的路径点不再显示在特定服务器上?” 部分。它应该能涵盖大多数情况。如果仍无帮助,请联系我。

如何禁止在我的服务器上使用洞穴模式?

要做到这一点,请在服务端安装该模组(撰写本文时需要 NeoForge/Forge/Fabric/Quilt 服务器)。

_如果你的世界地图版本至少为 1.40.0,请设置并使用“打开服务器设置”按键绑定来打开服务器设置。你可以在那里强制实施几乎任何选项,包括洞穴模式。_

在较旧的模组版本中,当你启动服务器时,会在服务器目录(不是世界文件夹)中创建一个新的“common”配置文件,通常位于“config”文件夹中。在配置文件中,你可以获得多个选项,用于为你的玩家禁用某些模组功能。更改需要重启服务器。

或者,如果你无法安装该模组,可以在发送给玩家的服务器/系统消息中包含以下字符串(在登录时),它们的作用如下:

§f§a§i§r§x§a§e§r§o – 使客户端禁用洞穴模式。

§x§a§e§r§o§w§m§n§e§t§h§e§r§i§s§f§a§i§r – 使世界地图洞穴模式在下界中正常工作,尽管处于公平游戏模式。小地图有一个单独的代码,看起来几乎相同。

§r§e§s§e§t§x§a§e§r§o – 重置所有系统消息标志。

这里有一个第三方 Spigot 插件可以为你简化此操作(与我无关,也不是我创建的):XMMForceFairPlay

还有一个具有类似功能的第三方数据包(与我无关,也不是我创建的):Xaero’s Map Server Utils

使用任何第三方附加组件风险自负。

如何让原版客户端玩家加入我安装了该模组的服务器?

请直接在你的服务器目录(不是世界文件夹)下的 config 文件夹中查找“common”配置文件,通常位于 config/xaero/world-map。其中一个选项可以禁用状态效果的注册,这正是阻止玩家加入的原因。更改后需要重启服务器。对小地图模组也做同样的操作。

面向开发者

要将此模组与你自己的模组对接,首先将以下仓库添加到你的构建脚本中:

repositories {
    maven {
        url "https://chocolateminecraft.com/maven"
        name "Xaero's Maven"
    }
}

如果你使用的是 Forge,请确保你的项目中应用了 MixinGradle 插件(org.spongepowered.mixin),除非你使用的是 1.12.2。

最后,添加以下一个或多个依赖声明,将 和 替换为实际值,你可以在 https://chocolateminecraft.com/maven/xaero/map 查看这些值。

1.21.1 之前使用官方 Mojang 映射的 Forge:

implementation "xaero.map:xaeroworldmap-forge-<minecraft version>:<mod version>:dev"//purposely no deobfuscation!

1.21.1 或之后使用官方 Mojang 映射的 Forge:

implementation "xaero.map:xaeroworldmap-forge-<minecraft version>:<mod version>"

使用其他映射的 Forge:

implementation fg.deobf("xaero.lib:xaerolib-forge-<minecraft version>:+")
implementation fg.deobf("xaero.map:xaeroworldmap-forge-<minecraft version>:<mod version>")

Fabric:

modImplementation "xaero.map:xaeroworldmap-fabric-<minecraft version>:<mod version>"

NeoForge:

implementation "xaero.map:xaeroworldmap-neoforge-<minecraft version>:<mod version>"

在多加载器设置的“common”项目中:

compileOnly "xaero.map:xaeroworldmap-common-<minecraft version>:<mod version>"

整合包及其他

你可以使用此模组制作视频。

在满足以下条件的情况下,允许将其用于你的整合包:

  • 仅允许通过 CurseForge 或 Modrinth 对整合包进行盈利(包括整合包描述中的赞助链接/横幅),除非我已书面授权你在其他地方盈利。欢迎私下给我发消息讨论此事。我大概率会同意你的请求。
  • 如果整合包在 CurseForge 和 Modrinth 之外分发,那么你必须向 CurseForge 和 Modrinth 之外的用户致谢,提供指向我该模组官方页面之一的可轻松访问的链接。 
  • 整合包的名称和/或描述不得与我的模组名称/描述轻易混淆。
  • 如果我已书面授权你在 CurseForge 和 Modrinth 之外对整合包进行盈利,那么,如果我提出要求,你必须移除 CurseForge 和 Modrinth 之外的盈利。 

评论

登录后评论和评分

thexaero 的其他作品

查看全部 →