Jump to content

[1.7.10] Getting ItemStack from Slot.


SSslimer

Recommended Posts

Hey,

I have made entity with own inventory, it can store armor items.

Problem is when I am trying to get an ItemStack from Slot in armor render class.

 

Code in render class. That method returns itemstack from slot for armor.

ItemStack itemstack = villager.inventory.armorItemInSlot(3 - par2);

 

The villager isnt null and when I am trying to use the same method but from entity class I get an item.

But in this code it returns always null.

It should work but it doesnt. So here is my question for help.

Link to comment
Share on other sites

Hey,

I have made entity with own inventory, it can store armor items.

Problem is when I am trying to get an ItemStack from Slot in armor render class.

 

Code in render class. That method returns itemstack from slot for armor.

ItemStack itemstack = villager.inventory.armorItemInSlot(3 - par2);

 

The villager isnt null and when I am trying to use the same method but from entity class I get an item.

But in this code it returns always null.

It should work but it doesnt. So here is my question for help.

 

A better method might be to use a setter in your render class and call it from your entity class.

I have no idea what I'm doing.

Link to comment
Share on other sites

Please help me, I am working on this inventory for a long time and I want to finish it as fast as I can.

I am not sure what is wrong. I was considering NBT loading, but I dont have a knowledge how to do that.

Maybe packets, some special method or I made an error somewhere?

Link to comment
Share on other sites

It is a bit messy.

 

package BetterWorld.mobs;

public class EntityBetterVillager extends EntityAgeable implements INpc, IRangedAttackMob, IMob
{
    private int randomTickDivider;
    private boolean isMating;
    private boolean isPlaying;
    private boolean isLookingForHome;    
    private int tick;
    private String firstName;
    private String secondName;
    public String villageName;
    private int age;    
    private boolean canPickUpItems;
    
    public BetterVillage nearestVillager;
    public BetterVillage homevillage;
    public EntityPlayer boss;
    public ItemStack itemwlapie;
    public InventoryVillager inventory = new InventoryVillager(this, "Villager Inventory", false);
    
    public final EntityBetterAITasks bettertasks;
    public final EntityBetterAITasks bettertargetTasks;
    private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 0.6D, 20, 60, 15.0F);
    private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityZombie.class, 0.6D, true);
    
    private String[] firstnames = new String[] {"a", "b", "c"};
    private String[] secondnames = new String[] {"a", "b", "c"};
    

    public EntityBetterVillager(World par1World)
    {
        this(par1World, 0);       
    }

    public EntityBetterVillager(World par1World, int par2)
    {
        super(par1World);       
        this.setSize(0.6F, 1.8F);
        this.experienceValue = 5;
        this.setProfession(par2);               
        
        this.bettertasks = new EntityBetterAITasks(par1World != null && par1World.theProfiler != null ? par1World.theProfiler : null);
        this.bettertargetTasks = new EntityBetterAITasks(par1World != null && par1World.theProfiler != null ? par1World.theProfiler : null);


        this.getNavigator().setBreakDoors(true);
        this.getNavigator().setAvoidsWater(true);
        
        this.tasks.addTask(0, new EntityAISwimming(this));       
        this.tasks.addTask(1, new EntityAIAttackOnCollide(this, 0.6D, true));
        this.tasks.addTask(2, new EntityAIMoveIndoors(this));
        this.bettertasks.addTask(3, new EntityBetterAIRestrictOpenDoor(this));
        this.bettertasks.addTask(4, new EntityBetterAIOpenDoor(this, true));
        this.tasks.addTask(5, new EntityAIMoveTowardsTarget(this, 0.6D, 32.0F));
        this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 0.6D));
        this.tasks.addTask(6, new EntityAIFollowGolem(this));
        this.tasks.addTask(7, new EntityAIPlay(this, 0.32D));
        this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 3.0F, 1.0F));
        this.tasks.addTask(8, new EntityAIWatchClosest2(this, EntityBetterVillager.class, 5.0F, 0.02F));
        
        this.tasks.addTask(9, new EntityAIAvoidEntity(this, EntityZombie.class, 8.0F, 0.6D, 0.6D));
        this.tasks.addTask(6, new EntityAIVillagerMate(this));
        this.tasks.addTask(9, new EntityAIWander(this, 0.6D));
        
        this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false));
        this.bettertargetTasks.addTask(3, new EntityAINearestAttackableVillager(this, EntityBetterVillager.class, 0, true, true));
    }

    protected void applyEntityAttributes()
    {
        super.applyEntityAttributes();	
        this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(50.0D);
        this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.5D);
    }

    public boolean isAIEnabled()
    {
        return true;
    }
    
    public void onLivingUpdate()
    { 	
    	tick++;
    	if(this.firstName == null)this.setFirstName();
    	if(this.secondName == null)this.setRandomSecondName();
    	
    	
    	if(tick % 8766000 == 0)
    	{
    		this.age++;
    		tick = 0;
    	}
    	if(tick % 20 == 0)
    	{
    		//System.out.println(inventory.armorItemInSlot(3));
    		if(this.getProfession() == 5)this.setCombatTask();
    		if(this.villageName == null)this.setHomeVillage();
    	}
    	 	
    	if(!this.isChild())
    	{   		
    		this.setCanPickUpItems(true);
    	}else	this.setCanPickUpItems(false);
    	
        this.bettertargetTasks.onUpdateTasks();
        this.bettertasks.onUpdateTasks();
        this.updateArmSwingProgress();
        
        if (!this.worldObj.isRemote && !this.dead && this.canPickUpItems() == true){
            List list = this.worldObj.getEntitiesWithinAABB(EntityItem.class, this.boundingBox.expand(1.0D, 0.0D, 1.0D));
            Iterator iterator = list.iterator();

            while (iterator.hasNext()){
                EntityItem entityitem = (EntityItem)iterator.next();

                if (!entityitem.isDead && entityitem.getEntityItem() != null){
                    ItemStack itemstack = entityitem.getEntityItem();
                    this.inventory.addItemStackToInventory(itemstack);
                    this.onItemPickup(entityitem, 1);
                    entityitem.setDead();                                            
                }
            }
        }              
        super.onLivingUpdate();
    }
    
    protected boolean canPickUpItems(){
    	return this.canPickUpItems;
    }
    
    protected void setCanPickUpItems(boolean par1){
    	this.canPickUpItems = par1;
    }
    
    protected Entity findPlayerToAttack()
    {
        EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 16.0D);
        return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null;
    }
    
    public boolean canAttackClass(Class p_70686_1_)
    {
    	Entity entity = this.entityToAttack;
        return ((this.villageName != null) && (entity != null) && (entity instanceof EntityBetterVillager) && (this.villageName != ((EntityBetterVillager) entity).villageName) && EntityBetterVillager.class.isAssignableFrom(p_70686_1_)) ? false : super.canAttackClass(p_70686_1_);
    }
    
    public boolean attackEntityFrom(DamageSource par1DamageSource, float par2)
    {
        if (this.isEntityInvulnerable())
        {
            return false;
        }
        else if (super.attackEntityFrom(par1DamageSource, par2))
        {
            Entity entity = par1DamageSource.getEntity();

            if (this.riddenByEntity != entity && this.ridingEntity != entity)
            {
                if (entity != this)
                {
                    this.entityToAttack = entity;
                }

                return true;
            }
            else
            {
                return true;
            }
        }
        else
        {
            return false;
        }
    }
    
    public boolean attackEntityAsMob(Entity par1Entity)
    {
        float f = (float) 1.0D;
        int i = 0;

        if (par1Entity instanceof EntityLivingBase)
        {
            f += EnchantmentHelper.getEnchantmentModifierLiving(this, (EntityLivingBase)par1Entity);
            i += EnchantmentHelper.getKnockbackModifier(this, (EntityLivingBase)par1Entity);
        }

        boolean flag = par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), f);

        if (flag)
        {
            if (i > 0)
            {
                par1Entity.addVelocity((double)(-MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F) * (float)i * 0.5F), 0.1D, (double)(MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F) * (float)i * 0.5F));
                this.motionX *= 0.6D;
                this.motionZ *= 0.6D;
            }

            int j = EnchantmentHelper.getFireAspectModifier(this);

            if (j > 0)
            {
                par1Entity.setFire(j * 4);
            }

            if (par1Entity instanceof EntityLivingBase)
            {
                EnchantmentHelper.func_151384_a((EntityLivingBase)par1Entity, this);
            }

            EnchantmentHelper.func_151385_b(this, par1Entity);
        }

        return flag;
    }
    
    protected void attackEntity(Entity par1Entity, float par2)
    {
        if (this.attackTime <= 0 && par2 < 2.0F && par1Entity.boundingBox.maxY > this.boundingBox.minY && par1Entity.boundingBox.minY < this.boundingBox.maxY)
        {
            this.attackTime = 20;
            this.attackEntityAsMob(par1Entity);
        }
    }

    protected void updateAITick()
    {
        if (--this.randomTickDivider <= 0)
        {
        	BetterVillageCollection vlgc = WorldHandler.villageCollectionObj; 
            vlgc.addVillagerPosition(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ));
            this.randomTickDivider = 70 + this.rand.nextInt(50);           
            this.nearestVillager = vlgc.findNearestVillage(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ), 32);


            
            if (this.nearestVillager == null)
            {
                this.detachHome();
            }
            else
            {
                ChunkCoordinates chunkcoordinates = this.nearestVillager.getCenter();
                this.setHomeArea(chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ, (int)((float)this.nearestVillager.getVillageRadius() * 0.6F));

                if (this.isLookingForHome)
                {
                    this.isLookingForHome = false;
                    this.nearestVillager.setDefaultPlayerReputation(5);
                }
            }
        }
        super.updateAITick();
    }

    public boolean interact(EntityPlayer player)
    {
    Minecraft mc = FMLClientHandler.instance().getClient();
        if(mc == null || mc.thePlayer == null)return false;
        
        ItemStack itemstack = player.inventory.getCurrentItem();
        boolean flag = itemstack != null && itemstack.getItem() == Items.spawn_egg;
        int x = MathHelper.floor_double(posX);
        int y = MathHelper.floor_double(posY);
        int z = MathHelper.floor_double(posZ);
        
        if (this.isEntityAlive() && !this.isChild() && !player.isSneaking())
        {                
            mc.displayGuiScreen(new GuiVillager(this, player));
            return true;
        }
        else
        {
            return super.interact(player);
        }
    }

    protected void entityInit()
    {
        super.entityInit();
        this.dataWatcher.addObject(16, Integer.valueOf(0));
    }

    public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound)
    {
    	
        super.writeEntityToNBT(par1NBTTagCompound);
        par1NBTTagCompound.setInteger("Profession", this.getProfession());       
        if(this.firstName != null)par1NBTTagCompound.setString("FirstName", this.firstName);
        if(this.secondName != null)par1NBTTagCompound.setString("SecondName", this.secondName);
        if(this.villageName !=null)par1NBTTagCompound.setString("VillageName", this.villageName);
        par1NBTTagCompound.setInteger("Age", this.age);               
        par1NBTTagCompound.setTag("Inventory", this.inventory.writeToNBT(new NBTTagList()));        
    }

    public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.readEntityFromNBT(par1NBTTagCompound);
        this.setProfession(par1NBTTagCompound.getInteger("Profession"));
        this.age = par1NBTTagCompound.getInteger("Age");
        this.firstName = par1NBTTagCompound.getString("FirstName");
        this.secondName = par1NBTTagCompound.getString("SecondName");              
        this.villageName = par1NBTTagCompound.getString("VillageName");
        
        NBTTagList nbttaglist = par1NBTTagCompound.getTagList("Inventory", 10);
        this.inventory.readFromNBT(nbttaglist);
    }

    protected boolean canDespawn(){
        return false;
    }

    protected String getLivingSound(){
        return "mob.villager.idle";
    }

    protected String getHurtSound(){
        return "mob.villager.hit";
    }

    protected String getDeathSound(){
        return "mob.villager.death";
    }

    public void setProfession(int par1){
        this.dataWatcher.updateObject(16, Integer.valueOf(par1));
    }
    
    public int getProfession(){
        return this.dataWatcher.getWatchableObjectInt(16);
    }

    public boolean isMating(){
        return this.isMating;
    }

    public void setMating(boolean par1){
        this.isMating = par1;
    }

    public void setPlaying(boolean par1){
            this.isPlaying = par1;
    }

    public boolean isPlaying(){
        return this.isPlaying;
    }
    
    public void setFirstName(){
    	this.firstName = this.firstnames[this.rand.nextInt(this.firstnames.length)];
    }
    
    public void setRandomSecondName(){
    	this.secondName = this.secondnames[this.rand.nextInt(this.secondnames.length)];
    }
    
    public void setSecondName(String par1){
    	this.secondName = par1;
    }
    
    public String getFirstName(){
    	return this.firstName;
    }
    
    public String getSecondName(){
    	return this.secondName;
    }
    
    public int getAge(){
    	return this.age;
    }
    
    public String getHomeName(){
    	if(this.villageName != null)
    	{
    		return this.villageName;  
    	}
    	return null;  	
    }
    
    public void setHomeVillage(){
    	VillageInfo info = VillageInfo.build();    	    
    	if(info !=null && info.getNearestVillage() != null)
    	{
    		this.villageName = info.getNearestVillage().getName();       
    	}
    }    

    public void setRevengeTarget(EntityLivingBase par1EntityLivingBase)
    {
        super.setRevengeTarget(par1EntityLivingBase);

        if (this.nearestVillager != null && par1EntityLivingBase != null)
        {
            this.nearestVillager.addOrRenewAgressor(par1EntityLivingBase);

            if (par1EntityLivingBase instanceof EntityPlayer)
            {
                byte b0 = -1;

                if (this.isChild())
                {
                    b0 = -3;
                }

                this.nearestVillager.setReputationForPlayer(par1EntityLivingBase.getCommandSenderName(), b0);

                if (this.isEntityAlive())
                {
                    this.worldObj.setEntityState(this, (byte)13);
                }
            }
        }
    }

    public void onDeath(DamageSource par1DamageSource)
    {        
        if (this.nearestVillager != null)
        {
            Entity entity = par1DamageSource.getEntity();

            if (entity != null)
            {
                if (entity instanceof EntityPlayer)
                {
                    this.nearestVillager.setReputationForPlayer(entity.getCommandSenderName(), -2);
                }
                else if (entity instanceof IMob)
                {
                    this.nearestVillager.endMatingSeason();
                }
            }else if (entity == null)
            {
                EntityPlayer entityplayer = this.worldObj.getClosestPlayerToEntity(this, 16.0D);

                if (entityplayer != null)
                {
                    this.nearestVillager.endMatingSeason();
                }
            }
        }           
        
        if (inventory != null && !this.worldObj.isRemote)
        {
        	for (int i = 0; i < inventory.getSizeInventory(); ++i)
        	{
        		ItemStack itemstack = inventory.getStackInSlot(i);

        		if (itemstack != null)
        		{
        			this.entityDropItem(itemstack, 0.0F);
        		}
        	}
        }        
        super.onDeath(par1DamageSource);
    }

    @SideOnly(Side.CLIENT)
    public void handleHealthUpdate(byte par1)
    {
        if (par1 == 12)
        {
            this.generateRandomParticles("heart");
        }
        else if (par1 == 13)
        {
            this.generateRandomParticles("angryVillager");
        }
        else if (par1 == 14)
        {
            this.generateRandomParticles("happyVillager");
        }
        else
        {
            super.handleHealthUpdate(par1);
        }
    }

    public IEntityLivingData onSpawnWithEgg(IEntityLivingData par1EntityLivingData)
    {
        par1EntityLivingData = super.onSpawnWithEgg(par1EntityLivingData);
        this.setFirstName(); 
        this.setRandomSecondName();
        this.setHomeVillage();
        return par1EntityLivingData;
    }

    @SideOnly(Side.CLIENT)
    private void generateRandomParticles(String par1Str)
    {
        for (int i = 0; i < 5; ++i)
        {
            double d0 = this.rand.nextGaussian() * 0.02D;
            double d1 = this.rand.nextGaussian() * 0.02D;
            double d2 = this.rand.nextGaussian() * 0.02D;
            this.worldObj.spawnParticle(par1Str, this.posX + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, this.posY + 1.0D + (double)(this.rand.nextFloat() * this.height), this.posZ + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, d0, d1, d2);
        }
    }

    public void setLookingForHome()
    {
        this.isLookingForHome = true;
    }

    public EntityBetterVillager createChild(EntityAgeable par1EntityAgeable)
    {
        EntityBetterVillager entityvillager = new EntityBetterVillager(this.worldObj);
        entityvillager.onSpawnWithEgg((IEntityLivingData)null);
        entityvillager.setFirstName();
        entityvillager.setSecondName(this.secondName);
        entityvillager.setHomeVillage();
        return entityvillager;
    }
    
    public boolean allowLeashing()
    {
        return false;
    }
    
    @Override
public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2)
{	
	ItemStack itemstack = this.inventory.getStackInSlot(0);

	if (itemstack != null && itemstack.getItem() == Items.bow)
	{				
        EntityArrow entityarrow = new EntityArrow(this.worldObj, this, par1EntityLivingBase, 1.6F, (float)(14 - this.worldObj.difficultySetting.getDifficultyId() * 4));
        int i = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, this.getHeldItem());
        int j = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, this.getHeldItem());
        
        entityarrow.setDamage(4.5D);
        
        if (i > 0)entityarrow.setDamage(entityarrow.getDamage() + (double)i * 0.5D + 0.5D);	
        if (j > 0)entityarrow.setKnockbackStrength(j);
        
        this.playSound("random.bow", 1.0F, 1.0F / (this.getRNG().nextFloat() * 0.4F + 0.8F));
        this.worldObj.spawnEntityInWorld(entityarrow);
	}		
	else if (itemstack != null && itemstack.getItem() == ModBetterWorld.LongBow)
	{				
        EntityArrow entityarrow = new EntityArrow(this.worldObj, this, par1EntityLivingBase, 1.6F, (float)(14 - this.worldObj.difficultySetting.getDifficultyId() * 4));
        int i = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, this.getHeldItem());
        int j = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, this.getHeldItem());
        
        entityarrow.setDamage(6.0D);
        
        if (i > 0)entityarrow.setDamage(entityarrow.getDamage() + (double)i * 0.5D + 0.5D);
        if (j > 0)entityarrow.setKnockbackStrength(j);
        
        this.playSound("random.bow", 1.0F, 1.0F / (this.getRNG().nextFloat() * 0.4F + 0.8F));
        this.worldObj.spawnEntityInWorld(entityarrow);
	}
	else if (itemstack != null && itemstack.getItem() == ModBetterWorld.Crossbow)
	{				
		//na koncu jest jaki rozrzut na boki przy strzale
        EntityBolt entityarrow = new EntityBolt(this.worldObj, this, par1EntityLivingBase, 1.3F, (float)(14 - this.worldObj.difficultySetting.getDifficultyId() * 4));
        int i = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, this.getHeldItem());
        int j = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, this.getHeldItem());
        
        entityarrow.setDamage(7.5D);
        
        if (i > 0)entityarrow.setDamage(entityarrow.getDamage() + (double)i * 0.5D + 0.5D);	
        if (j > 0)entityarrow.setKnockbackStrength(j);
        
        this.playSound("random.bow", 1.0F, 1.0F / (this.getRNG().nextFloat() * 0.4F + 0.8F));
        this.worldObj.spawnEntityInWorld(entityarrow);
	}
}  

    public void setCombatTask()
    {   	
        ItemStack itemstack = this.getHeldItem();
        
        this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true));
        this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityZombie.class, 0, true, true));
        this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityZombie.class, 64.0F));	            
        
        this.tasks.removeTask(new EntityAIAvoidEntity(this, EntityZombie.class, 8.0F, 0.6D, 0.6D));     
        
        if (itemstack != null && itemstack.getItem() == Items.bow)
        {       	
            this.tasks.addTask(4, this.aiArrowAttack);
            this.tasks.removeTask(this.aiAttackOnCollide);
        }
        else if(itemstack != null && itemstack.getItem() == ModBetterWorld.LongBow)
        {
            this.tasks.addTask(4, this.aiArrowAttack);
            this.tasks.removeTask(this.aiAttackOnCollide);
        }
        else if(itemstack != null && itemstack.getItem() == ModBetterWorld.Crossbow)
        {       	
            this.tasks.addTask(4, this.aiArrowAttack);    
            this.tasks.removeTask(this.aiAttackOnCollide);
        }
        else
        {
        	this.tasks.addTask(4, this.aiAttackOnCollide);
        	this.tasks.removeTask(this.aiArrowAttack);        
        }
    }
    
    public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase)
    {
        return true;
    }

public EntityPlayer getBoss()
{
	return this.boss;
}

public void setBoss(EntityPlayer player)
{
	this.boss = player;
}
}

Link to comment
Share on other sites

As I said my entity code is messy.

Better tasks is my first step to make an orders and tasks system. This system is in second pos. of my plans after finishing inventory.

PersistenceRequired deleted - useless.

I am not sure when to use @Override. Sometimes I add this but when I know that it is needed.

WorldHandler.villageCollectionObj what is wrong with it?

Interact method, open gui by gui handler but why? Now it works fine.

 

By the way, thanks for help, I have learnt lot by fixing errors since my first contact with java.

 

 

Link to comment
Share on other sites

Some code edited in previous post.

I should have changed betterai to sth else. It wont be an ai but system of tasks. In ai system there are some issues that I dont like. Dont ask what and why.

@Override, ok I must read on forums how to properly use it. Ok now I think I know how to use it, I am not planing any other entities implementing my villager so I dont need to Override methods??

I will try to fix gui opening and villages handling.

My 17 holidays stared so I have a time to fix and add what I want :)

 

Link to comment
Share on other sites

GUI should be opened by displaying gui screen only if the gui to open we are opening from another gui??

I changed few guis to open from gui handler. Now I am trying to senda packet on client side to open gui which opens by interaction with villager.

Should I use method from SimpleNetworkWrapper sendTo or other? If sendTo what I need to change to make player  as a EntityPlayerMP?

Link to comment
Share on other sites

In interact method:

player.openGui(ModBetterWorld.instance, 4, world, this.getEntityId(), y, z);

In gui handler:

		        case 4:
			Entity villager = world.getEntityByID(x);
			if(villager!=null && villager instanceof EntityBetterVillager)
			{
				return new GuiVillager((EntityBetterVillager) villager, player);
			}

Works fine, now can it crash? So I can use show gui screen only in other guis when I want to open gui??

 

Link to comment
Share on other sites

Here is WordHandler class:

package BetterWorld;

public class WorldHandler
{
public WorldHandler() {}

public static BetterVillageCollection villageCollectionObj;

@SubscribeEvent
public void worldMethod(WorldEvent event) 
{	    
	BetterVillageCollection villagecollection = (BetterVillageCollection)event.world.perWorldStorage.loadData(BetterVillageCollection.class, "bettervillages"); 
        
	if (villagecollection == null)
	{
		this.villageCollectionObj = new BetterVillageCollection(event.world);
		event.world.perWorldStorage.setData("bettervillages", this.villageCollectionObj);
	}
	else
	{
		this.villageCollectionObj = villagecollection;		
		this.villageCollectionObj.func_82566_a(event.world);           
	}			
}
}

 

Inwentory works fine, items in slots can be saved and loaded.

When I try to get an itemstack to render armor and item in hand method returns always null.

ItemStack itemstack = villager.inventory.armorItemInSlot(3 - par2);

villager is correct(I can get its pos.)method for getting item is correct too. I think that inventory returns null so method after too.

Method works because it returns item when I use it in entity class.

 

 

Link to comment
Share on other sites

Hm ok, I need to change those class.

I found sth wired.

After changing profession system of villager. When I try to print int of prof. I see 0 and the prof. number.

I add that prof. can be changed in gui. Texture works fine and in villager info correct prof. shows.

After next word opening prof. turns to 0, despite NBT data laoding and saving.

Link to comment
Share on other sites

Method:

System.out.println(this.inventory.armorItemInSlot(1));

In entity class returns itemstack.

Method:

System.out.println(villager.inventory.armorItemInSlot(1));

In render class returns null.

I know that entity is correct, because I can get entity with armor in this code.

System.out.println(villager);

Link to comment
Share on other sites

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Man, I fcuked up my own URL tags by including the second link! xD

 

Haha.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello, I want to add more memory to the RunClient gradle task. I added VM options into the configurations and put in "-Xms256m -Xmx2048m" but it doesn't work.
    • Hello, I'm trying to modify the effects of native enchantments for bows and arrows in Minecraft. After using a decompilation tool, I found that the specific implementations of native bow and arrow enchantments (including `ArrowDamageEnchantment`, `ArrowKnockbackEnchantment`, `ArrowFireEnchantment`, `ArrowInfiniteEnchantment`, `ArrowPiercingEnchantment`) do not contain any information about the enchantment effects (such as the `getDamageProtection` function for `ProtectionEnchantment`, `getDamageBonus` function for `DamageEnchantment`, etc.). Upon searching for the base class of arrows, `AbstractArrow`, I found a function named setEnchantmentEffectsFromEntity`, which seems to be used to retrieve the enchantment levels of the tool held by a `LivingEntity` and calculate the specific values of the enchantment effects. However, after testing with the following code, I found that this function is not being called:   @Mixin(AbstractArrow.class) public class ModifyArrowEnchantmentEffects {     private static final Logger LOGGER = LogUtils.getLogger();     @Inject(         method = "setEnchantmentEffectsFromEntity",         at = @At("HEAD")     )     private void logArrowEnchantmentEffectsFromEntity(CallbackInfo ci) {         LOGGER.info("Arrow enchantment effects from entity");     } }   Upon further investigation, I found that within the onHitEntity method, there are several lines of code:               if (!this.level().isClientSide &amp;&amp; entity1 instanceof LivingEntity) {                EnchantmentHelper.doPostHurtEffects(livingentity, entity1);                EnchantmentHelper.doPostDamageEffects((LivingEntity)entity1, livingentity);             }   These lines of code actually call the doPostHurt and doPostAttack methods of each enchantment in the enchantment list. However, this leads back to the issue because native bow and arrow enchantments do not implement these functions. Although their base class defines the functions, they are empty. At this point, I'm completely stumped and seeking assistance. Thank you.
    • I have been trying to make a server with forge but I keep running into an issue. I have jdk 22 installed as well as Java 8. here is the debug file  
    • it crashed again     What the console says : [00:02:03] [Server thread/INFO] [Easy NPC/]: [EntityManager] Server started! [00:02:03] [Server thread/INFO] [co.gi.al.ic.IceAndFire/]: {iceandfire:fire_dragon_roost=true, iceandfire:fire_lily=true, iceandfire:spawn_dragon_skeleton_fire=true, iceandfire:lightning_dragon_roost=true, iceandfire:spawn_dragon_skeleton_lightning=true, iceandfire:ice_dragon_roost=true, iceandfire:ice_dragon_cave=true, iceandfire:lightning_dragon_cave=true, iceandfire:cyclops_cave=true, iceandfire:spawn_wandering_cyclops=true, iceandfire:spawn_sea_serpent=true, iceandfire:frost_lily=true, iceandfire:hydra_cave=true, iceandfire:lightning_lily=true, iceandfireixie_village=true, iceandfire:myrmex_hive_jungle=true, iceandfire:myrmex_hive_desert=true, iceandfire:silver_ore=true, iceandfire:siren_island=true, iceandfire:spawn_dragon_skeleton_ice=true, iceandfire:spawn_stymphalian_bird=true, iceandfire:fire_dragon_cave=true, iceandfire:sapphire_ore=true, iceandfire:spawn_hippocampus=true, iceandfire:spawn_death_worm=true} [00:02:03] [Server thread/INFO] [co.gi.al.ic.IceAndFire/]: {TROLL_S=true, HIPPOGRYPH=true, AMPHITHERE=true, COCKATRICE=true, TROLL_M=true, DREAD_LICH=true, TROLL_F=true} [00:02:03] [Server thread/INFO] [ne.be.lo.WeaponRegistry/]: Encoded Weapon Attribute registry size (with package overhead): 41976 bytes (in 5 string chunks with the size of 10000) [00:02:03] [Server thread/INFO] [patchouli/]: Sending reload packet to clients [00:02:03] [Server thread/WARN] [voicechat/]: [voicechat] Running in offline mode - Voice chat encryption is not secure! [00:02:03] [VoiceChatServerThread/INFO] [voicechat/]: [voicechat] Using server-ip as bind address: 0.0.0.0 [00:02:03] [Server thread/WARN] [ModernFix/]: Dedicated server took 22.521 seconds to load [00:02:03] [VoiceChatServerThread/INFO] [voicechat/]: [voicechat] Voice chat server started at 0.0.0.0:25565 [00:02:03] [Server thread/WARN] [minecraft/SynchedEntityData]: defineId called for: class net.minecraft.world.entity.player.Player from class tschipp.carryon.common.carry.CarryOnDataManager [00:02:03] [Server thread/INFO] [ne.mi.co.AdvancementLoadFix/]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@2941ffd5 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 0 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 1 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 2 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 3 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 4 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 5 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 6 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 7 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 8 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 9 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 10 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 11 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 12 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 13 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 14 [00:02:19] [Server thread/INFO] [ne.mi.co.AdvancementLoadFix/]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@ebc7ef2 [00:02:19] [Server thread/INFO] [minecraft/PlayerList]: ZacAdos[/90.2.17.162:49242] logged in with entity id 1062 at (-1848.6727005281205, 221.0, -3054.2468255848935) [00:02:19] [Server thread/ERROR] [ModernFix/]: Skipping entity ID sync for com.talhanation.smallships.world.entity.ship.Ship: java.lang.NoClassDefFoundError: net/minecraft/client/CameraType [00:02:19] [Server thread/INFO] [minecraft/MinecraftServer]: - Gloop - ZacAdos joined the game [00:02:19] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Updating all forceload tickets for cc56befd-d376-3526-a760-340713c478bd [00:02:19] [Server thread/INFO] [se.mi.te.da.DataManager/]: Sending data to client: ZacAdos [00:02:19] [Server thread/INFO] [voicechat/]: [voicechat] Received secret request of - Gloop - ZacAdos (17) [00:02:19] [Server thread/INFO] [voicechat/]: [voicechat] Sent secret to - Gloop - ZacAdos [00:02:21] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Successfully authenticated player cc56befd-d376-3526-a760-340713c478bd [00:02:22] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Successfully validated connection of player cc56befd-d376-3526-a760-340713c478bd [00:02:22] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Player - Gloop - ZacAdos (cc56befd-d376-3526-a760-340713c478bd) successfully connected to voice chat stop [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping the server [00:02:34] [Server thread/INFO] [mo.pl.ar.ArmourersWorkshop/]: stop local service [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping server [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving players [00:02:34] [Server thread/INFO] [minecraft/ServerGamePacketListenerImpl]: ZacAdos lost connection: Server closed [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: - Gloop - ZacAdos left the game [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Updating all forceload tickets for cc56befd-d376-3526-a760-340713c478bd [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving worlds [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (world): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage: All dimensions are saved [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Stopping IO worker... [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Stopped IO worker! [00:02:34] [Server thread/INFO] [Calio/]: Removing Dynamic Registries for: net.minecraft.server.dedicated.DedicatedServer@7dc879e1 [MineStrator Daemon]: Checking server disk space usage, this could take a few seconds... [MineStrator Daemon]: Updating process configuration files... [MineStrator Daemon]: Ensuring file permissions are set correctly, this could take a few seconds... [MineStrator Daemon]: Pulling Docker container image, this could take a few minutes to complete... [MineStrator Daemon]: Finished pulling Docker container image container@pterodactyl~ java -version openjdk version "17.0.10" 2024-01-16 OpenJDK Runtime Environment Temurin-17.0.10+7 (build 17.0.10+7) OpenJDK 64-Bit Server VM Temurin-17.0.10+7 (build 17.0.10+7, mixed mode, sharing) container@pterodactyl~ java -Xms128M -Xmx6302M -Dterminal.jline=false -Dterminal.ansi=true -Djline.terminal=jline.UnsupportedTerminal -p libraries/cpw/mods/bootstraplauncher/1.1.2/bootstraplauncher-1.1.2.jar:libraries/cpw/mods/securejarhandler/2.1.4/securejarhandler-2.1.4.jar:libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar:libraries/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar:libraries/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar:libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar:libraries/org/ow2/asm/asm/9.5/asm-9.5.jar:libraries/net/minecraftforge/JarJarFileSystems/0.3.16/JarJarFileSystems-0.3.16.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-opens java.base/java.lang.invoke=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming -Djava.net.preferIPv6Addresses=system -DignoreList=bootstraplauncher-1.1.2.jar,securejarhandler-2.1.4.jar,asm-commons-9.5.jar,asm-util-9.5.jar,asm-analysis-9.5.jar,asm-tree-9.5.jar,asm-9.5.jar,JarJarFileSystems-0.3.16.jar -DlibraryDirectory=libraries -DlegacyClassPath=libraries/cpw/mods/securejarhandler/2.1.4/securejarhandler-2.1.4.jar:libraries/org/ow2/asm/asm/9.5/asm-9.5.jar:libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar:libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar:libraries/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar:libraries/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar:libraries/net/minecraftforge/accesstransformers/8.0.4/accesstransformers-8.0.4.jar:libraries/org/antlr/antlr4-runtime/4.9.1/antlr4-runtime-4.9.1.jar:libraries/net/minecraftforge/eventbus/6.0.3/eventbus-6.0.3.jar:libraries/net/minecraftforge/forgespi/6.0.0/forgespi-6.0.0.jar:libraries/net/minecraftforge/coremods/5.0.1/coremods-5.0.1.jar:libraries/cpw/mods/modlauncher/10.0.8/modlauncher-10.0.8.jar:libraries/net/minecraftforge/unsafe/0.2.0/unsafe-0.2.0.jar:libraries/com/electronwill/night-config/core/3.6.4/core-3.6.4.jar:libraries/com/electronwill/night-config/toml/3.6.4/toml-3.6.4.jar:libraries/org/apache/maven/maven-artifact/3.8.5/maven-artifact-3.8.5.jar:libraries/net/jodah/typetools/0.8.3/typetools-0.8.3.jar:libraries/net/minecrell/terminalconsoleappender/1.2.0/terminalconsoleappender-1.2.0.jar:libraries/org/jline/jline-reader/3.12.1/jline-reader-3.12.1.jar:libraries/org/jline/jline-terminal/3.12.1/jline-terminal-3.12.1.jar:libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar:libraries/org/openjdk/nashorn/nashorn-core/15.3/nashorn-core-15.3.jar:libraries/net/minecraftforge/JarJarSelector/0.3.16/JarJarSelector-0.3.16.jar:libraries/net/minecraftforge/JarJarMetadata/0.3.16/JarJarMetadata-0.3.16.jar:libraries/net/minecraftforge/fmlloader/1.19.2-43.3.0/fmlloader-1.19.2-43.3.0.jar:libraries/net/minecraft/server/1.19.2-20220805.130853/server-1.19.2-20220805.130853-extra.jar:libraries/com/github/oshi/oshi-core/5.8.5/oshi-core-5.8.5.jar:libraries/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar:libraries/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:libraries/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar:libraries/com/mojang/authlib/3.11.49/authlib-3.11.49.jar:libraries/com/mojang/brigadier/1.0.18/brigadier-1.0.18.jar:libraries/com/mojang/datafixerupper/5.0.28/datafixerupper-5.0.28.jar:libraries/com/mojang/javabridge/1.2.24/javabridge-1.2.24.jar:libraries/com/mojang/logging/1.0.0/logging-1.0.0.jar:libraries/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar:libraries/io/netty/netty-buffer/4.1.77.Final/netty-buffer-4.1.77.Final.jar:libraries/io/netty/netty-codec/4.1.77.Final/netty-codec-4.1.77.Final.jar:libraries/io/netty/netty-common/4.1.77.Final/netty-common-4.1.77.Final.jar:libraries/io/netty/netty-handler/4.1.77.Final/netty-handler-4.1.77.Final.jar:libraries/io/netty/netty-resolver/4.1.77.Final/netty-resolver-4.1.77.Final.jar:libraries/io/netty/netty-transport/4.1.77.Final/netty-transport-4.1.77.Final.jar:libraries/io/netty/netty-transport-classes-epoll/4.1.77.Final/netty-transport-classes-epoll-4.1.77.Final.jar:libraries/io/netty/netty-transport-native-epoll/4.1.77.Final/netty-transport-native-epoll-4.1.77.Final-linux-x86_64.jar:libraries/io/netty/netty-transport-native-epoll/4.1.77.Final/netty-transport-native-epoll-4.1.77.Final-linux-aarch_64.jar:libraries/io/netty/netty-transport-native-unix-common/4.1.77.Final/netty-transport-native-unix-common-4.1.77.Final.jar:libraries/it/unimi/dsi/fastutil/8.5.6/fastutil-8.5.6.jar:libraries/net/java/dev/jna/jna/5.10.0/jna-5.10.0.jar:libraries/net/java/dev/jna/jna-platform/5.10.0/jna-platform-5.10.0.jar:libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar:libraries/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar:libraries/org/apache/logging/log4j/log4j-api/2.17.0/log4j-api-2.17.0.jar:libraries/org/apache/logging/log4j/log4j-core/2.17.0/log4j-core-2.17.0.jar:libraries/org/apache/logging/log4j/log4j-slf4j18-impl/2.17.0/log4j-slf4j18-impl-2.17.0.jar:libraries/org/slf4j/slf4j-api/1.8.0-beta4/slf4j-api-1.8.0-beta4.jar cpw.mods.bootstraplauncher.BootstrapLauncher --launchTarget forgeserver --fml.forgeVersion 43.3.0 --fml.mcVersion 1.19.2 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20220805.130853 [00:02:42] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 43.3.0, --fml.mcVersion, 1.19.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220805.130853] [00:02:42] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 10.0.8+10.0.8+main.0ef7e830 starting: java version 17.0.10 by Eclipse Adoptium; OS Linux arch amd64 version 6.1.0-12-amd64 [00:02:43] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/home/container/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2363!/ Service=ModLauncher Env=SERVER [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/fmlcore/1.19.2-43.3.0/fmlcore-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/javafmllanguage/1.19.2-43.3.0/javafmllanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/lowcodelanguage/1.19.2-43.3.0/lowcodelanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/mclanguage/1.19.2-43.3.0/mclanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:44] [main/WARN] [ne.mi.ja.se.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File: and Mod File: . Using Mod File: [00:02:44] [main/WARN] [ne.mi.ja.se.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: resourcefullib. Using Mod File: /home/container/mods/resourcefullib-forge-1.19.2-1.1.24.jar [00:02:44] [main/INFO] [ne.mi.fm.lo.mo.JarInJarDependencyLocator/]: Found 13 dependencies adding them to mods collection Latest log [29Mar2024 00:02:42.803] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 43.3.0, --fml.mcVersion, 1.19.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220805.130853] [29Mar2024 00:02:42.805] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.8+10.0.8+main.0ef7e830 starting: java version 17.0.10 by Eclipse Adoptium; OS Linux arch amd64 version 6.1.0-12-amd64 [29Mar2024 00:02:43.548] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/home/container/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2363!/ Service=ModLauncher Env=SERVER [29Mar2024 00:02:43.876] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/fmlcore/1.19.2-43.3.0/fmlcore-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.877] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/javafmllanguage/1.19.2-43.3.0/javafmllanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.877] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/lowcodelanguage/1.19.2-43.3.0/lowcodelanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.878] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/mclanguage/1.19.2-43.3.0/mclanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:44.033] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File: and Mod File: . Using Mod File: [29Mar2024 00:02:44.034] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: resourcefullib. Using Mod File: /home/container/mods/resourcefullib-forge-1.19.2-1.1.24.jar [29Mar2024 00:02:44.034] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Found 13 dependencies adding them to mods collection
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.