Итак сегодня мы поговорим про Proxy!
Proxy это класс который оповещает Minecraft о блоках|предметах с 3D моделями, своих звуках, своих событиях, проще говоря это файл, который даёт возможность создавать что-то, чего нету, в самой игре, а также это очень полезный класс-помощник.
Чтобы создать Proxy необходимо создать 3 класса в нашей папке.
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
public class CommonProxy {
@EventHandler
public void preInit(FMLPreInitializationEvent e) {
}
@EventHandler
public void Init(FMLInitializationEvent e) {
}
@EventHandler
public void postInit(FMLPostInitializationEvent e) {
}
}
CommonProxy это класс из которого будут исходить остальные два, то есть если мы, тут, что-то изменим, оно автоматически изменится и там
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
public class ClientProxy extends CommonProxy{
@EventHandler
public void preInit(FMLPreInitializationEvent e) {
super.preInit(e);
}
@EventHandler
public void Init(FMLInitializationEvent e) {
super.Init(e);
}
@EventHandler
public void postInit(FMLPostInitializationEvent e) {
super.postInit(e);
}
}
ClientProxy это класс который создаёт Proxy для одиночной игры.
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
public class ServerProxy extends CommonProxy{
@EventHandler
public void preInit(FMLPreInitializationEvent e) {
super.preInit(e);
}
@EventHandler
public void Init(FMLInitializationEvent e) {
super.Init(e);
}
@EventHandler
public void postInit(FMLPostInitializationEvent e) {
super.postInit(e);
}
}
То же самое что и ClientProxy, только для сервера
Теперь чтобы Proxy зарегистрировался в игре необходимо в главном файле добавить такой вот код:
@SidedProxy(clientSide="/ваш ник\./название мода\.ClientProxy", serverSide="/ваш ник\./название мода\.ServerProxy")
public static CommonProxy proxy;
@SidedProxy() - регистрирует Proxy.
public static CommonProxy proxy - объявление переменной CommonProxy как proxy
Теперь добавляем в методы наших preInit, Init, postInit вот такие строки
this.proxy.preInit(e);
this.proxy.Init(e);
this.proxy.postInit(e);
@SidedProxy(clientSide="cheshirX.hightEnergetics.ClientProxy", serverSide="cheshirX.hightEnergetics.ServerProxy")
public static CommonProxy proxy;
@EventHandler
public void preInit(FMLPreInitializationEvent e) {
this.proxy.preInit(e);
}
@EventHandler
public void init(FMLInitializationEvent e) {
this.proxy.Init(e);
}
@EventHandler
public void postInit(FMLPostInitializationEvent e) {
this.proxy.postInit(e);
}
Вам писал CheshirX, через несколько минут(~30) выйдет гайд по добавлению вещей в игру!