More proper fix for #1019
This commit is contained in:
parent
5bf5fd570d
commit
2ee2cc5ee6
|
@ -81,7 +81,6 @@ public class LivingArmour implements ILivingArmour
|
|||
{
|
||||
HashMultimap<String, AttributeModifier> modifierMap = HashMultimap.create();
|
||||
|
||||
int count = 0;
|
||||
for (Entry<String, LivingArmourUpgrade> entry : upgradeMap.entrySet())
|
||||
{
|
||||
LivingArmourUpgrade upgrade = entry.getValue();
|
||||
|
@ -90,35 +89,12 @@ public class LivingArmour implements ILivingArmour
|
|||
continue;
|
||||
}
|
||||
|
||||
Multimap<String, AttributeModifier> upgradeModifiers = upgrade.getAttributeModifiers();
|
||||
for (String key : upgradeModifiers.keySet())
|
||||
{
|
||||
if (modifierMap.containsKey(key))
|
||||
{
|
||||
Collection<AttributeModifier> renamed = renameModifiers(upgradeModifiers.get(key), count);
|
||||
modifierMap.get(key).addAll(renamed);
|
||||
count += renamed.size();
|
||||
} else
|
||||
modifierMap.putAll(upgradeModifiers);
|
||||
}
|
||||
modifierMap.putAll(upgrade.getAttributeModifiers());
|
||||
}
|
||||
|
||||
return modifierMap;
|
||||
}
|
||||
|
||||
private static Set<AttributeModifier> renameModifiers(Collection<AttributeModifier> modifiers, int count)
|
||||
{
|
||||
Set<AttributeModifier> newModifiers = new HashSet<AttributeModifier>();
|
||||
for (AttributeModifier modifier : modifiers)
|
||||
{
|
||||
String newName = modifier.getName().substring(0, modifier.getName().length() - 1) + count;
|
||||
newModifiers.add(new AttributeModifier(UUID.nameUUIDFromBytes(new byte[] {(byte)count}), newName, modifier.getAmount(), modifier.getOperation()));
|
||||
count++;
|
||||
}
|
||||
|
||||
return newModifiers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean upgradeArmour(EntityPlayer user, LivingArmourUpgrade upgrade)
|
||||
{
|
||||
|
|
|
@ -36,7 +36,7 @@ public class LivingArmourUpgradeMeleeDecrease extends LivingArmourUpgrade
|
|||
{
|
||||
Multimap<String, AttributeModifier> modifierMap = HashMultimap.<String, AttributeModifier>create();
|
||||
|
||||
modifierMap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(new UUID(0271023, 5321), "damage modifier" + 2, meleeDamage[this.level], 1));
|
||||
modifierMap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(new UUID(0271023, 5321), getUniqueIdentifier() + "-DamageModifier" + 2, meleeDamage[this.level], 1));
|
||||
|
||||
return modifierMap;
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ public class LivingArmourUpgradeSlowness extends LivingArmourUpgrade
|
|||
{
|
||||
Multimap<String, AttributeModifier> modifierMap = HashMultimap.<String, AttributeModifier>create();
|
||||
|
||||
modifierMap.put(SharedMonsterAttributes.MOVEMENT_SPEED.getName(), new AttributeModifier(new UUID(85472, 8502), "speed modifier" + 2, speedModifier[this.level], 1));
|
||||
modifierMap.put(SharedMonsterAttributes.MOVEMENT_SPEED.getName(), new AttributeModifier(new UUID(85472, 8502), getUniqueIdentifier() + "-SpeedModifier" + 1, speedModifier[this.level], 1));
|
||||
|
||||
return modifierMap;
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import net.minecraft.entity.ai.attributes.AttributeModifier;
|
|||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.world.World;
|
||||
import org.apache.commons.codec.binary.StringUtils;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -34,7 +35,8 @@ public class LivingArmourUpgradeHealthboost extends LivingArmourUpgrade
|
|||
{
|
||||
Multimap<String, AttributeModifier> modifierMap = HashMultimap.<String, AttributeModifier>create();
|
||||
|
||||
modifierMap.put(SharedMonsterAttributes.MAX_HEALTH.getName(), new AttributeModifier(new UUID(9423688, 1), "Health modifier" + 1, healthModifier[this.level], 0));
|
||||
String name = getUniqueIdentifier() + "-HealthModifier1";
|
||||
modifierMap.put(SharedMonsterAttributes.MAX_HEALTH.getName(), new AttributeModifier(UUID.nameUUIDFromBytes(StringUtils.getBytesUtf8(name)), "HealthModifier1", healthModifier[this.level], 0));
|
||||
|
||||
return modifierMap;
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import com.google.common.collect.Multimap;
|
|||
import net.minecraft.entity.SharedMonsterAttributes;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifier;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import org.apache.commons.codec.binary.StringUtils;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -26,11 +27,13 @@ public class LivingArmourUpgradeKnockbackResist extends LivingArmourUpgrade
|
|||
{
|
||||
Multimap<String, AttributeModifier> modifierMap = HashMultimap.<String, AttributeModifier>create();
|
||||
|
||||
modifierMap.put(SharedMonsterAttributes.KNOCKBACK_RESISTANCE.getName(), new AttributeModifier(new UUID(895132, 1), "Knockback modifier" + 1, kbModifier[this.level], 0));
|
||||
String name = getUniqueIdentifier() + "-KnockbackModifier1";
|
||||
modifierMap.put(SharedMonsterAttributes.KNOCKBACK_RESISTANCE.getName(), new AttributeModifier(UUID.nameUUIDFromBytes(StringUtils.getBytesUtf8(name)), "KnockbackModifier1", kbModifier[this.level], 0));
|
||||
|
||||
if (healthModifier[this.level] > 0)
|
||||
{
|
||||
modifierMap.put(SharedMonsterAttributes.MAX_HEALTH.getName(), new AttributeModifier(new UUID(952142, 1), "Health modifier" + 1, healthModifier[this.level], 0));
|
||||
name = getUniqueIdentifier() + "-HealthModifier1";
|
||||
modifierMap.put(SharedMonsterAttributes.MAX_HEALTH.getName(), new AttributeModifier(UUID.nameUUIDFromBytes(StringUtils.getBytesUtf8(name)), "HealthModifier1", healthModifier[this.level], 0));
|
||||
}
|
||||
|
||||
return modifierMap;
|
||||
|
|
|
@ -10,6 +10,7 @@ import net.minecraft.entity.ai.attributes.AttributeModifier;
|
|||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.world.World;
|
||||
import org.apache.commons.codec.binary.StringUtils;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -34,7 +35,8 @@ public class LivingArmourUpgradeMeleeDamage extends LivingArmourUpgrade
|
|||
{
|
||||
Multimap<String, AttributeModifier> modifierMap = HashMultimap.<String, AttributeModifier>create();
|
||||
|
||||
modifierMap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(new UUID(9423688, 1), "damage modifier" + 1, meleeDamage[this.level], 0));
|
||||
String name = getUniqueIdentifier() + "-DamageModifier1";
|
||||
modifierMap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(UUID.nameUUIDFromBytes(StringUtils.getBytesUtf8(name)), "DamageModifier1", meleeDamage[this.level], 0));
|
||||
|
||||
return modifierMap;
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade;
|
|||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import org.apache.commons.codec.binary.StringUtils;
|
||||
|
||||
public class LivingArmourUpgradeSpeed extends LivingArmourUpgrade
|
||||
{
|
||||
|
@ -61,7 +62,8 @@ public class LivingArmourUpgradeSpeed extends LivingArmourUpgrade
|
|||
|
||||
if (healthModifier[this.level] > 0)
|
||||
{
|
||||
modifierMap.put(SharedMonsterAttributes.MAX_HEALTH.getName(), new AttributeModifier(new UUID(952142, 1), "Health modifier" + 1, healthModifier[this.level], 0));
|
||||
String name = getUniqueIdentifier() + "-HealthModifier1";
|
||||
modifierMap.put(SharedMonsterAttributes.MAX_HEALTH.getName(), new AttributeModifier(UUID.nameUUIDFromBytes(StringUtils.getBytesUtf8(name)), "HealthModifier1", healthModifier[this.level], 0));
|
||||
}
|
||||
|
||||
return modifierMap;
|
||||
|
|
Loading…
Reference in a new issue