Jump to content

adding health with attributes, and other stuff[Solved.. Finally]


Recommended Posts

so im making an item that does all the stuff below, problem is, adding health isn't working how should I fix this?

 

	@SubscribeEvent
public void playerTick(PlayerTickEvent event) {
	boolean hasItem = event.player.inventory.hasItem(ModItems.DnaPosideonInfused);

	if (event.player.capabilities.isCreativeMode) {
	} else {
		if (hasItem == true) {

			if (event.player.isWet()) {
				event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(40.0D);
				event.player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 1, 1));
				event.player.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 1, 1));
				event.player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 3, 3));
				event.player.addPotionEffect(new PotionEffect(Potion.resistance.id, 1, 1));

			} else {

				if (hasItem == true) {
					event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(30.0D);
					event.player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 1, 1));
					event.player.addPotionEffect(new PotionEffect(Potion.resistance.id, 0, 0));

				}
			}
		}
	}
	if (event.player.capabilities.isCreativeMode) {
	} else {
		if (hasItem == false) {
			event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20.0D);
		}

		if (event.player.isInWater() && hasItem == true) {
			event.player.addPotionEffect(new PotionEffect(
					Potion.regeneration.id, 1, 1));
		}
	}
}

Im serious don't look at it!!

Link to comment
Share on other sites

here is the new code:

	@SubscribeEvent
public void playerTick(PlayerTickEvent event) {
	boolean hasItem = event.player.inventory.hasItem(ModItems.DnaPosideonInfused);

	if (event.player.capabilities.isCreativeMode) {
	} else {
		if (hasItem == true) {
			if (event.player.isWet()) {
	            if(!event.player.worldObj.isRemote){
				event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(40.0D);
				event.player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 1, 1));
				event.player.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 1, 1));
				event.player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 3, 3));
				event.player.addPotionEffect(new PotionEffect(Potion.resistance.id, 1, 1));
			}
			} else {

				if (hasItem == true) {
		            if(!event.player.worldObj.isRemote){
					event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(30.0D);
					event.player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 1, 1));
					event.player.addPotionEffect(new PotionEffect(Potion.resistance.id, 0, 0));
		            }
				}
			}
		}
	}
	if (event.player.capabilities.isCreativeMode) {
	} else {
		if (hasItem == false) {
			event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20.0D);
		}

		if (event.player.isInWater() && hasItem == true) {
            if(!event.player.worldObj.isRemote){
			event.player.addPotionEffect(new PotionEffect(
					Potion.regeneration.id, 1, 1));
			}
		}
	}
}

Im serious don't look at it!!

Link to comment
Share on other sites

I found a different problem, I think Im registrying my event busses wrong, what do you think, also registering one before another makes an  effect, heres thee code:

package com.OlympiansMod.Main;

import net.minecraft.client.renderer.entity.RenderSnowball;
import net.minecraftforge.event.entity.living.LivingDeathEvent;

import com.OlympiansMod.Block.ModBlocks;
import com.OlympiansMod.Item.DnaPosideonInfused;
import com.OlympiansMod.Item.DnaZeusInfused;
import com.OlympiansMod.Item.ModItems;
import com.OlympiansMod.creativetabs.MCreativeTabs;
import com.OlympiansMod.entity.EntityCell;
import com.OlympiansMod.entity.EntityGreekFire;
import com.OlympiansMod.entity.MEntity;
import com.OlympiansMod.lib.Refstrings;
import com.OlympiansMod.world.MWorld;

import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.registry.GameRegistry;

@Mod(modid = Refstrings.MODID , name = Refstrings.NAME , version = Refstrings.VERSION)
public class MainRegistry {
private static int modGuiIndex = 0;

public static final int GUI_CUSTOM_INV = modGuiIndex++;

@SidedProxy(clientSide = Refstrings.CLIENTSIDE , serverSide = Refstrings.SERVERSIDE)
public static ServerProxy proxy;

@Instance
public static MainRegistry modInstance;


@EventHandler
public static void PreLoad(FMLPreInitializationEvent PreEvent) {
	MCreativeTabs.initialiseTabs();
	ModBlocks.MainRegistry();
	MEntity.MainRegistry();
	ModItems.MainRegistry();
	FMLCommonHandler.instance().bus().register(new DnaPosideonInfused());
	FMLCommonHandler.instance().bus().register(new DnaZeusInfused());
	MWorld.MainRegistry();
        CraftingManager.mainRegistry(); 
              

}
@EventHandler
public static void Load(FMLInitializationEvent event) {
	 proxy.registerRenderInfo(); 
}
@EventHandler
public static void PostLoad(FMLPostInitializationEvent PostEvent) {
}

}

Im serious don't look at it!!

Link to comment
Share on other sites

Everything you do, regarding data, should happen on server and be eventually sent to clients.

 

Yes - potion effects HAVE to be added on server side only. They are handled internally and synchronized to all clients.

Note that setting potion time to "1" might cause issues (effect will "blink" or won't even appear - depends if you use START or END tick). Always use 2+ values.

 

As to SharedMonsterAttributes (SMA):

SMA is NOT something that is synchronized. Its name, through still bad, kinda tells you what it is - "SHARED".

Vanilla sets entity's SMA only ONCE - when entity is being constructed. SMA is set on both server and client side - meaning both client entity and server one will have same SMA that was coded in Entity.class.

 

Changing SMA need to happen on BOTH sides. If you decide to alter it - you need to send packet to all clients that it changed.

Also - if you change SMA, let's say health for one player and then someother player sees him (didn't see him before) - you ALSO need to send packet to set its new health. SMA is constant value for both sides and all entities of same type (class).

 

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

Everything you do, regarding data, should happen on server and be eventually sent to clients.

 

Yes - potion effects HAVE to be added on server side only. They are handled internally and synchronized to all clients.

Note that setting potion time to "1" might cause issues (effect will "blink" or won't even appear - depends if you use START or END tick). Always use 2+ values.

 

As to SharedMonsterAttributes (SMA):

SMA is NOT something that is synchronized. Its name, through still bad, kinda tells you what it is - "SHARED".

Vanilla sets entity's SMA only ONCE - when entity is being constructed. SMA is set on both server and client side - meaning both client entity and server one will have same SMA that was coded in Entity.class.

 

Changing SMA need to happen on BOTH sides. If you decide to alter it - you need to send packet to all clients that it changed.

Also - if you change SMA, let's say health for one player and then someother player sees him (didn't see him before) - you ALSO need to send packet to set its new health. SMA is constant value for both sides and all entities of same type (class).

 

If you use modifiers to modify the SMA, then they WILL be sent to the client automatically, but ONLY if they are declared as watched with

.setShouldWatch(true)

.

Health is shared by default, for example.

I have a tutorial on the Attribute system here:

http://www.minecraftforge.net/forum/index.php/topic,30137.0.html

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

everything is valid, except like I said earlier why, registering everything server side works just not with the event bus registered

I found a different problem, I think Im registrying my event busses wrong, what do you think, also registering one before another makes an  effect, heres thee code:

package com.OlympiansMod.Main;

import net.minecraft.client.renderer.entity.RenderSnowball;
import net.minecraftforge.event.entity.living.LivingDeathEvent;

import com.OlympiansMod.Block.ModBlocks;
import com.OlympiansMod.Item.DnaPosideonInfused;
import com.OlympiansMod.Item.DnaZeusInfused;
import com.OlympiansMod.Item.ModItems;
import com.OlympiansMod.creativetabs.MCreativeTabs;
import com.OlympiansMod.entity.EntityCell;
import com.OlympiansMod.entity.EntityGreekFire;
import com.OlympiansMod.entity.MEntity;
import com.OlympiansMod.lib.Refstrings;
import com.OlympiansMod.world.MWorld;

import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.registry.GameRegistry;

@Mod(modid = Refstrings.MODID , name = Refstrings.NAME , version = Refstrings.VERSION)
public class MainRegistry {
private static int modGuiIndex = 0;

public static final int GUI_CUSTOM_INV = modGuiIndex++;

@SidedProxy(clientSide = Refstrings.CLIENTSIDE , serverSide = Refstrings.SERVERSIDE)
public static ServerProxy proxy;

@Instance
public static MainRegistry modInstance;


@EventHandler
public static void PreLoad(FMLPreInitializationEvent PreEvent) {
	MCreativeTabs.initialiseTabs();
	ModBlocks.MainRegistry();
	MEntity.MainRegistry();
	ModItems.MainRegistry();
	FMLCommonHandler.instance().bus().register(new DnaPosideonInfused());
	FMLCommonHandler.instance().bus().register(new DnaZeusInfused());
	MWorld.MainRegistry();
        CraftingManager.mainRegistry(); 
              

}
@EventHandler
public static void Load(FMLInitializationEvent event) {
	 proxy.registerRenderInfo(); 
}
@EventHandler
public static void PostLoad(FMLPostInitializationEvent PostEvent) {
}

}

 

It works if the itemposideon is register after the zeus bus, and vis versa,  its kinds hard to explain just look at the code. why is it doing this? it works perfectly if its registered second.

 

and thanks about the potion effects, it works now, this is mainly about the health stuff though, meaning I just want to clarify that I don't think the main registry has anything to do with the potion effects.

Im serious don't look at it!!

Link to comment
Share on other sites

It might be only me, but I seriosuly don't get what is the ACTUAL problem here.

First you say something about health, now you start with even buses. I am lost.

 

Anyway - if you want direct help - make GitHub. Other option is to post all classes regarding problem (with proxies if used).

 

Also note that tick events always have 2 phases - pick one, otherwise code is ran twice. (e.g: event.phase == Phase.END).

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

ok just tell me where I should register the event busses

PreInit

 

or a better question would be, how do I modify player attributes easily.

Alredy told, twice (in different aspects).

 

* SMA Base is something shared and set by Entity.class

* SMA Modifiers are auto-synced if set to be.

 

You either want to add/remove modifiers to attribute or set your own base value, but in that case you need to do all syncs on your own.

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

yeah so It worked slightly:

here is every class im hoping this will help me solve the problem.

MainRegistry:

package com.OlympiansMod.Main;

import net.minecraft.client.renderer.entity.RenderSnowball;
import net.minecraftforge.event.entity.living.LivingDeathEvent;

import com.OlympiansMod.Block.ModBlocks;
import com.OlympiansMod.Item.DnaPosideonInfused;
import com.OlympiansMod.Item.DnaStats;
import com.OlympiansMod.Item.DnaStats2;
import com.OlympiansMod.Item.DnaZeusInfused;
import com.OlympiansMod.Item.ModItems;
import com.OlympiansMod.creativetabs.MCreativeTabs;
import com.OlympiansMod.entity.EntityCell;
import com.OlympiansMod.entity.EntityGreekFire;
import com.OlympiansMod.entity.MEntity;
import com.OlympiansMod.lib.Refstrings;
import com.OlympiansMod.world.MWorld;

import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.registry.GameRegistry;

@Mod(modid = Refstrings.MODID , name = Refstrings.NAME , version = Refstrings.VERSION)
public class MainRegistry {
private static int modGuiIndex = 0;

public static final int GUI_CUSTOM_INV = modGuiIndex++;

@SidedProxy(clientSide = Refstrings.CLIENTSIDE , serverSide = Refstrings.SERVERSIDE)
public static ServerProxy proxy;

@Instance
public static MainRegistry modInstance;


@EventHandler
public static void PreLoad(FMLPreInitializationEvent PreEvent) {
	MCreativeTabs.initialiseTabs();
	ModBlocks.MainRegistry();
	MEntity.MainRegistry();
	ModItems.MainRegistry();
	FMLCommonHandler.instance().bus().register(new DnaZeusInfused());
	FMLCommonHandler.instance().bus().register(new DnaPosideonInfused());
	MWorld.MainRegistry();
        CraftingManager.mainRegistry(); 
    
}
@EventHandler
public static void Load(FMLInitializationEvent event) {
	 proxy.registerRenderInfo(); 
}
@EventHandler
public static void PostLoad(FMLPostInitializationEvent PostEvent) {
}

}

ItemClasses:

package com.OlympiansMod.Item;

import java.util.List;

import com.sun.media.jfxmedia.events.PlayerEvent;

import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent.Phase;
import cpw.mods.fml.common.gameevent.TickEvent.PlayerTickEvent;
import net.minecraft.entity.Entity;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;

public class DnaZeusInfused extends Item {

@SubscribeEvent
public void playerTick(PlayerTickEvent event) {
	boolean hasItem = event.player.inventory.hasItem(ModItems.DnaZeusInfused);
	if (event.player.capabilities.isCreativeMode) {
	} else {	

		if (hasItem == true) {
			event.player.capabilities.allowFlying = true;
			if (event.player.capabilities.isFlying) {
	            if(!event.player.worldObj.isRemote){
				event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(40.0D);				
				event.player.addPotionEffect(new PotionEffect(
						Potion.damageBoost.id, 1, 1));
				event.player.addPotionEffect(new PotionEffect(
						Potion.resistance.id, 1, 1));
				event.player.addPotionEffect(new PotionEffect(
						Potion.hunger.id, 3, 3));
	            }
			} else {
			if (hasItem == true) {
	            if(!event.player.worldObj.isRemote){
				event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(30.0D);
				event.player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 0, 0));
				event.player.addPotionEffect(new PotionEffect(Potion.resistance.id, 0, 0));
					}
				}
			}
		}
	}

		if (event.player.capabilities.isCreativeMode) {
		} else {
			if (hasItem == false) {
	            if(!event.player.worldObj.isRemote){
				event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).removeAllModifiers();
				event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20.0D);
	            }
				event.player.capabilities.allowFlying = false;
				event.player.capabilities.isFlying = false;

		}

		if (event.player.isInWater() && hasItem == true) {
            if(!event.player.worldObj.isRemote){
				event.player.addPotionEffect(new PotionEffect(
						Potion.weakness.id, 0, 0));
			}
		}
	}

}
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
	if (!world.isRemote) {
		player.attackEntityFrom(DamageSource.causeIndirectMagicDamage(player, player), 10);
		player.addPotionEffect(new PotionEffect(Potion.blindness.id, 60, 5));
		player.addPotionEffect(new PotionEffect(Potion.confusion.id, 200, 5));
		player.addPotionEffect(new PotionEffect(Potion.wither.id, 60, 5));
		player.inventory.addItemStackToInventory(new ItemStack(
				ModItems.DNAZeus));
		return new ItemStack(ModItems.DnaInfuser);

	}

	return stack;
}
public void addInformation(ItemStack stack, EntityPlayer player, List list,
		boolean i) {
	list.add(EnumChatFormatting.AQUA
			+ "Dna Infuser:");
	list.add("                         ");
	list.add(EnumChatFormatting.BLUE + "Mode:");
	list.add(EnumChatFormatting.BLUE + "Actively Infusing:");
	list.add(EnumChatFormatting.BLUE + "Dna of Zeus");


}
}

package com.OlympiansMod.Item;

import java.util.List;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent.PlayerTickEvent;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;

public class DnaPosideonInfused extends Item{
@SubscribeEvent
public void playerTick(PlayerTickEvent event) {
	boolean hasItem = event.player.inventory.hasItem(ModItems.DnaPosideonInfused);

	if (event.player.capabilities.isCreativeMode) {
	} else {
		if (hasItem == true) {
			if (event.player.isWet()) {
	            if(!event.player.worldObj.isRemote){
				event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(45.0D);
				event.player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 1, 1));
				event.player.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 1, 1));
				event.player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 3, 3));
				event.player.addPotionEffect(new PotionEffect(Potion.resistance.id, 1, 1));
			}
			} else {

				if (hasItem == true) {
		            if(!event.player.worldObj.isRemote){
					event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(30.0D);
					event.player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 1, 1));
					event.player.addPotionEffect(new PotionEffect(Potion.resistance.id, 0, 0));
		            }
				}
			}
		}
	}
	if (event.player.capabilities.isCreativeMode) {
	} else {
		if (hasItem == false) {
            if(!event.player.worldObj.isRemote){
			event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).removeAllModifiers();
			event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20.0D);
            }
		}

		if (event.player.isInWater() && hasItem == true) {
            if(!event.player.worldObj.isRemote){
			event.player.addPotionEffect(new PotionEffect(
					Potion.regeneration.id, 1, 1));
			}
		}
	}
}
public ItemStack onItemRightClick(ItemStack stack, World world,
		EntityPlayer player) {
	if (!world.isRemote) {
		player.attackEntityFrom(
				DamageSource.causeIndirectMagicDamage(player, player), 10);
		player.addPotionEffect(new PotionEffect(Potion.blindness.id, 60, 5));
		player.addPotionEffect(new PotionEffect(Potion.confusion.id, 200, 5));
		player.addPotionEffect(new PotionEffect(Potion.wither.id, 60, 5));
		player.inventory.addItemStackToInventory(new ItemStack(
				ModItems.DNAPosideon));
		return new ItemStack(ModItems.DnaInfuser);

	}

	return stack;
}

public void addInformation(ItemStack stack, EntityPlayer player, List list,
	boolean i) {

list.add(EnumChatFormatting.AQUA + "Dna Infuser:");
list.add("                         ");
list.add(EnumChatFormatting.BLUE + "Mode:");
list.add(EnumChatFormatting.BLUE + "Actively Infusing:");
list.add(EnumChatFormatting.BLUE + "Dna of Posideon");

}
}


 

so yeah, the dnaposideoninfused works perfectly, problem is the dnaZeusInfused works, except for the health modifiers, and I can get the dnazeusInfused to work, but I have to place the event bus before the dna posideon infused. but then the dnaposideoninfused doesn't work. why is this?

Im serious don't look at it!!

Link to comment
Share on other sites

fw1vI.jpg

 

width=600 height=399http://images-cdn.9gag.com/photo/arpnqKB_700b.jpg[/img]

 

Aaaanyway... (mind that my life and everything I say is a joke)

I will just point out everything bad:

1.

Also note that tick events always have 2 phases - pick one, otherwise code is ran twice. (e.g: event.phase == Phase.END).

56586470.jpg

 

2.

@SubscribeEvent
public void playerTick(PlayerTickEvent event) {
boolean hasItem = event.player.inventory.hasItem(ModItems.DnaZeusInfused);

This piece of code is almost as ridiculus as building a bike with square "wheels" just to realize that round ones were invented thousands of years ago.

 

If you are planning on making an item that gives effects when inside inventory and/or held in hand - use the right method!

Item#onUpdate(...) is called whenever item is inside your inventory. To check if it's held you can simply do heldStack==stackFromOnUpdateMethod.

 

3.

For the love of god - keep some order when making chain if-statements.

1st check the logical side! Then do creative checks and then everything else.

 

4.

More @SubscribeEvent for same event = worse the design.

One mod should only subscribe to an event once, there is no logical point of doing it twice. Also - look again at point "1" and "2".

 

5.

removeAllModifiers();

Focus on "All" keyword. You certainly DON'T want to use this method, just because.

 

6.

Finally (writing this 3rd time):

You either ALTER BASE value, or ADD/REMOVE MODIFIER.

Every attribute has a BASE value that is set DIRECTLY from given Entity.class. This value (if not changed from outside) will most certainly be SAME for all entitities of given class for both client and server.

Altering BASE value in ANY way will require you to update other client's data, as BASE value is set ONCE and not tracked.

 

If you don't want to handle it on your own (all the updates) - you DO NOT even touch BASE value. Never, ever (not including making your own entity obviously).

 

If you want to go easy way - you do it by ADDING/REMOVING AttributeModifier to given Attribute. Base stays the same, you just add e.g +10 health (meaning entity will have 20+10).

In that case - modifiers WILL be auto-synced if set to do so (.setShouldWatch(true)).

 

6 (edit: because "7" is too mainstream). Why do your potions have "0" time?

 

Fix your code, read vanilla and check out modifiers (plenty of examples in vanilla).

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

i know this is completely and utterly wrong but what do I do from here, plus im having trouble finding examples in vanilla(the healthboost potion effect does help me) or the internet. How/What should I do to just + 10 to a health modifier.

			            event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier(null, iconString, event.player.getMaxHealth() + 10D, 10));	

yeah don't even say anything about the code.. but seriously how do I apply an attribute.

Im serious don't look at it!!

Link to comment
Share on other sites

Okay, so basically (I think you finally got the idea).

 

There is the Attribute.

It kinda looks like this: (example)

Note: It obviously doesn't look like this in internals, I am just presenting idea.

 

Attribute<maxHealth>

--->Map<UUID, AttributeModifier>

 

Now the AttributeModifier is something that can be added/removed from Attribute based on it's UUID (internals also allow operating on names or operations, but it's not really place for you in this case, those are internals).

 

What you actually do here is save basic data about modifier as static thing and apply it to any number of entities you want.

Example:

public static String theUUID = "1F28C409-EA90-4E54-AD57-13F3D92F68B2"; // this is supposed to be some static-for-your-modifier UUID. You decide what this String is, it must be in an UUID format tho.
public static String theName = "MySuperModifier"; // This will be the name of modifier.
public static AttributeModifier myAttributeModifier = new AttributeModifier(UUID.fromString(theUUID), theName, 10.0D, 0); // And yes, you can put those above inside this one's declaration.

//Now what you do in method to apply/remove:

event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(myAttributeModifier);
// 10.0D is modifier value, in this case 10.0F health
// 0 is an operation - there are few operations, 0 is literally "+".
// After doing this - your entity's health will be 20+10.
// The Modifier is saved in entity with a key (theUUID).
// If you want to remove it, you simply:

event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).removeModifier(myAttributeModifier); // note that it is the same modifier instance used on all entities.

 

Lemme just note: I DO NOT personally use this fkd up system. For me - it's the most badly and overly-complicated thing that they've added to MC since they started "sane" and "code-cleanup" updates. I personally go with my own much clearer, faster and expanded system that operates direcly on BASE value.

I have no idea if this will work, I literally just readup it in past 20min directly from code. Guess it should.

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

Lemme just note: I DO NOT personally use this fkd up system. For me - it's the most badly and overly-complicated thing that they've added to MC since they started "sane" and "code-cleanup" updates. I personally go with my own much clearer, faster and expanded system that operates direcly on BASE value.

I have no idea if this will work, I literally just readup it in past 20min directly from code. Guess it should.

 

I will shamelessly self-ad my tutorial again: http://www.minecraftforge.net/forum/index.php/topic,30137.0.html

 

But you got it right.

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

wait a second, since the maxhealth attribute already has setShouldWatch I don't need to implement it? I basically but every thing that requires the playertickevent in one method, but only one of the items still seems to works, although right before I log in game, the Item the before currently was working, shows hearts until the login is complete, so basically it lags. so im still not sure how to get both items working properly, I no longer have to subscribe events, just one that does everything. here is the code :P

sorry

public static String theUUID = "1F28C409-EA90-4E54-AD57-13F3D92F68B2"; // this is supposed to be some static-for-your-modifier UUID. You decide what this String is, it must be in an UUID format tho.
public static String theName = "MySuperModifier"; // This will be the name of modifier.
public static String theName1 = "MySuperModifer1";
public static String theName2 = "MySuperModifie2"; // This will be the name of modifier.
public static String theName3 = "MySuperModifer3";
public static AttributeModifier myAttributeModifier = new AttributeModifier(UUID.fromString(theUUID), theName, 10.0D, 0); // And yes, you can put those above inside this one's declaration.
public static AttributeModifier myAttributeModifier1 = new AttributeModifier(UUID.fromString(theUUID), theName1, 20.0D, 0); // And yes, you can put those above inside this one's declaration.
public static AttributeModifier myAttributeModifier2 = new AttributeModifier(UUID.fromString(theUUID), theName2, 10.0D, 0); // And yes, you can put those above inside this one's declaration.
public static AttributeModifier myAttributeModifier3 = new AttributeModifier(UUID.fromString(theUUID), theName3, 20.0D, 0); // And yes, you can put those above inside this one's declaration.

//Now what you do in method to apply/remove:


@SubscribeEvent
public void playerTick(PlayerTickEvent event) {
	if (event.phase == Phase.END) {
		boolean hasItem = event.player.inventory
				.hasItem(ModItems.DnaPosideonInfused);
		boolean hasItem2 = event.player.inventory
				.hasItem(ModItems.DnaZeusInfused);
		if (event.player.capabilities.isCreativeMode) {
		} else {
			if (event.player.isWet()) {
				if (hasItem == true) {
					if (!event.player.worldObj.isRemote) {
						event.player.getEntityAttribute(
								SharedMonsterAttributes.maxHealth)
								.applyModifier(myAttributeModifier1);
						event.player.addPotionEffect(new PotionEffect(
								Potion.moveSpeed.id, 1, 1));
						event.player.addPotionEffect(new PotionEffect(
								Potion.waterBreathing.id, 1, 1));
						event.player.addPotionEffect(new PotionEffect(
								Potion.damageBoost.id, 3, 3));
						event.player.addPotionEffect(new PotionEffect(
								Potion.resistance.id, 1, 1));
					}
				}
			} else {

				if (hasItem == true) {
					if (!event.player.worldObj.isRemote) {
						event.player.getEntityAttribute(
								SharedMonsterAttributes.maxHealth)
								.removeModifier(myAttributeModifier1); 

						event.player.getEntityAttribute(
								SharedMonsterAttributes.maxHealth)
								.applyModifier(myAttributeModifier);
						event.player.addPotionEffect(new PotionEffect(
								Potion.damageBoost.id, 1, 1));
						event.player.addPotionEffect(new PotionEffect(
								Potion.resistance.id, 0, 0));
					}
				}
			}
		}
		if (event.player.capabilities.isCreativeMode) {
		} else {
			if (hasItem == false) {
				if (!event.player.worldObj.isRemote) {
					event.player.getEntityAttribute(
							SharedMonsterAttributes.maxHealth)
							.removeModifier(myAttributeModifier);

				}
			}

			if (event.player.isInWater() && hasItem == true) {
				if (!event.player.worldObj.isRemote) {
					event.player.addPotionEffect(new PotionEffect(
							Potion.regeneration.id, 1, 1));
				}
			}
		}
		if (event.player.capabilities.isCreativeMode) {
		} else {
			if (hasItem2 == true) {
				event.player.capabilities.allowFlying = true;
			}
			if (event.player.capabilities.isFlying) {
				if (hasItem2 == true) {
					if (!event.player.worldObj.isRemote) {
						event.player.getEntityAttribute(
								SharedMonsterAttributes.maxHealth)
								.applyModifier(myAttributeModifier3);
					}
				}
			} else {
				if (hasItem2 == true) {
					if (!event.player.worldObj.isRemote) {
						event.player.getEntityAttribute(
								SharedMonsterAttributes.maxHealth).removeModifier(myAttributeModifier3);

						event.player.getEntityAttribute(
								SharedMonsterAttributes.maxHealth).applyModifier(myAttributeModifier2);
					}
				}
			}
		}

		if (event.player.capabilities.isCreativeMode) {
		} else {
			if (hasItem2 == false) {
				if (!event.player.worldObj.isRemote) {
					event.player.getEntityAttribute(
							SharedMonsterAttributes.maxHealth).removeModifier(myAttributeModifier2); 

				}
				event.player.capabilities.allowFlying = false;
				event.player.capabilities.isFlying = false;
			}
		}
	}
}

Im serious don't look at it!!

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've been having a problem when launching minecraft forge. It just doesn't open the game, and leaves me with this "(exit code 1)" error. I'm using LauncherFenix and both regular and optifine versions of minecraft launch just fine. I can assure that my drivers are updated so that can't be it, and i've tried using Java 17, 18 and 21 to no avail. I'll leave the log here, although it's in spanish: https://jmp.sh/s/FPqGBSi30fzKJDt2M1gc My specs are this: Ryzen 3 4100 || Radeon R9 280x || 16gb ram || Windows 10 I'd appreciate any help, thank you in advance.
    • Hey, Me and my friends decided to start up a Server with "a few" mods, the last few days everything went well we used all the items we wanted. Now our Game crashes the moment we touch a Lava Bucket inside our Inventory. It just instantly closes and gives me an "Alc Cleanup"  Crash screen (Using GDLauncher). I honestly dont have a clue how to resolve this error. If anyone could help id really appreciate it, I speak German and Englisch so you can choose whatever you speak more fluently. Thanks in Advance. Plus I dont know how to link my Crash Report help for that would be nice too whoops
    • I hosted a minecraft server and I modded it, and there is always an error on the console which closes the server. If someone knows how to repair it, it would be amazing. Thank you. I paste the crash report down here: ---- Minecraft Crash Report ---- WARNING: coremods are present:   llibrary (llibrary-core-1.0.11-1.12.2.jar)   WolfArmorCore (WolfArmorAndStorage-1.12.2-3.8.0-universal-signed.jar)   AstralCore (astralsorcery-1.12.2-1.10.27.jar)   CreativePatchingLoader (CreativeCore_v1.10.71_mc1.12.2.jar)   SecurityCraftLoadingPlugin ([1.12.2] SecurityCraft v1.9.8.jar)   ForgelinPlugin (Forgelin-1.8.4.jar)   midnight (themidnight-0.3.5.jar)   FutureMC (Future-MC-0.2.19.jar)   SpartanWeaponry-MixinLoader (SpartanWeaponry-1.12.2-1.5.3.jar)   Backpacked (backpacked-1.4.3-1.12.2.jar)   LoadingPlugin (Reskillable-1.12.2-1.13.0.jar)   LoadingPlugin (Bloodmoon-MC1.12.2-1.5.3.jar) Contact their authors BEFORE contacting forge // There are four lights! Time: 3/28/24 12:17 PM Description: Exception in server tick loop net.minecraftforge.fml.common.LoaderException: java.lang.NoClassDefFoundError: net/minecraft/client/multiplayer/WorldClient     at net.minecraftforge.fml.common.AutomaticEventSubscriber.inject(AutomaticEventSubscriber.java:89)     at net.minecraftforge.fml.common.FMLModContainer.constructMod(FMLModContainer.java:612)     at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)     at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)     at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)     at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)     at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)     at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)     at com.google.common.eventbus.EventBus.post(EventBus.java:217)     at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:219)     at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:197)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)     at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)     at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)     at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)     at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)     at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)     at com.google.common.eventbus.EventBus.post(EventBus.java:217)     at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:136)     at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:595)     at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:98)     at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:333)     at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:125)     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486)     at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/multiplayer/WorldClient     at java.lang.Class.getDeclaredMethods0(Native Method)     at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)     at java.lang.Class.privateGetPublicMethods(Class.java:2902)     at java.lang.Class.getMethods(Class.java:1615)     at net.minecraftforge.fml.common.eventhandler.EventBus.register(EventBus.java:82)     at net.minecraftforge.fml.common.AutomaticEventSubscriber.inject(AutomaticEventSubscriber.java:82)     ... 31 more Caused by: java.lang.ClassNotFoundException: net.minecraft.client.multiplayer.WorldClient     at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)     at java.lang.ClassLoader.loadClass(ClassLoader.java:418)     at java.lang.ClassLoader.loadClass(ClassLoader.java:351)     ... 37 more Caused by: net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerException: Exception in class transformer net.minecraftforge.fml.common.asm.transformers.SideTransformer@4e558728 from coremod FMLCorePlugin     at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:260)     at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279)     at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176)     ... 39 more Caused by: java.lang.RuntimeException: Attempted to load class bsb for invalid side SERVER     at net.minecraftforge.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:62)     at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:256)     ... 41 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.12.2     Operating System: Linux (amd64) version 5.10.0-28-cloud-amd64     Java Version: 1.8.0_382, Temurin     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Temurin     Memory: 948745536 bytes (904 MB) / 1564999680 bytes (1492 MB) up to 7635730432 bytes (7282 MB)     JVM Flags: 2 total; -Xmx8192M -Xms256M     IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0     FML: MCP 9.42 Powered by Forge 14.23.5.2860 63 mods loaded, 63 mods active     States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored     | State | ID                 | Version                 | Source                                                | Signature                                |     |:----- |:------------------ |:----------------------- |:----------------------------------------------------- |:---------------------------------------- |     | LC    | minecraft          | 1.12.2                  | minecraft.jar                                         | None                                     |     | LC    | mcp                | 9.42                    | minecraft.jar                                         | None                                     |     | LC    | FML                | 8.0.99.99               | forge-1.12.2-14.23.5.2860.jar                         | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LC    | forge              | 14.23.5.2860            | forge-1.12.2-14.23.5.2860.jar                         | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LC    | creativecoredummy  | 1.0.0                   | minecraft.jar                                         | None                                     |     | LC    | backpacked         | 1.4.2                   | backpacked-1.4.3-1.12.2.jar                           | None                                     |     | LC    | itemblacklist      | 1.4.3                   | ItemBlacklist-1.4.3.jar                               | None                                     |     | LC    | securitycraft      | v1.9.8                  | [1.12.2] SecurityCraft v1.9.8.jar                     | None                                     |     | LC    | aiimprovements     | 0.0.1.3                 | AIImprovements-1.12-0.0.1b3.jar                       | None                                     |     | LC    | jei                | 4.16.1.301              | jei_1.12.2-4.16.1.301.jar                             | None                                     |     | LC    | appleskin          | 1.0.14                  | AppleSkin-mc1.12-1.0.14.jar                           | None                                     |     | LC    | baubles            | 1.5.2                   | Baubles-1.12-1.5.2.jar                                | None                                     |     | LC    | astralsorcery      | 1.10.27                 | astralsorcery-1.12.2-1.10.27.jar                      | a0f0b759d895c15ceb3e3bcb5f3c2db7c582edf0 |     | LC    | attributefix       | 1.0.12                  | AttributeFix-Forge-1.12.2-1.0.12.jar                  | None                                     |     | LC    | atum               | 2.0.20                  | Atum-1.12.2-2.0.20.jar                                | None                                     |     | LC    | bloodmoon          | 1.5.3                   | Bloodmoon-MC1.12.2-1.5.3.jar                          | d72e0dd57935b3e9476212aea0c0df352dd76291 |     | LC    | forgelin           | 1.8.4                   | Forgelin-1.8.4.jar                                    | None                                     |     | LC    | bountiful          | 2.2.2                   | Bountiful-2.2.2.jar                                   | None                                     |     | LC    | camera             | 1.0.10                  | camera-1.0.10.jar                                     | None                                     |     | LC    | chisel             | MC1.12.2-1.0.2.45       | Chisel-MC1.12.2-1.0.2.45.jar                          | None                                     |     | LC    | collective         | 3.0                     | collective-1.12.2-3.0.jar                             | None                                     |     | LC    | reskillable        | 1.12.2-1.13.0           | Reskillable-1.12.2-1.13.0.jar                         | None                                     |     | LC    | compatskills       | 1.12.2-1.17.0           | CompatSkills-1.12.2-1.17.0.jar                        | None                                     |     | LC    | creativecore       | 1.10.0                  | CreativeCore_v1.10.71_mc1.12.2.jar                    | None                                     |     | LC    | customnpcs         | 1.12                    | CustomNPCs_1.12.2-(05Jul20).jar                       | None                                     |     | LC    | darknesslib        | 1.1.2                   | DarknessLib-1.12.2-1.1.2.jar                          | 220f10d3a93b3ff5fbaa7434cc629d863d6751b9 |     | LC    | dungeonsmod        | @VERSION@               | DungeonsMod-1.12.2-1.0.8.jar                          | None                                     |     | LC    | enhancedvisuals    | 1.3.0                   | EnhancedVisuals_v1.4.4_mc1.12.2.jar                   | None                                     |     | LC    | extrautils2        | 1.0                     | extrautils2-1.12-1.9.9.jar                            | None                                     |     | LC    | futuremc           | 0.2.6                   | Future-MC-0.2.19.jar                                  | None                                     |     | LC    | geckolib3          | 3.0.30                  | geckolib-forge-1.12.2-3.0.31.jar                      | None                                     |     | LC    | gottschcore        | 1.15.1                  | GottschCore-mc1.12.2-f14.23.5.2859-v1.15.1.jar        | None                                     |     | LC    | hardcorerevival    | 1.2.0                   | HardcoreRevival_1.12.2-1.2.0.jar                      | None                                     |     | LC    | waila              | 1.8.26                  | Hwyla-1.8.26-B41_1.12.2.jar                           | None                                     |     | LE    | imsm               | 1.12                    | Instant Massive Structures Mod 1.12.2.jar             | None                                     |     | L     | journeymap         | 1.12.2-5.7.1p2          | journeymap-1.12.2-5.7.1p2.jar                         | None                                     |     | L     | mobsunscreen       | @version@               | mobsunscreen-1.12.2-3.1.5.jar                         | None                                     |     | L     | morpheus           | 1.12.2-3.5.106          | Morpheus-1.12.2-3.5.106.jar                           | None                                     |     | L     | llibrary           | 1.7.20                  | llibrary-1.7.20-1.12.2.jar                            | None                                     |     | L     | mowziesmobs        | 1.5.8                   | mowziesmobs-1.5.8.jar                                 | None                                     |     | L     | nocubessrparmory   | 3.0.0                   | NoCubes_SRP_Combat_Addon_3.0.0.jar                    | None                                     |     | L     | nocubessrpnests    | 3.0.0                   | NoCubes_SRP_Nests_Addon_3.0.0.jar                     | None                                     |     | L     | nocubessrpsurvival | 3.0.0                   | NoCubes_SRP_Survival_Addon_3.0.0.jar                  | None                                     |     | L     | nocubesrptweaks    | V4.1                    | nocubesrptweaks-V4.1.jar                              | None                                     |     | L     | patchouli          | 1.0-23.6                | Patchouli-1.0-23.6.jar                                | None                                     |     | L     | artifacts          | 1.1.2                   | RLArtifacts-1.1.2.jar                                 | None                                     |     | L     | rsgauges           | 1.2.8                   | rsgauges-1.12.2-1.2.8.jar                             | None                                     |     | L     | rustic             | 1.1.7                   | rustic-1.1.7.jar                                      | None                                     |     | L     | silentlib          | 3.0.13                  | SilentLib-1.12.2-3.0.14+168.jar                       | None                                     |     | L     | scalinghealth      | 1.3.37                  | ScalingHealth-1.12.2-1.3.42+147.jar                   | None                                     |     | L     | lteleporters       | 1.12.2-3.0.2            | simpleteleporters-1.12.2-3.0.2.jar                    | None                                     |     | L     | spartanshields     | 1.5.5                   | SpartanShields-1.12.2-1.5.5.jar                       | None                                     |     | L     | spartanweaponry    | 1.5.3                   | SpartanWeaponry-1.12.2-1.5.3.jar                      | None                                     |     | L     | srparasites        | 1.9.18                  | SRParasites-1.12.2v1.9.18.jar                         | None                                     |     | L     | treasure2          | 2.2.0                   | Treasure2-mc1.12.2-f14.23.5.2859-v2.2.1.jar           | None                                     |     | L     | treeharvester      | 4.0                     | treeharvester_1.12.2-4.0.jar                          | None                                     |     | L     | twilightforest     | 3.11.1021               | twilightforest-1.12.2-3.11.1021-universal.jar         | None                                     |     | L     | variedcommodities  | 1.12.2                  | VariedCommodities_1.12.2-(31Mar23).jar                | None                                     |     | L     | voicechat          | 1.12.2-2.4.32           | voicechat-forge-1.12.2-2.4.32.jar                     | None                                     |     | L     | wolfarmor          | 3.8.0                   | WolfArmorAndStorage-1.12.2-3.8.0-universal-signed.jar | None                                     |     | L     | worldborder        | 2.3                     | worldborder_1.12.2-2.3.jar                            | None                                     |     | L     | midnight           | 0.3.5                   | themidnight-0.3.5.jar                                 | None                                     |     | L     | structurize        | 1.12.2-0.10.277-RELEASE | structurize-1.12.2-0.10.277-RELEASE.jar               | None                                     |     Loaded coremods (and transformers):  llibrary (llibrary-core-1.0.11-1.12.2.jar)   net.ilexiconn.llibrary.server.core.plugin.LLibraryTransformer   net.ilexiconn.llibrary.server.core.patcher.LLibraryRuntimePatcher WolfArmorCore (WolfArmorAndStorage-1.12.2-3.8.0-universal-signed.jar)    AstralCore (astralsorcery-1.12.2-1.10.27.jar)    CreativePatchingLoader (CreativeCore_v1.10.71_mc1.12.2.jar)    SecurityCraftLoadingPlugin ([1.12.2] SecurityCraft v1.9.8.jar)    ForgelinPlugin (Forgelin-1.8.4.jar)    midnight (themidnight-0.3.5.jar)   com.mushroom.midnight.core.transformer.MidnightClassTransformer FutureMC (Future-MC-0.2.19.jar)   thedarkcolour.futuremc.asm.CoreTransformer SpartanWeaponry-MixinLoader (SpartanWeaponry-1.12.2-1.5.3.jar)    Backpacked (backpacked-1.4.3-1.12.2.jar)   com.mrcrayfish.backpacked.asm.BackpackedTransformer LoadingPlugin (Reskillable-1.12.2-1.13.0.jar)   codersafterdark.reskillable.base.asm.ClassTransformer LoadingPlugin (Bloodmoon-MC1.12.2-1.5.3.jar)   lumien.bloodmoon.asm.ClassTransformer     Profiler Position: N/A (disabled)     Is Modded: Definitely; Server brand changed to 'fml,forge'     Type: Dedicated Server (map_server.txt)
    • When i add mods like falling leaves, visuality and kappas shaders, even if i restart Minecraft they dont show up in the mods menu and they dont work
    • Delete the forge-client.toml file in your config folder  
  • Topics

×
×
  • Create New...

Important Information

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