• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Crash / Cannot Cast

    1.7.x
    1.7.10
    3
    4
    746
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • Folgansky
      Folgansky Correcteurs dernière édition par

      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 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

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

        1 réponse Dernière réponse Répondre Citer 0
        • Snowy_1803
          Snowy_1803 dernière édition par

          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 réponse Dernière réponse Répondre Citer 0
          • Folgansky
            Folgansky Correcteurs dernière édition par

            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 réponse Dernière réponse Répondre Citer 0
            • 1 / 1
            • Premier message
              Dernier message
            Design by Woryk
            Contact / Mentions Légales

            MINECRAFT FORGE FRANCE © 2018

            Powered by NodeBB