MinecraftClient.getInstance().player возвращает нольJAVA

Программисты JAVA общаются здесь
Anonymous
MinecraftClient.getInstance().player возвращает ноль

Сообщение Anonymous »

Я только начал с попытки создать простой мод для Minecraft, который возвращает свойство PlayerEntity DisplayName и записывает его в консоль. Код выглядит следующим образом:
SimpleMod.java

Код: Выделить всё

package net.arecdev.simplemod;

import net.fabricmc.api.ModInitializer;

import net.arecdev.simplemod.test.TestClass;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SimpleMod implements ModInitializer {
public static final String MOD_ID = "simplemod";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);

@Override
public void onInitialize() {
LOGGER.info("Simple Mod has started");

String teststring = TestClass.test();
LOGGER.info("String: " + teststring);
}
}
TestClass.java

Код: Выделить всё

package net.arecdev.simplemod.test;

import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.text.Text;

public class TestClass {

public static String test() {

PlayerEntity player = MinecraftClient.getInstance().player;
Text playerDisplayName = player.getDisplayName();
String playerDisplayString = playerDisplayName.getString();
return playerDisplayString;
}

}
при попытке запустить это с помощью клиента Minecraft я получаю исключение NullPointerException:
Вызвано: java.lang.NullPointerException: невозможно вызвать «net.minecraft.entity.player.PlayerEntity.getDisplayName()», потому что «player» имеет значение null
Я предполагаю, что это происходит потому, что MinecraftClient еще не запущен в этот момент пока.
Так как же мне дождаться инициализации MinecraftClient?

Подробнее здесь: https://stackoverflow.com/questions/782 ... turns-null

Вернуться в «JAVA»