Создание кастомного инвентаря игрока

Создание кастомного инвентаря игрока

Нет прав для скачивания

Eifel

Модератор
1,623
78
608
@CMTV , постарался все поправить, жду ответа. Так же я обновил ресурсы и добавил комментарии там, где их не хватало
 
Последнее редактирование:
  • Like
Реакции: CMTV

CMTV

Основатель
Администратор
1,304
4
601
ОТЛИЧНО!

Я так понял, ты решил не писать, как открывать свой инвентарь вместо стандартного?

И последнее. Код в тексте надо оформлять через bb-тег [icode].
 

Eifel

Модератор
1,623
78
608
решил не писать, как открывать свой инвентарь вместо стандартного?
Решил не писать. Это поломка совместимости, и чтоб сделать более-менее нормально, надо делать по другому немного. Я подумал, что это не входит в рамки данного туториала. Код сейчас попарвлю
 
  • Like
Реакции: CMTV

CMTV

Основатель
Администратор
1,304
4
601
Ну тогда код в строке в айкод помести и у меня никаких претензий. Великолепный гайд, как по мне (по критериям и советам).
 

CMTV

Основатель
Администратор
1,304
4
601
И да. Ты так и не написал, чем равен размер слота. Или я не заметил?
 

Eifel

Модератор
1,623
78
608
Поправил код. Я написал что размер слота стондартный, такой как все слоты
 

CMTV

Основатель
Администратор
1,304
4
601
А в пикселях? Я именно про это говорил. И так видно, что он стандартный :ROFLMAO:
 

CMTV

Основатель
Администратор
1,304
4
601
Ок. Вопросов у меня больше нет. У нас есть первый супер-гайд :)
 
5,018
47
783
AttachCapabilitiesEvent.Entity - версия 1.12.2 - такого эвента не существует. Просто AttachCapabilitiesEvent есть, а с подразделом энтити нету
В 1.12+ полагаю, надо писать так

Код:
    @SubscribeEvent
    public void attachCapability(AttachCapabilitiesEvent event) {
        
        if(event.getObject() instanceof EntityPlayer){
            event.addCapability(INVENTORY_CAP, new CAPCustomInventoryProvider());
        }
    }
 
129
6
18
Нормально гайд, всё хорошо описано, но по моему не хватает описания как добавлять слоты для крафта(ну как дополнение).
 
91
1
5
Вот если бы на 1.12.2 улучшить ...
 

Eifel

Модератор
1,623
78
608
@EnGinners На 1.12.2 практически индентично, могут быть мелкие различия в названии методов, возможно, ну и несколькими сообщениями выше написано как правильно аттачить капу для этой версии, полагаю все
 
91
1
5
Я понимаю что идентично, но событие с
Код:
@SubscribeEvent
    public <T> void attachCapability(AttachCapabilitiesEvent<T> event) {
        if(event.getObject() instanceof EntityPlayer) {
            event.addCapability(INVENTORY_CAP, new CAPCustomInventoryProvider());
        }
    }
И выше Maxik001 предложил другое, eclipse предложил 2 варианта исправлений и я заменил.
 
Последнее редактирование:
91
1
5
Только вот 1 проблема
Java:
@SubscribeEvent
    public void onPlayerClone(PlayerEvent.Clone event) {
        EntityPlayer player = event.getEntityPlayer();
        ICAPCustomInventory newCap = player.getCapability(CAPCustomInventoryProvider.INVENTORY_CAP, null);
        ICAPCustomInventory oldCap = event.getOriginal().getCapability(CAPCustomInventoryProvider.INVENTORY_CAP, null);
        newCap.copyInventory(oldCap);
    }
После смерти игрока, ты не можешь возрадиться и даже перейти в главное меню, а причина в NullPointerException
 

Eifel

Модератор
1,623
78
608
Ну значит что-то забыл сделать, ну и желательно бы лог глянуть
 
91
1
5
Код:
[22:53:26] [Server thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.event.entity.living.LivingDeathEvent@4e4f2a2f:
java.lang.NullPointerException: null
    at com.enginners.common.custominv.capabilityinv.CapabilityEventHandler.onPlayerDeath(CapabilityEventHandler.java:44) ~[CapabilityEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_19_CapabilityEventHandler_onPlayerDeath_LivingDeathEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) [EventBus.class:?]
    at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:614) [ForgeHooks.class:?]
    at net.minecraft.entity.player.EntityPlayerMP.onDeath(EntityPlayerMP.java:518) [EntityPlayerMP.class:?]
    at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:1136) [EntityLivingBase.class:?]
    at net.minecraft.entity.player.EntityPlayer.attackEntityFrom(EntityPlayer.java:1127) [EntityPlayer.class:?]
    at net.minecraft.entity.player.EntityPlayerMP.attackEntityFrom(EntityPlayerMP.java:692) [EntityPlayerMP.class:?]
    at net.minecraft.entity.EntityLivingBase.outOfWorld(EntityLivingBase.java:1757) [EntityLivingBase.class:?]
    at net.minecraft.entity.Entity.onEntityUpdate(Entity.java:583) [Entity.class:?]
    at net.minecraft.entity.EntityLivingBase.onEntityUpdate(EntityLivingBase.java:279) [EntityLivingBase.class:?]
    at net.minecraft.entity.Entity.onUpdate(Entity.java:466) [Entity.class:?]
    at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:2322) [EntityLivingBase.class:?]
    at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:272) [EntityPlayer.class:?]
    at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:423) [EntityPlayerMP.class:?]
    at net.minecraft.network.NetHandlerPlayServer.update(NetHandlerPlayServer.java:185) [NetHandlerPlayServer.class:?]
    at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:212) [NetworkDispatcher$1.class:?]
    at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307) [NetworkManager.class:?]
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197) [NetworkSystem.class:?]
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:865) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:743) [MinecraftServer.class:?]
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) [IntegratedServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:592) [MinecraftServer.class:?]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
[22:53:26] [Server thread/ERROR] [FML]: Index: 1 Listeners:
[22:53:26] [Server thread/ERROR] [FML]: 0: NORMAL
[22:53:26] [Server thread/ERROR] [FML]: 1: ASM: com.enginners.common.custominv.capabilityinv.CapabilityEventHandler@2ddc0583 onPlayerDeath(Lnet/minecraftforge/event/entity/living/LivingDeathEvent;)V
[22:53:26] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception
net.minecraft.util.ReportedException: Ticking player
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:212) ~[NetworkSystem.class:?]
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:865) ~[MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:743) ~[MinecraftServer.class:?]
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) ~[IntegratedServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:592) [MinecraftServer.class:?]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
Caused by: java.lang.NullPointerException
    at com.enginners.common.custominv.capabilityinv.CapabilityEventHandler.onPlayerDeath(CapabilityEventHandler.java:44) ~[CapabilityEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_19_CapabilityEventHandler_onPlayerDeath_LivingDeathEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) ~[EventBus.class:?]
    at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:614) ~[ForgeHooks.class:?]
    at net.minecraft.entity.player.EntityPlayerMP.onDeath(EntityPlayerMP.java:518) ~[EntityPlayerMP.class:?]
    at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:1136) ~[EntityLivingBase.class:?]
    at net.minecraft.entity.player.EntityPlayer.attackEntityFrom(EntityPlayer.java:1127) ~[EntityPlayer.class:?]
    at net.minecraft.entity.player.EntityPlayerMP.attackEntityFrom(EntityPlayerMP.java:692) ~[EntityPlayerMP.class:?]
    at net.minecraft.entity.EntityLivingBase.outOfWorld(EntityLivingBase.java:1757) ~[EntityLivingBase.class:?]
    at net.minecraft.entity.Entity.onEntityUpdate(Entity.java:583) ~[Entity.class:?]
    at net.minecraft.entity.EntityLivingBase.onEntityUpdate(EntityLivingBase.java:279) ~[EntityLivingBase.class:?]
    at net.minecraft.entity.Entity.onUpdate(Entity.java:466) ~[Entity.class:?]
    at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:2322) ~[EntityLivingBase.class:?]
    at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:272) ~[EntityPlayer.class:?]
    at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:423) ~[EntityPlayerMP.class:?]
    at net.minecraft.network.NetHandlerPlayServer.update(NetHandlerPlayServer.java:185) ~[NetHandlerPlayServer.class:?]
    at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:212) ~[NetworkDispatcher$1.class:?]
    at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307) ~[NetworkManager.class:?]
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197) ~[NetworkSystem.class:?]
    ... 5 more
[22:53:26] [Server thread/ERROR] [minecraft/MinecraftServer]: This crash report has been saved to: C:\Users\Пользователь\Desktop\Mod\run\.\crash-reports\crash-2019-07-02_22.53.26-server.txt
[22:53:26] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping server
[22:53:26] [Server thread/INFO] [minecraft/MinecraftServer]: Saving players
[22:53:26] [Server thread/INFO] [minecraft/MinecraftServer]: Saving worlds
[22:53:26] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'New World'/overworld
[22:53:26] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: ---- Minecraft Crash Report ----
// Oh - I know what I did wrong!

Time: 7/2/19 10:53 PM
Description: Ticking player

java.lang.NullPointerException: Ticking player
    at com.enginners.common.custominv.capabilityinv.CapabilityEventHandler.onPlayerDeath(CapabilityEventHandler.java:44)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_19_CapabilityEventHandler_onPlayerDeath_LivingDeathEvent.invoke(.dynamic)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
    at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:614)
    at net.minecraft.entity.player.EntityPlayerMP.onDeath(EntityPlayerMP.java:518)
    at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:1136)
    at net.minecraft.entity.player.EntityPlayer.attackEntityFrom(EntityPlayer.java:1127)
    at net.minecraft.entity.player.EntityPlayerMP.attackEntityFrom(EntityPlayerMP.java:692)
    at net.minecraft.entity.EntityLivingBase.outOfWorld(EntityLivingBase.java:1757)
    at net.minecraft.entity.Entity.onEntityUpdate(Entity.java:583)
    at net.minecraft.entity.EntityLivingBase.onEntityUpdate(EntityLivingBase.java:279)
    at net.minecraft.entity.Entity.onUpdate(Entity.java:466)
    at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:2322)
    at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:272)
    at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:423)
    at net.minecraft.network.NetHandlerPlayServer.update(NetHandlerPlayServer.java:185)
    at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:212)
    at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307)
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197)
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:865)
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:743)
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:592)
    at java.lang.Thread.run(Unknown Source)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
    at com.enginners.common.custominv.capabilityinv.CapabilityEventHandler.onPlayerDeath(CapabilityEventHandler.java:44)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_19_CapabilityEventHandler_onPlayerDeath_LivingDeathEvent.invoke(.dynamic)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
    at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:614)
    at net.minecraft.entity.player.EntityPlayerMP.onDeath(EntityPlayerMP.java:518)
    at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:1136)
    at net.minecraft.entity.player.EntityPlayer.attackEntityFrom(EntityPlayer.java:1127)
    at net.minecraft.entity.player.EntityPlayerMP.attackEntityFrom(EntityPlayerMP.java:692)
    at net.minecraft.entity.EntityLivingBase.outOfWorld(EntityLivingBase.java:1757)
    at net.minecraft.entity.Entity.onEntityUpdate(Entity.java:583)
    at net.minecraft.entity.EntityLivingBase.onEntityUpdate(EntityLivingBase.java:279)
    at net.minecraft.entity.Entity.onUpdate(Entity.java:466)
    at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:2322)
    at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:272)

-- Player being ticked --
Details:
    Entity Type: null (net.minecraft.entity.player.EntityPlayerMP)
    Entity ID: 0
    Entity Name: Player325
    Entity's Exact location: 14.68, -215.50, -11.03
    Entity's Block location: World: (14,-216,-12), Chunk: (at 14,-14,4 in 0,-1; contains blocks 0,0,-16 to 15,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
    Entity's Momentum: 0.00, -3.39, 0.00
    Entity's Passengers: []
    Entity's Vehicle: ~~ERROR~~ NullPointerException: null
Stacktrace:
    at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:423)
    at net.minecraft.network.NetHandlerPlayServer.update(NetHandlerPlayServer.java:185)
    at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:212)
    at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307)

-- Ticking connection --
Details:
    Connection: net.minecraft.network.NetworkManager@27f1f002
Stacktrace:
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197)
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:865)
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:743)
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:592)
    at java.lang.Thread.run(Unknown Source)

-- System Details --
Details:
    Minecraft Version: 1.12.2
    Operating System: Windows 7 (amd64) version 6.1
    Java Version: 1.8.0_211, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 145418608 bytes (138 MB) / 346554368 bytes (330 MB) up to 697303040 bytes (665 MB)
    JVM Flags: 0 total;
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP 9.42 Powered by Forge 14.23.5.2838 5 mods loaded, 5 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

    | State  | ID                                | Version      | Source                           | Signature |
    |:------ |:--------------------------------- |:------------ |:-------------------------------- |:--------- |
    | LCHIJA | minecraft                         | 1.12.2       | minecraft.jar                    | None      |
    | LCHIJA | mcp                               | 9.42         | minecraft.jar                    | None      |
    | LCHIJA | FML                               | 8.0.99.99    | forgeSrc-1.12.2-14.23.5.2838.jar | None      |
    | LCHIJA | forge                             | 14.23.5.2838 | forgeSrc-1.12.2-14.23.5.2838.jar | None      |
    | LCHIJA | mod                               | 1.2.9        | bin                              | None      |

    Loaded coremods (and transformers):
    GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
    Profiler Position: root.connection.entityBaseTick
    Player Count: 1 / 8; [EntityPlayerMP['Player325'/0, l='New World', x=14.68, y=-215.50, z=-11.03]]
    Type: Integrated Server (map_client.txt)
    Is Modded: Definitely; Client brand changed to 'fml,forge'
[22:53:26] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: #@!@# Game crashed! Crash report saved to: #@!@# .\crash-reports\crash-2019-07-02_22.53.26-server.txt
[22:53:26] [Client thread/INFO] [FML]: Waiting for the server to terminate/save.
[22:53:26] [Server thread/INFO] [FML]: Unloading dimension 0
[22:53:26] [Server thread/INFO] [FML]: Applying holder lookups
[22:53:26] [Server thread/INFO] [FML]: Holder lookups applied
[22:53:26] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
[22:53:26] [Client thread/INFO] [FML]: Server terminated.
[22:53:26] [Client Shutdown Thread/INFO] [minecraft/MinecraftServer]: Stopping server
AL lib: (EE) alc_cleanup: 1 device not closed
 

Eifel

Модератор
1,623
78
608
Значит ты что-то не правильно сделал. Может капу не зарегал, или не добавил ее игроку правильно. В общем пересмотри все еще раз.
 
3,005
192
592
Сверху