- 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);
//Для интеграции с другими модами. Например, регистрация вкладки для таумкрафта
}
}