Прокси

Версия Minecraft
1.7.10
12
0
У меня проблема с вызовом методов инициализации прокси из главного класса.
В этих строках: proxy.preInit(enent), proxy.init(enent), proxy.postInit(enent) proxy вызывает ошибку.
Java:
package com.example.examplemod;

import cpw.mods.fml.common.SidedProxy;
import net.minecraft.init.Blocks;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;

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

    @SidedProxy(clientSide = "exampleMod.ClientProxy", serverSide = "expampleMod.ServerProxy")
    public static CommonProxy commonProxy;

    public class CommonProxy {//То, что выполняется и на клиенте и на сервере
        public void preInit(FMLPreInitializationEvent event) {
        }
        public void init(FMLInitializationEvent event) {
        }
        public void postInit(FMLPostInitializationEvent event) {
        }
    }

    public class ClientProxy extends CommonProxy {//Клиентские действия: регистрация рендеров, загрузка моделей
        public void preInit(FMLPreInitializationEvent event) {
            super.preInit(event);//Мы расширили клиенское прокси от общего и теперь нужно выполнить на клиенте общий функционал
        }
        public void init(FMLInitializationEvent event) {
            super.init(event);
        }
        public void postInit(FMLPostInitializationEvent event) {
            super.postInit(event);
        }
    }

    public class ServerProxy extends CommonProxy {//Серверные действия
        public void preInit(FMLPreInitializationEvent event) {
            super.preInit(event);
        }
        public void init(FMLInitializationEvent event) {
            super.init(event);
        }
        public void postInit(FMLPostInitializationEvent event) {
            super.postInit(event);
        }
    }

    @EventHandler //Вспомогательная аннотация
    public void preInit(FMLPreInitializationEvent event) {
        proxy.preInit(event);
        //Тут можно регистрировать предметы, блоки, слушатели событий, сущности
    }

    @EventHandler
    public void init(FMLInitializationEvent event) {
       proxy.init(event);
        //Рецепты, достижения и прочее, что требует уже инициализированные предметы, блоки
    }
    @EventHandler
    public void postInit(FMLPostInitializationEvent event) {
        proxy.postInit(event);
        //Для интеграции с другими модами. Например, регистрация вкладки для таумкрафта
    }
}
 

timaxa007

Модератор
5,831
409
672
CommonProxy - нету для показа, но это не важно.
1. "exampleMod.ClientProxy" и "expampleMod.ServerProxy" - тут expampleMod не modID.
т.е. возможно должно "com.example.examplemod.ExampleMod.ClientProxy" и "com.example.examplemod.ExampleMod.ServerProxy", вроде так должно.
2. Желательно в SidedProxy указывать modID, т.е. @SidedProxy(modId = MODID, clientSide... - это особенно нужно когда у тебя в проекте несколько модов с Proxy без указания на ModID.
 
1,470
19
189
Тебе нужно не proxy, а commonProxy, и как говорил тимаха выше, путь правильный укажи
 
Сверху