package net.minecraft.entity.ai.attributes; import com.google.common.collect.Sets; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Set; import net.minecraft.server.management.LowerStringMap; public class ServersideAttributeMap extends BaseAttributeMap { private final Set attributeInstanceSet = Sets.newHashSet(); protected final Map descriptionToAttributeInstanceMap = new LowerStringMap(); private static final String __OBFID = "CL_00001569"; public ModifiableAttributeInstance func_180795_e(IAttribute p_180795_1_) { return (ModifiableAttributeInstance)super.getAttributeInstance(p_180795_1_); } public ModifiableAttributeInstance func_180796_b(String p_180796_1_) { IAttributeInstance var2 = super.getAttributeInstanceByName(p_180796_1_); if (var2 == null) { var2 = (IAttributeInstance)this.descriptionToAttributeInstanceMap.get(p_180796_1_); } return (ModifiableAttributeInstance)var2; } /** * Registers an attribute with this AttributeMap, returns a modifiable AttributeInstance associated with this map */ public IAttributeInstance registerAttribute(IAttribute p_111150_1_) { IAttributeInstance var2 = super.registerAttribute(p_111150_1_); if (p_111150_1_ instanceof RangedAttribute && ((RangedAttribute)p_111150_1_).getDescription() != null) { this.descriptionToAttributeInstanceMap.put(((RangedAttribute)p_111150_1_).getDescription(), var2); } return var2; } protected IAttributeInstance func_180376_c(IAttribute p_180376_1_) { return new ModifiableAttributeInstance(this, p_180376_1_); } public void func_180794_a(IAttributeInstance p_180794_1_) { if (p_180794_1_.getAttribute().getShouldWatch()) { this.attributeInstanceSet.add(p_180794_1_); } Iterator var2 = this.field_180377_c.get(p_180794_1_.getAttribute()).iterator(); while (var2.hasNext()) { IAttribute var3 = (IAttribute)var2.next(); ModifiableAttributeInstance var4 = this.func_180795_e(var3); if (var4 != null) { var4.flagForUpdate(); } } } public Set getAttributeInstanceSet() { return this.attributeInstanceSet; } public Collection getWatchedAttributes() { HashSet var1 = Sets.newHashSet(); Iterator var2 = this.getAllAttributes().iterator(); while (var2.hasNext()) { IAttributeInstance var3 = (IAttributeInstance)var2.next(); if (var3.getAttribute().getShouldWatch()) { var1.add(var3); } } return var1; } public IAttributeInstance getAttributeInstanceByName(String p_111152_1_) { return this.func_180796_b(p_111152_1_); } public IAttributeInstance getAttributeInstance(IAttribute p_111151_1_) { return this.func_180795_e(p_111151_1_); } }