• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Crash / Cannot Cast

    1.7.x
    1.7.10
    3
    4
    719
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Folgansky
      Folgansky Correcteurs last edited by

      Un crash surprenant qui n’arrive pas systématiquement.

      –-- Minecraft Crash Report ----
      // You're mean.
      
      Time: 01/03/16 09:42
      Description: Ticking entity
      
      java.lang.ClassCastException: net.minecraft.entity.monster.EntityZombie cannot be cast to net.minecraft.entity.player.EntityPlayer
      at fr.powergame.modpg2.common.LivingEventHandler.onEntityKilled(LivingEventHandler.java:31)
      at cpw.mods.fml.common.eventhandler.ASMEventHandler_8_LivingEventHandler_onEntityKilled_LivingDeathEvent.invoke(.dynamic)
      at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
      at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:138)
      at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:305)
      at net.minecraft.entity.EntityLivingBase.onDeath(EntityLivingBase.java:982)
      at net.minecraft.entity.passive.EntityVillager.onDeath(EntityVillager.java:371)
      at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:940)
      at net.minecraft.entity.monster.EntityMob.attackEntityAsMob(EntityMob.java:140)
      at net.minecraft.entity.monster.EntityZombie.attackEntityAsMob(EntityZombie.java:340)
      at net.minecraft.entity.ai.EntityAIAttackOnCollide.updateTask(EntityAIAttackOnCollide.java:167)
      at net.minecraft.entity.ai.EntityAITasks.onUpdateTasks(EntityAITasks.java:125)
      at net.minecraft.entity.EntityLiving.updateAITasks(EntityLiving.java:613)
      at net.minecraft.entity.EntityLivingBase.onLivingUpdate(EntityLivingBase.java:1983)
      at net.minecraft.entity.EntityLiving.onLivingUpdate(EntityLiving.java:431)
      at net.minecraft.entity.monster.EntityMob.onLivingUpdate(EntityMob.java:39)
      at net.minecraft.entity.monster.EntityZombie.onLivingUpdate(EntityZombie.java:243)
      at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:1816)
      at net.minecraft.entity.EntityLiving.onUpdate(EntityLiving.java:250)
      at net.minecraft.entity.monster.EntityMob.onUpdate(EntityMob.java:47)
      at net.minecraft.entity.monster.EntityZombie.onUpdate(EntityZombie.java:335)
      at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2298)
      at net.minecraft.world.WorldServer.updateEntityWithOptionalForce(WorldServer.java:684)
      at net.minecraft.world.World.updateEntity(World.java:2258)
      at net.minecraft.world.World.updateEntities(World.java:2108)
      at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:515)
      at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:703)
      at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
      at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
      at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
      at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
      
      A detailed walkthrough of the error, its code path and all known details is as follows:
      ---------------------------------------------------------------------------------------
      
      -- Head --
      Stacktrace:
      at fr.powergame.modpg2.common.LivingEventHandler.onEntityKilled(LivingEventHandler.java:31)
      at cpw.mods.fml.common.eventhandler.ASMEventHandler_8_LivingEventHandler_onEntityKilled_LivingDeathEvent.invoke(.dynamic)
      at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
      at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:138)
      at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:305)
      at net.minecraft.entity.EntityLivingBase.onDeath(EntityLivingBase.java:982)
      at net.minecraft.entity.passive.EntityVillager.onDeath(EntityVillager.java:371)
      at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:940)
      at net.minecraft.entity.monster.EntityMob.attackEntityAsMob(EntityMob.java:140)
      at net.minecraft.entity.monster.EntityZombie.attackEntityAsMob(EntityZombie.java:340)
      at net.minecraft.entity.ai.EntityAIAttackOnCollide.updateTask(EntityAIAttackOnCollide.java:167)
      at net.minecraft.entity.ai.EntityAITasks.onUpdateTasks(EntityAITasks.java:125)
      at net.minecraft.entity.EntityLiving.updateAITasks(EntityLiving.java:613)
      at net.minecraft.entity.EntityLivingBase.onLivingUpdate(EntityLivingBase.java:1983)
      at net.minecraft.entity.EntityLiving.onLivingUpdate(EntityLiving.java:431)
      at net.minecraft.entity.monster.EntityMob.onLivingUpdate(EntityMob.java:39)
      at net.minecraft.entity.monster.EntityZombie.onLivingUpdate(EntityZombie.java:243)
      at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:1816)
      at net.minecraft.entity.EntityLiving.onUpdate(EntityLiving.java:250)
      at net.minecraft.entity.monster.EntityMob.onUpdate(EntityMob.java:47)
      at net.minecraft.entity.monster.EntityZombie.onUpdate(EntityZombie.java:335)
      at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2298)
      at net.minecraft.world.WorldServer.updateEntityWithOptionalForce(WorldServer.java:684)
      at net.minecraft.world.World.updateEntity(World.java:2258)
      
      -- Entity being ticked --
      Details:
      Entity Type: Zombie (net.minecraft.entity.monster.EntityZombie)
      Entity ID: 130
      Entity Name: Zombie
      Entity's Exact location: -1291,00, 5,00, -246,10
      Entity's Block location: World: (-1292,5,-247), Chunk: (at 4,0,9 in -81,-16; contains blocks -1296,0,-256 to -1281,255,-241), Region: (-3,-1; contains chunks -96,-32 to -65,-1, blocks -1536,0,-512 to -1025,255,-1)
      Entity's Momentum: 0,01, -0,08, -0,01
      Stacktrace:
      at net.minecraft.world.World.updateEntities(World.java:2108)
      at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:515)
      
      -- Affected level --
      Details:
      Level name: New World
      All players: 0 total; []
      Chunk stats: ServerChunkCache: 625 Drop: 0
      Level seed: -2260587672458567962
      Level generator: ID 01 - flat, ver 0\. Features enabled: true
      Level generator options:
      Level spawn location: World: (-1278,4,-137), Chunk: (at 2,0,7 in -80,-9; contains blocks -1280,0,-144 to -1265,255,-129), Region: (-3,-1; contains chunks -96,-32 to -65,-1, blocks -1536,0,-512 to -1025,255,-1)
      Level time: 2517 game time, 2517 day time
      Level dimension: 0
      Level storage version: 0x04ABD - Anvil
      Level weather: Rain time: 30192 (now: false), thunder time: 165504 (now: false)
      Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
      Stacktrace:
      at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:703)
      at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
      at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
      at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
      at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
      
      -- System Details --
      Details:
      Minecraft Version: 1.7.10
      Operating System: Windows 7 (amd64) version 6.1
      Java Version: 1.8.0_73, Oracle Corporation
      Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
      Memory: 299107280 bytes (285 MB) / 627572736 bytes (598 MB) up to 1379926016 bytes (1316 MB)
      JVM Flags: 0 total;
      AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
      IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
      FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1448 4 mods loaded, 4 mods active
      States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
      UCHIJAAAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
      UCHIJAAAA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1448-1.7.10.jar)
      UCHIJAAAA Forge{10.13.4.1448} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1448-1.7.10.jar)
      UCHIJAAAA modpg2{1.2.2} [Mod Power Game 2] (bin)
      GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
      Profiler Position: N/A (disabled)
      Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
      Player Count: 0 / 8; []
      Type: Integrated Server (map_client.txt)
      Is Modded: Definitely; Client brand changed to 'fml,forge'
      

      Alors à la ligne indiquée j’ai

      EntityPlayer player = (EntityPlayer) event.source.getEntity();
      
      

      Qui fait partie de:

      @SubscribeEvent
          public void onEntityKilled(LivingDeathEvent event)
          {
              EntityPlayer player = (EntityPlayer) event.source.getEntity();
              Random rand = new Random();
              ItemStack stack1 = new ItemStack(ModPg2.itemRandomMunition, 1);
              ItemStack stack2 = new ItemStack(ModPg2.itemMetadata, 1, 0); //Insigne
              ItemStack stack3 = new ItemStack(ModPg2.itemMetadata, 1, 1); //Dent
              ItemStack stack4 = new ItemStack(ModPg2.itemMetadata, 1, 2); //Collier
      
              if(!event.entityLiving.worldObj.isRemote && event.entityLiving instanceof EntityMobGangster)
              {
                  int randInt = rand.nextInt(100);
                  for(int j = 0 ; j < 2; ++j)
                  {
                      if (randInt <= 5)
                      {   // 5/100
                          event.entityLiving.entityDropItem(stack2, 1);
                      }
                      if (randInt > 5 && randInt <= 15)
                      {   // 10/100
                          event.entityLiving.entityDropItem(stack4, 1);
                      }
                      if (randInt > 15)
                      {   // 84/100
                          event.entityLiving.entityDropItem(stack1, 1);
                      }
                  }
                  if(player != null)
                  {
                      int killG1 = player.getEntityData().getInteger("killG1");
                      if(!player.worldObj.isRemote)
                      {
                          killG1++;
                          player.getEntityData().setInteger("killG1", killG1);
                      }
                      if(killG1 == 50)
                      {
                          player.triggerAchievement(ModPg2.achievementKillG1a);
                      }
                      if(killG1 == 200)
                      {
                          player.triggerAchievement(ModPg2.achievementKillG1b);
                      }
                      if(killG1 == 1000)
                      {
                          player.triggerAchievement(ModPg2.achievementKillG1c);
                      }
                      if(killG1 == 5000)
                      {
                          player.triggerAchievement(ModPg2.achievementKillG1d);
                      }
                  }
              }
              if(!event.entityLiving.worldObj.isRemote && event.entityLiving instanceof EntityMobGangster2)
              {
                  int randInt = rand.nextInt(100);
                  for(int j = 0 ; j < 2; ++j)
                  {
                      if (randInt == 0)
                      {   // 1/100
                          event.entityLiving.entityDropItem(stack3, 1);
                          if(player != null)
                          {
                              player.triggerAchievement(ModPg2.achievementDentOr);                        
                          }
                      }
                      if (randInt > 0 && randInt <= 10)
                      {   // 10/100
                          event.entityLiving.entityDropItem(stack2, 1);
                      }
                      if (randInt > 5 && randInt <= 15)
                      {   // 10/100
                          event.entityLiving.entityDropItem(stack4, 1);
                      }
                      if (randInt > 15)
                      {   // 79/100
                          event.entityLiving.entityDropItem(stack1, 1);
                      }
                  }
                  if(player != null)
                  {
                      int killG2 = player.getEntityData().getInteger("killG2");
                      if(!player.worldObj.isRemote)
                      {
                          killG2++;
                          player.getEntityData().setInteger("killG2", killG2);
                      }
                      if(killG2 == 25)
                      {
                          player.triggerAchievement(ModPg2.achievementKillG2a);
                      }
                      if(killG2 == 100)
                      {
                          player.triggerAchievement(ModPg2.achievementKillG2b);
                      }
                      if(killG2 == 500)
                      {
                          player.triggerAchievement(ModPg2.achievementKillG2c);
                      }
                      if(killG2 == 1000)
                      {
                          player.triggerAchievement(ModPg2.achievementKillG2d);
                      }
                  }
              }
              if(!event.entityLiving.worldObj.isRemote && event.entityLiving instanceof EntityMobGangster3)
              {
                  int randInt = rand.nextInt(100);
                  for(int j = 0 ; j < 2; ++j)
                  {
                      if (randInt <= 2)
                      {   // 3/100
                          event.entityLiving.entityDropItem(stack3, 1);
                          if(player != null)
                          {
                              player.triggerAchievement(ModPg2.achievementDentOr);                    
                          }
                      }
                      if (randInt > 2 && randInt <= 12)
                      {   // 10/100
                          event.entityLiving.entityDropItem(stack2, 1);
                      }
                      if (randInt > 12 && randInt <= 17)
                      {   // 5/100
                          event.entityLiving.entityDropItem(stack4, 1);
                      }
                      if (randInt > 17)
                      {   // 82/100
                          event.entityLiving.entityDropItem(stack1, 1);
                      }
                  }
              }
              if(player != null)
              {
                  int killG3 = player.getEntityData().getInteger("killG3");
                  if(!player.worldObj.isRemote)
                  {
                      killG3++;
                      player.getEntityData().setInteger("killG3", killG3);
                  }
                  if(killG3 == 10)
                  {
                      player.triggerAchievement(ModPg2.achievementKillG3a);
                  }
                  if(killG3 == 40)
                  {
                      player.triggerAchievement(ModPg2.achievementKillG3b);
                  }
                  if(killG3 == 200)
                  {
                      player.triggerAchievement(ModPg2.achievementKillG3c);
                  }
                  if(killG3 == 400)
                  {
                      player.triggerAchievement(ModPg2.achievementKillG3d);
                  }
              }
          }
      

      Qui me permet de comptabiliser les kills pour mes succès et de gérer les loots lâchés par mes mobs.

      (Petit clin d’oeil à Elias qui malgré lui m’a lancé dans la folie des succès en tout genre)

      1 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        il faut mettre tout le code dans un bloc if(event.source.getEntity() instanceof EntityPlayer)

        1 Reply Last reply Reply Quote 0
        • Snowy_1803
          Snowy_1803 last edited by

          Qui te dis que c’est un joueur qui a tué le mob en question ?
          Rajoute une condition event.source.getEntity() instanceof EntityPlayer.

          Moddeur 1.8

          Développeur Java

          1 Reply Last reply Reply Quote 0
          • Folgansky
            Folgansky Correcteurs last edited by

            Ouki merci les gens, je ne connais pas le fonctionnement du cast alors j’ai cru que ça équivalait au Instanceof.

            Voilà (et merci pour le déplacement de sujet, j’étais pas sûr que ce soit lié au modding)

            1 Reply Last reply Reply Quote 0
            • 1 / 1
            • First post
              Last post
            Design by Woryk
            Contact / Mentions Légales

            MINECRAFT FORGE FRANCE © 2018

            Powered by NodeBB