[1.7.10]Fluid Crash



  • Bonjour , je suis en train de crée un nouveau liquide , le pétrole, mais j'ai une erreur quand je lance le jeu :
    https://hastebin.com/wuravamale.md
    Voici mes classes :
    FluidMod :

    public class FluidMod 
    {
    	
    public static Fluid petrole;
    public static void init()
    {
    	petrole = new Fluid("petrole").setDensity(4000).setViscosity(500).setTemperature(286).setLuminosity(10).setUnlocalizedName("petrole");
    	
    }
    public static void register()
    {
    	FluidRegistry.registerFluid(petrole);
    	petrole = FluidRegistry.getFluid("petrole");
    	FluidContainerRegistry.registerFluidContainer(FluidRegistry.getFluidStack("petrole", FluidContainerRegistry.BUCKET_VOLUME), new ItemStack(ItemMod.petrolebucket),FluidContainerRegistry.EMPTY_BUCKET);
    }
    }
    

    BlockMod :

    public class BlockMod
    
    {
    	public static Block petroleblock;
    	public static void init()
    	{
    		petroleblock = new BlockPetrole(FluidMod.petrole,Material.water).setBlockTextureName(Reference.MOD_ID + ":petrole");
    
    	   
    	}
    	public static void register()
    	{
    		
    		GameRegistry.registerBlock(petroleblock, "petroleblock");
    
    	}
    }
    

    ItemMod:

    public class ItemMod 
    {
    public static Item petrolebucket;
      public static void init()
      {
    	  petrolebucket = new ItemBucketPetrole(BlockMod.petroleblock).setUnlocalizedName("petrolebucket").setCreativeTab(Craftislife.tabTuto).setTextureName(Reference.MOD_ID + ":petrolebucket");	  	  
      }
      public static void register()
      {
    	  GameRegistry.registerItem(petrolebucket, "petrolebucket");	  
      }
    

    BlockPetrole:

    public class BlockPetrole extends BlockFluidClassic
    {
    	public boolean canDisplace(IBlockAccess world,int x,int y,int z)
    	{
    		if(world.getBlock(x, y, z).getMaterial().isLiquid())
    		{
    			return false;
    		}
    		return super.canDisplace(world, x, y, z);
    	}
    	public boolean displaceIfPossible(World world,int x,int y,int z)
    	{
    		if(world.getBlock(x, y, z).getMaterial().isLiquid())
    		{
    			return false;
    		}
    		return super.displaceIfPossible(world, x, y, z);
    	}
    	public BlockPetrole(Fluid fluid, Material material) {
    		super(fluid, material);
    	}
    }
    

    ItemBucketPetrole :

    public class ItemBucketPetrole extends ItemBucket {
    
    	public ItemBucketPetrole(Block p_i45331_1_) {
    		super(p_i45331_1_);
    	}
    
    @SubscribeEvent
    public void onBucketFill(FillBucketEvent event)
    {
    	Block id = event.world.getBlock(event.target.blockX, event.target.blockY, event.target.blockZ);
    	int metadata = event.world.getBlockMetadata(event.target.blockX, event.target.blockY, event.target.blockZ);
    	if(id == BlockMod.petroleblock && metadata == 0)
    	{
    		event.world.setBlockToAir(event.target.blockX, event.target.blockY, event.target.blockZ);
    		if (!event.world.isRemote)
    		{
    			event.entityPlayer.inventory.consumeInventoryItem(Items.bucket);
    			EntityItem itemsc = new EntityItem(event.world,event.entityPlayer.posX,event.entityPlayer.posY,event.entityPlayer.posZ,new ItemStack(ItemMod.petrolebucket, 1));
    			event.world.spawnEntityInWorld(itemsc);
    		}
    	}
    }
    	
    }
    

    Ca fais pas mal de code je crois, j'éspère que vous pouvez m'aider.
    Cordialement , Scouloune.
    EDIT : Oulah je sais pas du tout comment régler ça désolé xD



  • [00:55:13] [Client thread/ERROR] [FML]: The mcmod.info file in bin cannot be parsed as valid JSON. It will be ignored
    com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 11 column 24
    

    sur la ligne 11 de mcmod.info tu a quoi?
    tu a mal fait le mcmod.info je crois pas que c'est le fluid
    et donne le mcmod.info au complet



  • et t'as mal fait le code dans le markdown



  • ou encore

    	at com.mod.craftislife.init.FluidMod.register(FluidMod.java:21)
    	at com.mod.craftislife.Craftislife.preInit(Craftislife.java:62)
    

    t'as quoii a la ligne 21 et la ligne 62 de Fluidmod.java et dans Craftislife.java



  • J'ai réussi pour le liquide seul problème j'ai un crash lors du click droit avec le sceau pour posé le liquide, et aussi quand jefais click droit avec le sceau je récupère de l'eau
    (t'en fais pas pour le mcmod.info il marche c'est juste que j'ai pas modifié sur la version test 😉 )



  • par contre je m'y connais pas en fluid 1.7.10



  • D'acc pas de soucis je vais me débrouiller 😛



  • Maintenant mon seul soucis est que j'ai un crash quand je pose le sceau de pétrole 😞



  • Mon jeu plante quand je fais un click droit avec mon sceau de pétrole, voici l'erreur dans la console :
    https://hastebin.com/cabodireza.coffeescript



  • alors ca

    [16:09:41] [Server thread/ERROR]: Encountered an unexpected exception
    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.NullPointerException
    	at net.minecraft.world.chunk.storage.ExtendedBlockStorage.func_150818_a(ExtendedBlockStorage.java:86) ~[ExtendedBlockStorage.class:?]
    	at net.minecraft.world.chunk.Chunk.func_150807_a(Chunk.java:653) ~[Chunk.class:?]
    	at net.minecraft.world.World.setBlock(World.java:519) ~[World.class:?]
    	at net.minecraft.item.ItemBucket.tryPlaceContainedLiquid(ItemBucket.java:210) ~[ItemBucket.class:?]
    	at net.minecraft.item.ItemBucket.onItemRightClick(ItemBucket.java:142) ~[ItemBucket.class:?]
    	at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164) ~[ItemStack.class:?]
    	at net.minecraft.server.management.ItemInWorldManager.tryUseItem(ItemInWorldManager.java:345) ~[ItemInWorldManager.class:?]
    	at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:576) ~[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
    

    Je ne vois rien qui t'appertiens mais la
    Rien de ton mod!
    Regarde dans la ligne 142 du seau de mc



  • Je vois rien de mon mod aussi, voici la ligne 142 :
    if (this.tryPlaceContainedLiquid(p_77659_2_, i, j, k) && !p_77659_3_.capabilities.isCreativeMode)
    {
    return new ItemStack(Items.bucket);
    }



  • @Scouloune a dit dans [1.7.10]Fluid Crash :

    Je vois rien de mon mod aussi, voici la ligne 142 :
    if (this.tryPlaceContainedLiquid(p_77659_2_, i, j, k) && !p_77659_3_.capabilities.isCreativeMode)
    {
    return new ItemStack(Items.bucket);
    }

    as tu ce bout de code?Si oui fais un crtl c crtl v en modifiant un peu



  • Nope je l'ai pas , mais du coup je mets quel ligne de code ?
    OnItemRightClick(PlaceEvent event)
    {if (this.tryPlaceContainerliquid..)
    }?



  • if (this.tryPlaceContainedLiquid(p_77659_2_, i, j, k) && !p_77659_3_.capabilities.isCreativeMode)
    {
    return new ItemStack(Items.bucket);
    }
    dans OnRightClick(EDIT : oublie pas le world is remote si sa fait un crash ou en double)



  • public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_)
    {
    if(this.tryPlaceContainedLiquid(p_77875_1_, i, j, k)&& !p_77659_3_.capabilities.isCreativeMode)
    {
    return new ItemStack(Items.bucket);
    }

    }

    le "(p_77875_1_,i,j,k) est en rouge, seul problème j'ai déjà essayé de copier coller le code de la classe bucket et de le réarranger mais rien n'y fais



  • Sayez j'ai trouvé 🙂
    Merci !



  • mets en resolu ca vaudrait mieux pour tout le monde


Log in to reply