Java Development Kit с Minecraft 1.8.9 Forge Modding, какой JDK / JRE нужен, правильный ли код? - PullRequest
0 голосов
/ 13 января 2019

Я следовал учебнику Powns

https://www.youtube.com/watch?v=keDj9fvzigk

о том, как делать моды в Minecraft 1.8.9 Forge.

Я сделал то же самое, что и он, но когда я его запустил, это не сработало. Это привело меня к мысли, что это связано с моей версией JDK. Кроме того, он не говорит, какой из них он использует, какую версию мне использовать?

Я пробовал использовать новейшую версию, и она не работает, сейчас я использую 8u5.

Мой код для счетчика

package me.BeastModeGamez.arrowCounter;

import net.minecraft.init.Blocks;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;

@Mod(modid = ArrowCounter.MODID, version = ArrowCounter.VERSION)
public class ArrowCounter
{
    public static final String MODID = "arrowCounter";
    public static final String VERSION = "1.0";

    @EventHandler
    public void init(FMLInitializationEvent event)
    {


    }
}

Мой код для счетчиков:

package me.BeastModeGamez.arrowCounter.commands;

import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.ChatComponentText;

public class arrowCounterCommands extends CommandBase {

    @Override
    public String getCommandName() {
    return "arrowcounter";
    }

    @Override
    public String getCommandUsage(ICommandSender sender) {
        return "/" + getCommandName();
    }

    @Override
    public void processCommand(ICommandSender sender, String[] args) throws CommandException {
        sender.addChatMessage(new ChatComponentText("Test Command."));

    }

    @Override
    public int getRequiredPermissionLevel() {
        return 0;
    }

    @Override
    public boolean canCommandSenderUseCommand(final ICommandSender p_71519_1_) {
    return true;
    }

}

Я надеюсь увидеть, что мод работает, но вместо этого он говорит неизвестную команду. Что-то, что я считаю важным, - это два предупреждения, говорящих:

Описание Путь к ресурсу Тип местоположения Указано соответствие компилятора 1.6, но используется JRE 1.8 .org.eclipse.jdt.core.external.folders Соответствие компилятора Проблема соответствия компилятора JRE

а также

Описание Путь к ресурсу Тип местоположения Указано соответствие компилятору 1.6, но используется JRE 1.8. Соответствие компилятора MDKExample Проблема соответствия компилятора JRE

Кроме того, если вам интересно, не будет ли код больше работать, видео было снято 3 недели назад.

Итак, в заключение, мой вопрос: что нужно исправить, и имеет ли это отношение к JRE, как сказано в предупреждениях, или мой код неверен, или мне нужен более новый JDK? И если мне нужно изменить JRE, как?

Редактировать: я исправил обе ошибки (и изменил jdk на обновленную), то есть, скорее всего, это не программное обеспечение, а код, ошибка теперь (не в проблемах - не показана), которая возникает каждый раз, когда я пытаюсь выполните команду, которая говорит неизвестную команду.

1 Ответ

0 голосов
/ 14 января 2019

Вам нужна Java 8

Если у вас установлено более одного JDK, вам нужно убедиться, что Eclipse направлен на правильный, но если вы не занимаетесь другой Java-разработкой, вы можете просто удалить другие JDK и установить только тот, который вам нужен , Смотрите эту тему . Часто проще просто иметь правильную версию JDK, чем использовать более новую версию и ориентироваться на более старую спецификацию.

Для справки, Minecraft 1.13 ориентирован на Java 9, и для поддержки этого необходимо переписать модуль запуска Forge (см. этот поток ).

Однако похоже, что Eclipse настроен на целевую среду исполнения Java 6, независимо от того, какой у вас JDK, и именно на это жаловались. См. этот вопрос , чтобы решить эту проблему.

...