在客户端上按名称获取 World 实例

问题描述

我是 Fabric mod 开发的新手,我遇到了一个有趣的问题。我需要一个 World 实例来执行我​​的 mod 中的某些操作,但我不知道如何获得它。我尝试了 Forge 的解决方案,但类名不同,我在 Fabric 中找不到合适的解决方案。我还查看了 wiki,但他们只写了关于创建自定义世界的内容

有没有办法通过世界名称获取世界实例?还是只是为了获取世界列表?

解决方法

没有办法在客户端获得任何世界实例。这有两个非常明显的原因:

  1. 出于内存、CPU 和网络使用的原因,并非所有世界都不会在客户端加载/存在。
  2. 安全。客户端不需要知道哪些维度可用,那么服务器为什么要告诉它呢?如果您知道哪些维度可用,您或许可以找到游戏内限制的解决方法,尤其是在这些是自定义维度的情况下。

然而,您可以获得某个世界实例:客户端当前加载的维度。您可以通过指向 MinecraftClient.getInstance().world 实例的 ClientWorld 访问它。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...