Non résolu Problème génération biome
-
Au pire des cas tu fais une dimension et tu fais juste spawn ton biome déja voir si il marche ou un truc flat, normal (j’ai plus le nom) =/
-
tout ça, juste pour voir s’il spawn ? ça va être long alors ^^
j’ai essayé de faire un truc, mais toujours rien, je poste les nouvelles class :
class GiantBiome :
package fr.craftesys.craftesys.generation; import fr.craftesys.craftesys.common.*; import net.minecraft.block.Block; import java.util.Random; import fr.craftesys.craftesys.blocs.*; import fr.craftesys.craftesys.generation.*; import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.entity.monster.EntityZombie; import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.feature.WorldGenTrees; import net.minecraft.world.gen.feature.WorldGenerator; public class GiantBiome extends BiomeGenBase { public GiantBiome(int id) { super(id); this.setBiomeName("giant"); this.topBlock = Blocks.diamond_ore; this.fillerBlock = Blocks.redstone_ore; this.theBiomeDecorator.treesPerChunk = 3; this.theBiomeDecorator.waterlilyPerChunk = 100; this.theBiomeDecorator.bigMushroomsPerChunk = 10; this.spawnableCreatureList.add(new SpawnListEntry(EntitySkeleton.class, 5, 3, 3)); this.spawnableCreatureList.add(new SpawnListEntry(EntityZombie.class, 5, 3, 3)); this.spawnableWaterCreatureList.clear(); this.spawnableMonsterList.clear(); this.addFlower(Blocks.red_flower, 4, 3); this.addFlower(Blocks.red_flower, 5, 3); this.addFlower(Blocks.red_flower, 7, 3); this.addFlower(Blocks.red_flower, 0, 20); this.addFlower(Blocks.yellow_flower, 0, 30); this.setMinMaxHeight(0.2F, 3.9F); this.setTemperatureRainfall(0.8F, 1.4F); } private void setMinMaxHeight(float f, float g) { } public WorldGenerator getRandomWorldGenForTrees(Random par1Random) { return (WorldGenerator)(par1Random.nextInt(5) == 0 ? new WorldGenTrees(false, 4, 2, 2, false) : (par1Random.nextInt(10) == 0 ? this.worldGeneratorBigTree : new WorldGenTrees(false, 4, 0, 0, false))); } }
cass GiantGenLayerBiome :
package fr.craftesys.craftesys.generation; import java.util.ArrayList; import java.util.List; import net.minecraft.util.WeightedRandom; import net.minecraft.world.WorldType; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.layer.GenLayer; import net.minecraft.world.gen.layer.IntCache; import net.minecraftforge.common.BiomeManager; import net.minecraftforge.common.BiomeManager.BiomeEntry; import net.minecraftforge.common.BiomeDictionary; public class GiantGenLayerBiome extends GenLayer { private List<biomeentry>[] biomes = new ArrayList[BiomeManager.BiomeType.values().length]; private static final String __OBFID = "CL_00000555"; public GiantGenLayerBiome(long p_i2122_1_, GenLayer p_i2122_3_, WorldType p_i2122_4_) { super(p_i2122_1_); this.parent = p_i2122_3_; for (BiomeManager.BiomeType type : BiomeManager.BiomeType.values()) { com.google.common.collect.ImmutableList <biomeentry>biomesToAdd = BiomeManager.getBiomes(type); int idx = type.ordinal(); if (biomes[idx] == null) biomes[idx] = new ArrayList<biomeentry>(); if (biomesToAdd != null) biomes[idx].addAll(biomesToAdd); } int desertIdx = BiomeManager.BiomeType.DESERT.ordinal(); if (p_i2122_4_ == WorldType.DEFAULT_1_1) { biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.desert, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.forest, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.extremeHills, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.swampland, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.plains, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.taiga, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeRegistry.giantbiome, 157)); } else { biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.desert, 30)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.savanna, 20)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.plains, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeRegistry.giantbiome, 157)); } } /** * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall * amounts, or biomeList[] indices based on the particular GenLayer subclass. */ public int[] getInts(int p_75904_1_, int p_75904_2_, int p_75904_3_, int p_75904_4_) { int[] aint = this.parent.getInts(p_75904_1_, p_75904_2_, p_75904_3_, p_75904_4_); int[] aint1 = IntCache.getIntCache(p_75904_3_ * p_75904_4_); for (int i1 = 0; i1 < p_75904_4_; ++i1) { for (int j1 = 0; j1 < p_75904_3_; ++j1) { this.initChunkSeed((long)(j1 + p_75904_1_), (long)(i1 + p_75904_2_)); int k1 = aint[j1 + i1 * p_75904_3_]; int l1 = (k1 & 3840) >> 8; k1 &= -3841; if (isBiomeOceanic(k1)) { aint1[j1 + i1 * p_75904_3_] = k1; } else if (k1 == BiomeGenBase.mushroomIsland.biomeID) { aint1[j1 + i1 * p_75904_3_] = k1; } else if (k1 == 1) { if (l1 > 0) { if (this.nextInt(3) == 0) { aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.mesaPlateau.biomeID; } else { aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.mesaPlateau_F.biomeID; } } else { aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.DESERT).biome.biomeID; } } else if (k1 == 2) { if (l1 > 0) { aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.jungle.biomeID; } else { aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.WARM).biome.biomeID; } } else if (k1 == 3) { if (l1 > 0) { aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.megaTaiga.biomeID; } else { aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.COOL).biome.biomeID; } } else if (k1 == 4) { aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.ICY).biome.biomeID; } else { aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.mushroomIsland.biomeID; } } } return aint1; } protected BiomeEntry getWeightedBiomeEntry(BiomeManager.BiomeType type) { List <biomeentry>biomeList = biomes[type.ordinal()]; int totalWeight = WeightedRandom.getTotalWeight(biomeList); int weight = BiomeManager.isTypeListModded(type)?nextInt(totalWeight):nextInt(totalWeight / 10) * 10; return (BiomeEntry)WeightedRandom.getItem(biomeList, weight); } }
class BiomeRegistry :
package fr.craftesys.craftesys.generation; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.BiomeDictionary; import net.minecraftforge.common.BiomeDictionary.Type; import net.minecraftforge.common.BiomeManager; public class BiomeRegistry { public static void mainRegsitry(){ initializeBiome(); registerBiome(); } public static BiomeGenBase giantbiome; public static void initializeBiome(){ giantbiome = new GiantBiome(157).setBiomeName("test").setTemperatureRainfall(1.2F, 0.9F); } public static void registerBiome(){ BiomeDictionary.registerBiomeType(giantbiome, Type.PLAINS); BiomeManager.addSpawnBiome(giantbiome); } }
class WorldTypeGiant :
package fr.craftesys.craftesys.generation; import net.minecraft.world.WorldType; import net.minecraft.world.gen.layer.GenLayer; import net.minecraft.world.gen.layer.GenLayerBiome; import net.minecraft.world.gen.layer.GenLayerBiomeEdge; import net.minecraft.world.gen.layer.GenLayerZoom; public class WorldTypegiant extends WorldType{ public WorldTypegiant(int id, String name) { super(name); } /** * Creates the GenLayerBiome used for generating the world * * @param worldSeed The world seed * @param parentLayer The parent layer to feed into any layer you return * @return A GenLayer that will return ints representing the Biomes to be generated, see GenLayerBiome */ @Override public GenLayer getBiomeLayer(long worldSeed, GenLayer parentLayer) { GenLayer ret = new GiantGenLayerBiome(200L, parentLayer, this); ret = GenLayerZoom.magnify(1000L, ret, 2); ret = new GenLayerBiomeEdge(1000L, ret); return ret; } }
voila, si quelqu’un à une idée car aucune erreur, mais toujours rien</biomeentry></biomeentry></biomeentry></biomeentry>
-
j’ai essayé de faire le système de dimension, j’ai l’onglet, je pose l’item et quand il est posé, j’essaye de rentrer dedans et le jeu crash avec cette erreur :
–-- Minecraft Crash Report ---- // Hey, that tickles! Hehehe! Time: 10/05/16 20:14 Description: Colliding entity with block java.lang.NullPointerException: Colliding entity with block at net.minecraft.world.Teleporter.<init>(Teleporter.java:32) at fr.craftesys.craftesys.dimension.TeleporterGiant.<init>(TeleporterGiant.java:27) at fr.craftesys.craftesys.dimension.GiantPortal.onEntityCollidedWithBlock(GiantPortal.java:92) at net.minecraft.entity.Entity.func_145775_I(Entity.java:962) at net.minecraft.entity.Entity.moveEntity(Entity.java:895) at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:367) at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37) at net.minecraft.network.play.client.C03PacketPlayer$C04PacketPlayerPosition.processPacket(C03PacketPlayer.java:163) 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) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at net.minecraft.world.Teleporter.<init>(Teleporter.java:32) at fr.craftesys.craftesys.dimension.TeleporterGiant.<init>(TeleporterGiant.java:27) at fr.craftesys.craftesys.dimension.GiantPortal.onEntityCollidedWithBlock(GiantPortal.java:92) -- Block being collided with -- Details: Block type: ID #165 (tile.null // fr.craftesys.craftesys.dimension.GiantPortal) Block data value: 0 / 0x0 / 0b0000 Block location: World: (93,72,246), Chunk: (at 13,4,6 in 5,15; contains blocks 80,0,240 to 95,255,255), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Stacktrace: at net.minecraft.entity.Entity.func_145775_I(Entity.java:962) -- Entity being checked for collision -- Details: Entity Type: null (net.minecraft.entity.player.EntityPlayerMP) Entity ID: 276 Entity Name: Player745 Entity's Exact location: 92,75, 72,00, 246,92 Entity's Block location: World: (92,72,246), Chunk: (at 12,4,6 in 5,15; contains blocks 80,0,240 to 95,255,255), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Entity's Momentum: 0,00, -0,08, 0,00 Stacktrace: at net.minecraft.entity.Entity.moveEntity(Entity.java:895) at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:367) at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37) at net.minecraft.network.play.client.C03PacketPlayer$C04PacketPlayerPosition.processPacket(C03PacketPlayer.java:163) at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) -- Ticking connection -- Details: Connection: net.minecraft.network.NetworkManager@285af420 Stacktrace: 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) -- System Details -- Details: Minecraft Version: 1.7.10 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_91, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 697735104 bytes (665 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95 FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 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.1558-1.7.10.jar) UCHIJAAAA Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) UCHIJAAAA craftesys{1.0.0} [craftesys] (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: 1 / 8; [EntityPlayerMP['Player745'/276, l='New Worldhjgfd', x=92,75, y=72,00, z=246,92]] Type: Integrated Server (map_client.txt) Is Modded: Definitely; Client brand changed to 'fml,forge'
comme il y a beaucoup de class, dites moi celle qui vous serez utiles d’avoir pour comprendre, car, bah je sais pas moi :D.
merci les loulou</init></init></init></init>
-
[20:14:21] [Server thread/ERROR]: This crash report has been saved to: C:\Users\antho\Desktop\forge2\eclipse.\crash-reports\crash-2016-05-10_20.14.21-server.txt
-> Envoi le rapport complet
-
je viens d’édit
je comprend le principe de collision mais je vois pas comment le résoudre
-
Envois la class TeleporterGiant.java et indique nous où se trouve la ligne 27.
-
ok
package fr.craftesys.craftesys.dimension; import java.util.ArrayList; import java.util.List; import java.util.Random; import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; import net.minecraft.util.Direction; import net.minecraft.util.LongHashMap; import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.Teleporter; import net.minecraft.world.WorldServer; import fr.craftesys.craftesys.common.Mods; public class TeleporterGiant extends Teleporter { private final WorldServer worldServerInstance; private final Random random; private final LongHashMap destinationCoordinateCache = new LongHashMap(); private final List destinationCoordinateKeys = new ArrayList(); public TeleporterGiant(WorldServer worldserver) { super(worldserver); //ligne 27 this.worldServerInstance = worldserver; this.random = new Random(worldserver.getSeed()); } public void placeInPortal(Entity entity, double par2, double par4, double par6, float par8){ if(this.worldServerInstance.provider.dimensionId != 1){ if(!this.placeInExistingPortal(entity, par2, par4, par6, par8)){ this.makePortal(entity); this.placeInExistingPortal(entity, par2, par4, par6, par8); } } else{ int i = MathHelper.floor_double(entity.posX); int j = MathHelper.floor_double(entity.posY) - 1; int k = MathHelper.floor_double(entity.posZ); byte b0 = 1; byte b1 = 0; for(int l = -2; l <= 2; ++l){ for(int i1 = -2; i1 <= 2; ++i1){ for(int j1 = -1; j < 3; ++j1){ int k1 = i + i1 * b0 + l * b1; int l1 = j + j1; int i2 = k + i1 * b1 - l * b0; boolean flag = j1 < 0; this.worldServerInstance.setBlock(k1, l1, i2, flag ? Mods.rubisBloc : Blocks.air); } } } entity.setLocationAndAngles((double)i, (double)j, (double)k, entity.rotationYaw, 0.0F); entity.motionX = entity.motionY = entity.motionZ = 0.0D; } } public boolean placeInExistingPortal(Entity entity, double par2, double par4, double par6, float par8){ short short1 = 128; double d3 = -1.0D; int i = 0; int j = 0; int k = 0; int l = MathHelper.floor_double(entity.posX); int i1 = MathHelper.floor_double(entity.posZ); long j1 = ChunkCoordIntPair.chunkXZ2Int(l, i1); boolean flag = true; double d7; int l3; if(this.destinationCoordinateCache.containsItem(j1)){ TeleporterGiant.PortalPosition portalposition = (Teleporter.PortalPosition)this.destinationCoordinateCache.getValueByKey(j1); d3 = 0.0D; i = portalposition.posX; j = portalposition.posY; k = portalposition.posZ; portalposition.lastUpdateTime = this.worldServerInstance.getTotalWorldTime(); flag = false; } else{ for(l3 = l - short1; l3 <= 1 + 128; ++l3){ double d4 = (double)l3 + 0.5D - entity.posX; for(int l1 = i1 - short1; l1 <= i1 + short1; ++l1){ double d5 = (double)l1 + 0.5D - entity.posZ; for(int i2 = this.worldServerInstance.getActualHeight() -1; i2 >=0; –i2){ if(this.worldServerInstance.getBlock(l3, i2, l1) == Mods.GiantPortal){ while (this.worldServerInstance.getBlock(l3, i2 - 1, l1) == Mods.GiantPortal){ --i2; } d7 = (double) i2 + 0.5D - entity.posY; double d8 = d4 * d4 + d7 * d7 + d5 * d5; if (d3 < 0.0D || d8 < d3){ d3 = d8; i = l3; j = i2; k = l1; } } } } } } if (d3 >= 0.0D){ if(flag){ this.destinationCoordinateCache.add(j1, new TeleporterGiant.PortalPosition(i, j, k, this.worldServerInstance.getTotalWorldTime())); this.destinationCoordinateKeys.add(Long.valueOf(j1)); System.out.println("Location " + j1); } double d11 = (double)i + 0.5D; double d6 = (double)j + 0.5D; d7 = (double)k + 0.5D; int i4 = -1; if(this.worldServerInstance.getBlock(i - 1, j, k) == Mods.GiantPortal){ i4 = 2; } if(this.worldServerInstance.getBlock(i + 1, j, k) == Mods.GiantPortal){ i4 = 0; } if(this.worldServerInstance.getBlock(i, j, k - 1) == Mods.GiantPortal){ i4 = 3; } if(this.worldServerInstance.getBlock(i, j, k + 1) == Mods.GiantPortal){ i4 = 1; } int j2 = entity.getTeleportDirection(); if(i4 > -1){ int k2 = Direction.rotateLeft[i4]; int l2 = Direction.offsetX[i4]; int i3 = Direction.offsetZ[i4]; int j3 = Direction.offsetX[k2]; int k3 = Direction.offsetZ[k2]; boolean flag1 = !this.worldServerInstance.isAirBlock(i + l2 + j3, j, k + i3 + k3) || !this.worldServerInstance.isAirBlock(i + l2 + j3, j + 1, k + i3 + k3); boolean flag2 = !this.worldServerInstance.isAirBlock(i + l2 + j3, j, k + i3) || !this.worldServerInstance.isAirBlock(i + l2 + j3, j + 1, k + i3); if(flag1 && flag2){ i4 = Direction.rotateOpposite[i4]; k2 = Direction.rotateOpposite[k2]; l2 = Direction.offsetX[i4]; i3 = Direction.offsetZ[i4]; j3 = Direction.offsetX[k2]; k3 = Direction.offsetZ[k2]; l3 = i - j3; d11 -= (double)j3; int k1 = k - k3; d7 -= (double)k3; flag1 = !this.worldServerInstance.isAirBlock(i + l2 + j3, j, k + i3 + k3) || !this.worldServerInstance.isAirBlock(i + l2 + j3, j + 1, k + i3 + k3); flag2 = !this.worldServerInstance.isAirBlock(i + l2 + j3, j, k + i3) || !this.worldServerInstance.isAirBlock(i + l2 + j3, j + 1, k + i3); } float f1 = 0.5F; float f2 = 0.5F; if(!flag1 && flag2){ f1 = 1.0F; } else if(flag1 && !flag2){ f1 = 0.0F; } else if(flag1 && flag2){ f2 = 0.0F; } d11 += (double)((float)j3 * f1 + f2 * (float)l2); d7 += (double)((float)k3 * f1 + f2 * (float)i3); float f3 = 0.0F; float f4 = 0.0F; float f5 = 0.0F; float f6 = 0.0F; if(i4 == j2){ f3 = 1.0F; f4 = 1.0F; } else if(i4 == Direction.rotateOpposite[j2]){ f3 = -1.0F; f4 = -1.0F; } else if(i4 == Direction.rotateRight[j2]){ f5 = 1.0F; f6 = -1.0F; } else{ f5 = -1.0F; f6 = 1.0F; } double d9 = entity.motionX; double d10 = entity.motionZ; entity.motionX = d9 * (double)f3 + d10 * (double)f6; entity.motionZ = d9 * (double)f5 + d10 * (double)f4; entity.rotationYaw = par8 - (float)(j2 * 90) + (float)(i4 *90); } else{ entity.motionX = entity.motionY = entity.motionZ = 0.0D; } entity.setLocationAndAngles(d11, d6, d7, entity.rotationYaw, entity.rotationPitch); return true; } else{ return false; } } }
-
WorldServer semble être nul, d’après le crash.
Envois la class GiantPortal.java et indique la ligne 92.
-
très bien
package fr.craftesys.craftesys.dimension; import java.util.Random; import fr.craftesys.craftesys.dimension.*; import fr.craftesys.craftesys.common.Mods; import net.minecraft.block.Block; import net.minecraft.block.BlockPortal; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.server.MinecraftServer; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; public class GiantPortal extends BlockPortal { public GiantPortal(){ super(); this.setCreativeTab(Mods.giantTab); } /*public void updateTick(World world, int x, int y, int z, Random rand){ }*/ public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z){ return null; } public boolean renderAsNormalBlock(){ return false; } public void onNeighborBlockChange(World world, int x, int y, int z, Block block){ byte b0 = 0; byte b1 = 1; if(world.getBlock(x - 1, y, z) == Mods.invisible || world.getBlock(x + 1, y, z) == Mods.invisible){ b0 = 1; b1 = 0; } int i1; for(i1 = y; world.getBlock(x, i1 - 1, z) == this; –i1){ ; } if(world.getBlock(x, i1 - 1, z) != Mods.invisible){ world.setBlockToAir(x, y, z); }else{ int j1; for(j1 = 1; j1 < 4 && world.getBlock(x, i1 + j1, z) == this; ++j1){ ; } if(j1 == 3 && world.getBlock(x, i1 + j1, z) == Mods.invisible){ boolean flag = world.getBlock(x - 1, y, z) == this || world.getBlock(x + 1, y, z) == this; boolean flag1 = world.getBlock(x, y, z - 1) == this || world.getBlock(x, y, z - 1) == this; if(flag && flag1){ world.setBlockToAir(x, y, z); }else{ if((world.getBlock(x+b0, y, z+b1) != Mods.invisible || world.getBlock(x-b0, y, z-b1) != this) && (world.getBlock(x-b0, y, z-b1) !=Mods.invisible || world.getBlock(x+b0, y, z+b1) != this)){ world.setBlockToAir(x, y, z); } } }else{ world.setBlockToAir(x, y, z); } } } public int quantityDropped(Random rand){ return 0; } public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity){ if(entity.ridingEntity == null && entity.riddenByEntity == null && entity instanceof EntityPlayerMP){ EntityPlayerMP thePlayer = (EntityPlayerMP) entity; MinecraftServer server = MinecraftServer.getServer(); if(entity instanceof EntityPlayerMP){ if(thePlayer.timeUntilPortal > 0){ thePlayer.timeUntilPortal = 10; }else if(thePlayer.dimension != DimensionRegistry.dimensionId){ thePlayer.timeUntilPortal = 10; thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, DimensionRegistry.dimensionId, new TeleporterGiant(server.worldServerForDimension(DimensionRegistry.dimensionId))); // LIGNE 92 }else{ thePlayer.timeUntilPortal = 10; thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 0, new TeleporterGiant(server.worldServerForDimension(0))); } } } } public boolean tryTroCreatePortal(World world, int x, int y, int z){ byte b0 = 0; byte b1 = 0; if(world.getBlock(x - 1 , y, z) == Mods.invisible || world.getBlock(x + 1, y, z) == Mods.invisible){ b0 = 1; } if (world.getBlock(x, y, z - 1) == Mods.invisible || world.getBlock(x, y, z + 1) == Mods.invisible){ b1 = 1; } if(b0 == b1){ return false; } else{ if(world.getBlock(x - b0, y, z - b1) == Blocks.air){ x -= b0; z -= b1; } int l; int i1; for(l = -1; l <= 2; ++l){ for(i1 = -1; i1 <= 3; ++i1){ boolean flag = l == -1 || l == 2 || i1 == -1 || i1 == 3; if( l != -1 && l != 2 || i1 != -1 && i1 !=3){ Block j1 = world.getBlock(x + b0 * l, y + i1, z + b1 * l); if(flag){ if(j1 != Mods.invisible){ return false; } } else if(j1 != Blocks.air && j1 != Blocks.fire){ return false; } } } } for(l = 0; l < 2; ++l){ for(i1 = 0; i1 < 3; ++i1){ world.setBlock(x + b0 * l, y + i1, z + b1 * l, Mods.invisible, 0, 2); } } return true; } } }
-
Au lieu de ```java
thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, DimensionRegistry.dimensionId, new TeleporterGiant(server.worldServerForDimension(DimensionRegistry.dimensionId)));essaye ```java server.getConfigurationManager().transferPlayerToDimension(thePlayer, DimensionRegistry.dimensionId, new TeleporterGiant(server.worldServerForDimension(DimensionRegistry.dimensionId)));
-
toujours un crash, je te passe le rapport de crash au cas ou :
–-- Minecraft Crash Report ---- // This is a token for 1 free hug. Redeem at your nearest Mojangsta: [~~HUG~~] Time: 10/05/16 21:21 Description: Colliding entity with block java.lang.NullPointerException: Colliding entity with block at net.minecraft.world.Teleporter.<init>(Teleporter.java:32) at fr.craftesys.craftesys.dimension.TeleporterGiant.<init>(TeleporterGiant.java:27) at fr.craftesys.craftesys.dimension.GiantPortal.onEntityCollidedWithBlock(GiantPortal.java:92) at net.minecraft.entity.Entity.func_145775_I(Entity.java:962) at net.minecraft.entity.Entity.moveEntity(Entity.java:895) at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:367) at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37) at net.minecraft.network.play.client.C03PacketPlayer$C04PacketPlayerPosition.processPacket(C03PacketPlayer.java:163) 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) A detailed walkthrough of the error, its code path and all known details is as follows: –------------------------------------------------------------------------------------- -- Head -- Stacktrace: at net.minecraft.world.Teleporter.<init>(Teleporter.java:32) at fr.craftesys.craftesys.dimension.TeleporterGiant.<init>(TeleporterGiant.java:27) at fr.craftesys.craftesys.dimension.GiantPortal.onEntityCollidedWithBlock(GiantPortal.java:92) -- Block being collided with -- Details: Block type: ID #165 (tile.null // fr.craftesys.craftesys.dimension.GiantPortal) Block data value: 0 / 0x0 / 0b0000 Block location: World: (61,80,228), Chunk: (at 13,5,4 in 3,14; contains blocks 48,0,224 to 63,255,239), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Stacktrace: at net.minecraft.entity.Entity.func_145775_I(Entity.java:962) -- Entity being checked for collision -- Details: Entity Type: null (net.minecraft.entity.player.EntityPlayerMP) Entity ID: 297 Entity Name: Player3 Entity's Exact location: 62,11, 80,00, 228,82 Entity's Block location: World: (62,80,228), Chunk: (at 14,5,4 in 3,14; contains blocks 48,0,224 to 63,255,239), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Entity's Momentum: 0,00, -0,08, 0,00 Stacktrace: at net.minecraft.entity.Entity.moveEntity(Entity.java:895) at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:367) at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37) at net.minecraft.network.play.client.C03PacketPlayer$C04PacketPlayerPosition.processPacket(C03PacketPlayer.java:163) at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) -- Ticking connection -- Details: Connection: net.minecraft.network.NetworkManager@23abc7f Stacktrace: 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) -- System Details -- Details: Minecraft Version: 1.7.10 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_91, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 714684840 bytes (681 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95 FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 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.1558-1.7.10.jar) UCHIJAAAA Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) UCHIJAAAA craftesys{1.0.0} [craftesys] (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: 1 / 8; [EntityPlayerMP['Player3'/297, l='New Worldkljhgfd', x=62,11, y=80,00, z=228,82]] Type: Integrated Server (map_client.txt) Is Modded: Definitely; Client brand changed to 'fml,forge' ```</init></init></init></init>
-
Print server.worldServerForDimension(…), apparemment il ne trouve le world server.
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
je lance le jeu directement depuis eclipse, si ça peut aider
-
Tu as bien regarder l’entièreté de ce tutoriel ?
Il semble que tu n’es pas défini d’id pour ta dimension. -
oui j’ai suivi ce tuto mais il est long, j’ai peut-être loupé une partie, je me focalise sur quel class du coup ?
-
Appartement il faut un world type custom pour ajouter des biomes : http://www.minecraftforge.net/forum/index.php/topic,17885.msg90964.html#msg90964
-
j’avais le worldtype mais merci, j’avais pas mit : WorldType CUSTOM = new WorldTypeCustom(3, “custom”); dans la classe principale, je vais voir et je viens vous dire
toujours crash et ne spawn pas de façon naturelle
-
Tu as bien sélectionné une génération custom (là ou tu peux mettre monde plat).
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
je comprend pas ce que tu dis, si je creer bien un nouveau monde plat ? c’est ça ?
-
Non, si tu créées un WolrdType, tu pourras le sélectionner avec le bouton ou tu peux switch normal plat amplifié (comme Biome o’plenty)
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk