Crashreports téléportation



  • Bonjour, je vous demande de l'aide car j'ai deux problèmes:
    1. Quand je quitte mon monde et que je reviens, j'ai une arrayIndexOutOfBoundsExeption: -77 ou -73
    2. Quand je sors ou entre dans le donjon en faisant un clic sur un bloc, parfois sa marche, parfois j'ai un arrayIndexOutOfBoundsExeption: 3565 ou je suis tp dans le vide

    Les codes:
    BlockDungeonTeleporter:

    package com.mod.test.blocks;
    
    import com.mod.test.entity.EntityBug;
    import com.mod.test.init.BlockMod;
    import com.mod.test.tileEntity.TileEntityBinaryMachine;
    import com.mod.test.tileEntity.TileEntityDungeonExit;
    import com.mod.test.tileEntity.TileEntityDungeonTeleporter;
    import com.mod.test.world.StructureDungeon;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.ITileEntityProvider;
    import net.minecraft.block.material.Material;
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.util.ChatComponentTranslation;
    import net.minecraft.world.EnumDifficulty;
    import net.minecraft.world.World;
    
    public class BlockDungeonTeleporter extends Block implements ITileEntityProvider
    {
    public BlockDungeonTeleporter()
    {
    super(Material.rock);
    }
    
    @Override
    public TileEntity createNewTileEntity(World world, int metadata)
    {
    return new TileEntityDungeonTeleporter();
    }
    
    @Override
    public boolean hasTileEntity(int metadata)
    {
    return true;
    }
    
    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
    {
    if(player.dimension == 49)
    {
    if(world.difficultySetting != EnumDifficulty.PEACEFUL)
    {
    int ycoo = 165;
    int max = 0;
    boolean test = false;
    boolean max14 = false;
    TileEntityDungeonTeleporter t = new TileEntityDungeonTeleporter();
    
    do
    {
    TileEntity tile = world.getTileEntity(-10, ycoo, -10);
    if(tile instanceof TileEntityDungeonTeleporter)
    {
    t = (TileEntityDungeonTeleporter)tile;
    if(!t.getOccuped())
    {
    test = true;
    }
    else
    {
    if(max < 14)
    {
    ycoo += 6;
    max++;
    }
    else
    {
    max14 = true;
    test = true;
    }
    }
    }
    else
    {
    test = true;
    }
    }
    while(!test);
    
    if(!max14)
    {
    StructureDungeon.generate(world, 0, ycoo, 0);
    EntityBug boss = new EntityBug(world);
    player.setPosition(-3, ycoo + 1, -3);
    world.spawnEntityInWorld(boss);
    boss.setPosition(-3, ycoo + 1, -3);
    
    int i = -10;
    int j = ycoo;
    int k = -10;
    
    world.setBlock(i, j, k, BlockMod.dungeon_teleporter);
    TileEntity tile = world.getTileEntity(i, j, k);
    if(tile instanceof TileEntityDungeonTeleporter)
    {
    TileEntityDungeonTeleporter tp = (TileEntityDungeonTeleporter) tile;
    tp.setOccuped(true);
    }
    
    setCoordonates(world, i + 5, j + 2, k + 0, i, j, k, x, y, z);
    setCoordonates(world, i + 6, j + 2, k + 0, i, j, k, x, y, z);
    setCoordonates(world, i + 0, j + 2, k + 5, i, j, k, x, y, z);
    setCoordonates(world, i + 0, j + 2, k + 6, i, j, k, x, y, z);
    setCoordonates(world, i + 5, j + 2, k + 11, i, j, k, x, y, z);
    setCoordonates(world, i + 6, j + 2, k + 11, i, j, k, x, y, z);
    setCoordonates(world, i + 11, j + 2, k + 5, i, j, k, x, y, z);
    setCoordonates(world, i + 11, j + 2, k + 6, i, j, k, x, y, z);
    }
    else
    {
    if(!world.isRemote)
    player.addChatMessage(new ChatComponentTranslation("chat.dungeon_occuped"));
    }
    
    return true;
    }
    else
    {
    if(!world.isRemote)
    player.addChatMessage(new ChatComponentTranslation("chat.dungeon_peaceful"));
    }
    }
    return false;
    }
    
    private void setCoordonates(World world, int x, int y, int z, int i, int j, int k, int l, int m, int n)
    {
    TileEntity tile = world.getTileEntity(x, y, z);
    if(tile instanceof TileEntityDungeonExit)
    {
    TileEntityDungeonExit t = (TileEntityDungeonExit)tile;
    t.setTeleporterCoordonates(i, j, k);
    t.setCoordonates(l, m, n);
    }
    }
    }
    
    

    BlockDungeonExit:

    package com.mod.test.blocks;
    
    import com.mod.test.init.ItemMod;
    import com.mod.test.tileEntity.TileEntityDirectional;
    import com.mod.test.tileEntity.TileEntityDungeonExit;
    import com.mod.test.tileEntity.TileEntityDungeonTeleporter;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.ITileEntityProvider;
    import net.minecraft.block.material.Material;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.ItemStack;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.util.ChatComponentTranslation;
    import net.minecraft.world.World;
    
    public class BlockDungeonExit extends Block implements ITileEntityProvider
    {
    
    public BlockDungeonExit()
    {
    super(Material.rock);
    }
    
    @Override
    public TileEntity createNewTileEntity(World world, int metadata)
    {
    return new TileEntityDungeonExit();
    }
    
    @Override
    public boolean hasTileEntity(int metadata)
    {
    return true;
    }
    
    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
    {
    ItemStack stack = player.getHeldItem();
    if(stack != null && stack.getItem() == ItemMod.dungeon_exit_key)
    {
    TileEntity tile = world.getTileEntity(x, y, z);
    if(tile instanceof TileEntityDungeonExit)
    {
    TileEntityDungeonExit t = (TileEntityDungeonExit)tile;
    world.setBlockToAir(t.xcoo, t.ycoo, t.zcoo);
    player.setPosition(t.xcoo, t.ycoo, t.zcoo);
    TileEntity tile2 = world.getTileEntity(t.xtp, t.ytp, t.ztp);
    if(tile instanceof TileEntityDungeonTeleporter)
    {
    TileEntityDungeonTeleporter t2 = (TileEntityDungeonTeleporter)tile2;
    t2.setOccuped(false);
    }
    
    return true;
    }
    }
    if(!world.isRemote)
    player.addChatMessage(new ChatComponentTranslation("chat.dungeon_exit_no_key"));
    return false;
    }
    }
    
    

    TileEntityDungeonTeleporter:

    package com.mod.test.tileEntity;
    
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.tileentity.TileEntity;
    
    public class TileEntityDungeonTeleporter extends TileEntity
    {
    private boolean occuped = false;
    
    @Override
    public void writeToNBT(NBTTagCompound compound)
    {
    super.writeToNBT(compound);
    
    compound.setBoolean("Occuped", occuped);
    }
    
    @Override
    public void readFromNBT(NBTTagCompound compound)
    {
    super.readFromNBT(compound);
    
    occuped = compound.getBoolean("Occuped");
    }
    
    public void setOccuped(boolean tf)
    {
    occuped = tf;
    }
    
    public boolean getOccuped()
    {
    return occuped;
    }
    }
    
    

    TileEntityDungeonExit:

    package com.mod.test.tileEntity;
    
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.tileentity.TileEntity;
    
    public class TileEntityDungeonExit extends TileEntity
    {
    public int xcoo = 0;
    public int ycoo = 0;
    public int zcoo = 0;
    public int xtp = 0;
    public int ytp = 0;
    public int ztp = 0;
    
    @Override
    public void writeToNBT(NBTTagCompound compound)
    {
    super.writeToNBT(compound);
    
    compound.setInteger("x", xcoo);
    compound.setInteger("y", ycoo);
    compound.setInteger("z", zcoo);
    
    compound.setInteger("xtp", xtp);
    compound.setInteger("ytp", ytp);
    compound.setInteger("ztp", ztp);
    }
    
    @Override
    public void readFromNBT(NBTTagCompound compound)
    {
    super.readFromNBT(compound);
    
    xcoo = compound.getInteger("x");
    ycoo = compound.getInteger("y");
    zcoo = compound.getInteger("z");
    
    xtp = compound.getInteger("xtp");
    ytp = compound.getInteger("ytp");
    ztp = compound.getInteger("ztp");
    }
    
    public void setCoordonates(int x, int y, int z)
    {
    xcoo = x;
    ycoo = y;
    zcoo = z;
    }
    
    public void setTeleporterCoordonates(int x, int y, int z)
    {
    xtp = x;
    ytp = y;
    ztp = z;
    }
    }
    
    

  • Administrateurs

    Salut,
    Ça serait bien de joindre le rapport de crash, non ?



  • @'robin4002':

    Salut,
    Ça serait bien de joindre le rapport de crash, non ?

    Sa fonctionne dans plusieurs sens mais il y as des erreur des téléportation mauvaise et des crash c'est pourquoi j'aimerais bien que vous jetiez un œil au code pour perfectionner tout ca 🙂
    Les:
    Quand je relance un sauvegarde:

    [10:00:58] [Server thread/ERROR]: Encountered an unexpected exception
    java.lang.ArrayIndexOutOfBoundsException: -73
    at net.minecraft.world.chunk.NibbleArray.get(NibbleArray.java:38) ~[NibbleArray.class:?]
    at net.minecraft.world.chunk.storage.ExtendedBlockStorage.getExtBlockMetadata(ExtendedBlockStorage.java:115) ~[ExtendedBlockStorage.class:?]
    at net.minecraft.world.chunk.Chunk.getBlockMetadata(Chunk.java:606) ~[Chunk.class:?]
    at net.minecraft.world.chunk.Chunk.func_150812_a(Chunk.java:961) ~[Chunk.class:?]
    at net.minecraft.world.chunk.Chunk.addTileEntity(Chunk.java:945) ~[Chunk.class:?]
    at net.minecraft.world.chunk.storage.AnvilChunkLoader.loadEntities(AnvilChunkLoader.java:529) ~[AnvilChunkLoader.class:?]
    at net.minecraftforge.common.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:41) ~[ChunkIOProvider.class:?]
    at net.minecraftforge.common.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:12) ~[ChunkIOProvider.class:?]
    at net.minecraftforge.common.util.AsynchronousExecutor$Task.finish(AsynchronousExecutor.java:189) ~[AsynchronousExecutor$Task.class:?]
    at net.minecraftforge.common.util.AsynchronousExecutor.finishActive(AsynchronousExecutor.java:354) ~[AsynchronousExecutor.class:?]
    at net.minecraftforge.common.chunkio.ChunkIOExecutor.tick(ChunkIOExecutor.java:30) ~[ChunkIOExecutor.class:?]
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:663) ~[MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) ~[MinecraftServer.class:?]
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) ~[IntegratedServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
    [10:00:58] [Server thread/ERROR]: This crash report has been saved to: C:\Users\antoine\Desktop\forge-1.7.10-10.13.4.1614-1.7.10-src\eclipse\.\crash-reports\crash-2016-08-23_10.00.58-server.txt
    [10:00:58] [Server thread/INFO]: Stopping server
    [10:00:58] [Server thread/INFO]: Saving players
    [10:00:58] [Server thread/INFO]: Saving worlds
    [10:00:59] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
    [10:01:00] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
    [10:01:00] [Server thread/INFO]: Saving chunks for level 'New World'/The End
    [10:01:00] [Server thread/INFO]: Saving chunks for level 'New World'/BinaryDimension
    [10:01:05] [Server thread/INFO] [FML]: Unloading dimension 0
    [10:01:05] [Server thread/INFO] [FML]: Unloading dimension -1
    [10:01:05] [Server thread/INFO] [FML]: Unloading dimension 1
    [10:01:05] [Server thread/INFO] [FML]: Unloading dimension 49
    [10:01:05] [Server thread/INFO] [FML]: Applying holder lookups
    [10:01:05] [Server thread/INFO] [FML]: Holder lookups applied
    [10:01:05] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
    [10:01:10] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: –-- Minecraft Crash Report ----
    // You're mean.
    
    Time: 23/08/16 10:01
    Description: Exception in server tick loop
    
    java.lang.ArrayIndexOutOfBoundsException: -73
    at net.minecraft.world.chunk.NibbleArray.get(NibbleArray.java:38)
    at net.minecraft.world.chunk.storage.ExtendedBlockStorage.getExtBlockMetadata(ExtendedBlockStorage.java:115)
    at net.minecraft.world.chunk.Chunk.getBlockMetadata(Chunk.java:606)
    at net.minecraft.world.chunk.Chunk.func_150812_a(Chunk.java:961)
    at net.minecraft.world.chunk.Chunk.addTileEntity(Chunk.java:945)
    at net.minecraft.world.chunk.storage.AnvilChunkLoader.loadEntities(AnvilChunkLoader.java:529)
    at net.minecraftforge.common.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:41)
    at net.minecraftforge.common.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:12)
    at net.minecraftforge.common.util.AsynchronousExecutor$Task.finish(AsynchronousExecutor.java:189)
    at net.minecraftforge.common.util.AsynchronousExecutor.finishActive(AsynchronousExecutor.java:354)
    at net.minecraftforge.common.chunkio.ChunkIOExecutor.tick(ChunkIOExecutor.java:30)
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:663)
    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)
    

    De remps en temps quand j'entre ou sors du donjon

    net.minecraft.util.ReportedException: Ticking memory connection
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:198) ~[NetworkSystem.class:?]
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) ~[MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) ~[MinecraftServer.class:?]
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) ~[IntegratedServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: -6
    at net.minecraft.world.chunk.NibbleArray.get(NibbleArray.java:38) ~[NibbleArray.class:?]
    at net.minecraft.world.chunk.storage.ExtendedBlockStorage.getExtBlockMetadata(ExtendedBlockStorage.java:115) ~[ExtendedBlockStorage.class:?]
    at net.minecraft.world.chunk.Chunk.getBlockMetadata(Chunk.java:606) ~[Chunk.class:?]
    at net.minecraft.world.chunk.Chunk.func_150812_a(Chunk.java:961) ~[Chunk.class:?]
    at net.minecraft.world.chunk.Chunk.addTileEntity(Chunk.java:945) ~[Chunk.class:?]
    at net.minecraft.world.chunk.storage.AnvilChunkLoader.loadEntities(AnvilChunkLoader.java:529) ~[AnvilChunkLoader.class:?]
    at net.minecraftforge.common.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:41) ~[ChunkIOProvider.class:?]
    at net.minecraftforge.common.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:12) ~[ChunkIOProvider.class:?]
    at net.minecraftforge.common.util.AsynchronousExecutor.skipQueue(AsynchronousExecutor.java:344) ~[AsynchronousExecutor.class:?]
    at net.minecraftforge.common.util.AsynchronousExecutor.getSkipQueue(AsynchronousExecutor.java:302) ~[AsynchronousExecutor.class:?]
    at net.minecraftforge.common.chunkio.ChunkIOExecutor.syncChunkLoad(ChunkIOExecutor.java:12) ~[ChunkIOExecutor.class:?]
    at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:144) ~[ChunkProviderServer.class:?]
    at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:119) ~[ChunkProviderServer.class:?]
    at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:221) ~[ChunkProviderServer.class:?]
    at net.minecraft.world.World.getChunkFromChunkCoords(World.java:482) ~[World.class:?]
    at net.minecraft.world.World.getTileEntity(World.java:2804) ~[World.class:?]
    at com.mod.test.blocks.BlockDungeonTeleporter.onBlockActivated(BlockDungeonTeleporter.java:53) ~[BlockDungeonTeleporter.class:?]
    at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409) ~[ItemInWorldManager.class:?]
    at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593) ~[NetHandlerPlayServer.class:?]
    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74) ~[C08PacketPlayerBlockPlacement.class:?]
    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122) ~[C08PacketPlayerBlockPlacement.class:?]
    at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) ~[NetworkManager.class:?]
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) ~[NetworkSystem.class:?]
    … 5 more
    [10:09:40] [Server thread/ERROR]: This crash report has been saved to: C:\Users\antoine\Desktop\forge-1.7.10-10.13.4.1614-1.7.10-src\eclipse\.\crash-reports\crash-2016-08-23_10.09.40-server.txt
    [10:09:40] [Server thread/INFO]: Stopping server
    [10:09:40] [Server thread/INFO]: Saving players
    [10:09:41] [Server thread/INFO]: Saving worlds
    [10:09:41] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
    [10:09:41] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
    [10:09:41] [Server thread/INFO]: Saving chunks for level 'New World'/The End
    [10:09:41] [Server thread/INFO]: Saving chunks for level 'New World'/BinaryDimension
    [10:09:42] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: –-- Minecraft Crash Report ----
    // Quite honestly, I wouldn't worry myself about that.
    
    Time: 23/08/16 10:09
    Description: Ticking memory connection
    
    java.lang.ArrayIndexOutOfBoundsException: -6
    at net.minecraft.world.chunk.NibbleArray.get(NibbleArray.java:38)
    at net.minecraft.world.chunk.storage.ExtendedBlockStorage.getExtBlockMetadata(ExtendedBlockStorage.java:115)
    at net.minecraft.world.chunk.Chunk.getBlockMetadata(Chunk.java:606)
    at net.minecraft.world.chunk.Chunk.func_150812_a(Chunk.java:961)
    at net.minecraft.world.chunk.Chunk.addTileEntity(Chunk.java:945)
    at net.minecraft.world.chunk.storage.AnvilChunkLoader.loadEntities(AnvilChunkLoader.java:529)
    at net.minecraftforge.common.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:41)
    at net.minecraftforge.common.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:12)
    at net.minecraftforge.common.util.AsynchronousExecutor.skipQueue(AsynchronousExecutor.java:344)
    at net.minecraftforge.common.util.AsynchronousExecutor.getSkipQueue(AsynchronousExecutor.java:302)
    at net.minecraftforge.common.chunkio.ChunkIOExecutor.syncChunkLoad(ChunkIOExecutor.java:12)
    at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:144)
    at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:119)
    at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:221)
    at net.minecraft.world.World.getChunkFromChunkCoords(World.java:482)
    at net.minecraft.world.World.getTileEntity(World.java:2804)
    at com.mod.test.blocks.BlockDungeonTeleporter.onBlockActivated(BlockDungeonTeleporter.java:53)
    at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)
    at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)
    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74)
    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122)
    at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
    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)
    

    J'ai aussi des ArrayOutOfBoundsExeption: 3565



  • J'ai l'impression quelque chose corrompt les données d'une tile entity et du coup ça crash au chargement de celle-ci, après je ne vois pas d'où ça peut venir…
    Ou sinon ça pourrait être la position que tu demandes pour get la tile entity (ici : BlockDungeonTeleporter.onBlockActivated(BlockDungeonTeleporter.java:53)) qui n'est pas bonne, et du coup, IndexOutOfBounds quand mc récupère le block dans l'index des blocks du chunk, mais les positions que tu mets à cet endroit m'ont l'air bonnes...
    Ce crash est bizarre.



  • @'AymericRed':

    J'ai l'impression quelque chose corrompt les données d'une tile entity et du coup ça crash au chargement de celle-ci, après je ne vois pas d'où ça peut venir…
    Ou sinon ça pourrait être la position que tu demandes pour get la tile entity (ici : BlockDungeonTeleporter.onBlockActivated(BlockDungeonTeleporter.java:53)) qui n'est pas bonne, et du coup, IndexOutOfBounds quand mc récupère le block dans l'index des blocks du chunk, mais les positions que tu mets à cet endroit m'ont l'air bonnes...
    Ce crash est bizarre.

    Oui je me dit aussi que c'est bizarre et c ennuyant car je peut pas avancer sur le reste de mon mod 😞



  • Up j'ai besoin de vous



  • Bonjour, j'ai +/- cibler le problème mais j’aurais besoin de savoir comment charger un chunk d'un block en particulier j'ai vraiment besoin



  • World.getChunkFromCoords(x, z) va te donner un objet Chunk.



  • @'AymericRed':

    World.getChunkFromCoords(x, z) va te donner un objet Chunk.

    Ok et comment le chager pour faire un getbloc dedans?



  • Si tu veux juste get un bloc, il faut que tu fasses world.getBlock(…), le chunk sera automatiquement chargé, sinon pour get un block dans un chunk, c'est chunk.getBlock(x << 16, y <<16, z << 16) je crois, mais je suis pas sur pour les "<<16", regarde dans la fonction "getBlock" de World.



  • @'AymericRed':

    Si tu veux juste get un bloc, il faut que tu fasses world.getBlock(…), le chunk sera automatiquement chargé, sinon pour get un block dans un chunk, c'est chunk.getBlock(x << 16, y <<16, z << 16) je crois, mais je suis pas sur pour les "<<16", regarde dans la fonction "getBlock" de World.

    Merci mais uand je faisiat le get block, vu que le chunk n'était pas généré ça crashait, donc j'ai fait ça:

    
    Chunk chunk = this.worldServerInstance.getChunkFromBlockCoords(l3, l1);
    this.worldServerInstance.getChunkProvider().loadChunk(chunk.xPosition, chunk.zPosition);
    

Log in to reply