1.5.2 Добавление брони (items)

Именно такого нет, есть event, но там опять же нету.
23600c84a9ed.png
 
Спасибо, это именно то, что нужно. Но для того, чтобы проверить броню нужно добавить условие того, что игрок находится в игре, а не в главном меню(пробовал Minecraft.getMinecraft().inGameHasFocus но это не совсем то, что нужно - не работает, когда открывается инвентарь). Без условия краш.
 
Броню проверять надо на сервере (если ты хочешь эффекты от неё), не стоит доверять это клиенту.
Если хочешь что-то отрендерить на клиенте, то проверка игрока на нахождение в мире делается так:
Код:
if (Minecraft.getMinecraft().theWorld != null)
 
Мне вдруг он тоже пригодился, но не работает чёт...
Код:
    @ForgeSubscribe
    public void TickEvent(ITickHandler e) 
    {
    }

Код:
        MinecraftForge.EVENT_BUS.register(new EventSpectatorChest());
[merge_posts_bbcode]Добавлено: 16.08.2015 14:55:15[/merge_posts_bbcode]

Код:
2015-08-16 14:44:19 [SEVERE] [ForgeModLoader] Fatal errors were detected during the transition from INITIALIZATION to POSTINITIALIZATION. Loading cannot continue
2015-08-16 14:44:19 [SEVERE] [ForgeModLoader] 
    mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized
    FML{6.99.19.964} [Forge Mod Loader] (forge-1.6.4-9.11.1.964-mcp.jar) Unloaded->Constructed->Pre-initialized->Initialized
    Forge{9.11.1.964} [Minecraft Forge] (forge-1.6.4-9.11.1.964-mcp.jar) Unloaded->Constructed->Pre-initialized->Initialized
    genetatechests{1.0} [GenetateChests] (bin) Unloaded->Constructed->Pre-initialized->Errored
2015-08-16 14:44:19 [SEVERE] [ForgeModLoader] The following problems were captured during this phase
2015-08-16 14:44:19 [SEVERE] [ForgeModLoader] Caught exception from genetatechests
java.lang.IllegalArgumentException: Method public void com.svk.generateChests.events.EventSpectatorChest.TickEvent(cpw.mods.fml.common.ITickHandler) has @ForgeSubscribe annotation, but takes a argument that is not a Event interface cpw.mods.fml.common.ITickHandler
    at net.minecraftforge.event.EventBus.register(EventBus.java:55)
    at com.svk.generateChests.base.CommonProxy.init(CommonProxy.java:38)
    at com.svk.generateChests.base.BaseClassMod.init(BaseClassMod.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:523)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
    at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
    at com.google.common.eventbus.EventBus.post(EventBus.java:267)
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:197)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:177)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
    at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
    at com.google.common.eventbus.EventBus.post(EventBus.java:267)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:108)
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:670)
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:241)
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:509)
    at net.minecraft.client.Minecraft.run(Minecraft.java:808)
    at net.minecraft.client.main.Main.main(Main.java:101)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
2015-08-16 14:44:19 [INFO] [STDOUT] ---- Minecraft Crash Report ----
 
svk, "ITickHandler" это интерфейс.
 
Если не ошибаюсь.
Код:
TickRegistry.registerTickHandler(new TickHandler(), Side.SERVER);
Код:
public class TickHandler implements ITickHandler {

@Override
public void tickStart(EnumSet<TickType> type, Object... tickData) {

}

@Override
public void tickEnd(EnumSet<TickType> type, Object... tickData) {

}

@Override
public EnumSet<TickType> ticks() {
return null;
}

@Override
public String getLabel() {
return null;
}

}
 
Код:
2015-08-16 15:08:56 [INFO] [STDOUT] java.lang.IllegalArgumentException: Method public void com.svk.generateChests.events.EventSpectatorChest.TickEvent(com.svk.generateChests.base.TickHandler) has @ForgeSubscribe annotation, but takes a argument that is not a Event class com.svk.generateChests.base.TickHandler
2015-08-16 15:08:56 [INFO] [STDOUT]     at net.minecraftforge.event.EventBus.register(EventBus.java:55)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.svk.generateChests.base.CommonProxy.init(CommonProxy.java:41)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.svk.generateChests.base.BaseClassMod.init(BaseClassMod.java:60)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2015-08-16 15:08:56 [INFO] [STDOUT]     at java.lang.reflect.Method.invoke(Method.java:606)
2015-08-16 15:08:56 [INFO] [STDOUT]     at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:523)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2015-08-16 15:08:56 [INFO] [STDOUT]     at java.lang.reflect.Method.invoke(Method.java:606)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.google.common.eventbus.EventBus.post(EventBus.java:267)
2015-08-16 15:08:56 [INFO] [STDOUT]     at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:197)
2015-08-16 15:08:56 [INFO] [STDOUT]     at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:177)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2015-08-16 15:08:56 [INFO] [STDOUT]     at java.lang.reflect.Method.invoke(Method.java:606)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
2015-08-16 15:08:56 [INFO] [STDOUT]     at com.google.common.eventbus.EventBus.post(EventBus.java:267)
2015-08-16 15:08:56 [INFO] [STDOUT]     at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:108)
2015-08-16 15:08:56 [INFO] [STDOUT]     at cpw.mods.fml.common.Loader.initializeMods(Loader.java:670)
2015-08-16 15:08:56 [INFO] [STDOUT]     at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:241)
2015-08-16 15:08:56 [INFO] [STDOUT]     at net.minecraft.client.Minecraft.startGame(Minecraft.java:509)
2015-08-16 15:08:56 [INFO] [STDOUT]     at net.minecraft.client.Minecraft.run(Minecraft.java:808)
2015-08-16 15:08:56 [INFO] [STDOUT]     at net.minecraft.client.main.Main.main(Main.java:101)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
2015-08-16 15:08:56 [INFO] [STDOUT]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2015-08-16 15:08:56 [INFO] [STDOUT]     at java.lang.reflect.Method.invoke(Method.java:606)
2015-08-16 15:08:56 [INFO] [STDOUT]     at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
2015-08-16 15:08:56 [INFO] [STDOUT]     at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
2015-08-16 15:08:56 [INFO] [STDOUT] 
2015-08-16 15:08:56 [INFO] [STDOUT]


Код:
    @ForgeSubscribe
    public void TickEvent(TickHandler e) 
    {
    }

Код:
        TickRegistry.registerTickHandler(new TickHandler(), Side.SERVER);
        MinecraftForge.EVENT_BUS.register(new EventSpectatorChest());
[merge_posts_bbcode]Добавлено: 16.08.2015 15:11:10[/merge_posts_bbcode]

Аааа, в TickHandler делать, я понял :D
 
А как тогда сделать, чтобы на сервере работало? Я думал просто этот мод закину в папку mods в MCPC+ и все. 
И ещё, боюсь будут проблемы с максимальным здоровьем, как увеличить его на определённое число не меняя EntityPlayer? Сейчас юзаю setMaxHealth код несколько сообщений выше.
 
Можно менять с помощью ASM. Это как вариант.
 
Не приходилось слышать о ASM, может быть примеры использования есть или гайд какой-нибудь, более-менее понятный для новичка в Java?
 
Назад
Сверху