Package nallar.patched.nbt

Source Code of nallar.patched.nbt.PatchNBTTagCompound

package nallar.patched.nbt;

import nallar.tickthreading.patcher.Declare;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagByte;
import net.minecraft.nbt.NBTTagByteArray;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagDouble;
import net.minecraft.nbt.NBTTagFloat;
import net.minecraft.nbt.NBTTagInt;
import net.minecraft.nbt.NBTTagIntArray;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagLong;
import net.minecraft.nbt.NBTTagShort;
import net.minecraft.nbt.NBTTagString;
import net.minecraft.util.ReportedException;

import java.util.*;

public abstract class PatchNBTTagCompound extends NBTTagCompound {
  @Override
  public NBTBase copy() {
    NBTTagCompound var1 = new NBTTagCompound(getName());

    synchronized (tagMap) {
      for (Map.Entry<String, NBTBase> o : ((Map<String, NBTBase>) tagMap).entrySet()) {
        var1.setTag(o.getKey(), o.getValue().copy());
      }
    }

    return var1;
  }

  @Override
  public byte getByte(String tag) {
    try {
      NBTTagByte nbtTagByte = (NBTTagByte) tagMap.get(tag);
      return nbtTagByte == null ? 0 : nbtTagByte.data;
    } catch (ClassCastException e) {
      throw new ReportedException(createCrashReport(tag, 1, e));
    }
  }

  @Override
  public short getShort(String tag) {
    try {
      NBTTagShort nbtTagShort = (NBTTagShort) tagMap.get(tag);
      return nbtTagShort == null ? 0 : nbtTagShort.data;
    } catch (ClassCastException e) {
      throw new ReportedException(createCrashReport(tag, 2, e));
    }
  }

  @Override
  public int getInteger(String tag) {
    try {
      NBTTagInt nbtTagInt = (NBTTagInt) tagMap.get(tag);
      return nbtTagInt == null ? 0 : nbtTagInt.data;
    } catch (ClassCastException e) {
      throw new ReportedException(createCrashReport(tag, 3, e));
    }
  }

  @Override
  public long getLong(String tag) {
    try {
      NBTTagLong nbtTagLong = (NBTTagLong) tagMap.get(tag);
      return nbtTagLong == null ? 0 : nbtTagLong.data;
    } catch (ClassCastException e) {
      throw new ReportedException(createCrashReport(tag, 4, e));
    }
  }

  @Override
  public float getFloat(String tag) {
    try {
      NBTTagFloat nbtTagFloat = (NBTTagFloat) tagMap.get(tag);
      return nbtTagFloat == null ? 0 : nbtTagFloat.data;
    } catch (ClassCastException e) {
      throw new ReportedException(createCrashReport(tag, 5, e));
    }
  }

  @Override
  public double getDouble(String tag) {
    try {
      NBTTagDouble nbtTagDouble = (NBTTagDouble) tagMap.get(tag);
      return nbtTagDouble == null ? 0 : nbtTagDouble.data;
    } catch (ClassCastException e) {
      throw new ReportedException(createCrashReport(tag, 6, e));
    }
  }

  @Override
  public String getString(String tag) {
    try {
      NBTTagString nbtTagString = (NBTTagString) tagMap.get(tag);
      return nbtTagString == null ? "" : nbtTagString.data;
    } catch (ClassCastException e) {
      throw new ReportedException(createCrashReport(tag, 8, e));
    }
  }

  @Override
  public byte[] getByteArray(String tag) {
    try {
      NBTTagByteArray nbtTagByteArray = (NBTTagByteArray) tagMap.get(tag);
      return nbtTagByteArray == null ? new byte[0] : nbtTagByteArray.byteArray;
    } catch (ClassCastException e) {
      throw new ReportedException(createCrashReport(tag, 7, e));
    }
  }

  @Override
  public int[] getIntArray(String tag) {
    try {
      NBTTagIntArray nbtTagIntArray = (NBTTagIntArray) tagMap.get(tag);
      return nbtTagIntArray == null ? new int[0] : nbtTagIntArray.intArray;
    } catch (ClassCastException e) {
      throw new ReportedException(createCrashReport(tag, 11, e));
    }
  }

  @Override
  public NBTTagCompound getCompoundTag(String tag) {
    try {
      NBTTagCompound nbtTagCompound = (NBTTagCompound) tagMap.get(tag);
      return nbtTagCompound == null ? new NBTTagCompound(tag) : nbtTagCompound;
    } catch (ClassCastException e) {
      throw new ReportedException(createCrashReport(tag, 10, e));
    }
  }

  @Override
  public NBTTagList getTagList(String tag) {
    try {
      NBTTagList nbtTagList = (NBTTagList) tagMap.get(tag);
      return nbtTagList == null ? new NBTTagList(tag) : nbtTagList;
    } catch (ClassCastException e) {
      throw new ReportedException(createCrashReport(tag, 9, e));
    }
  }

  @Override
  @Declare
  public Map getTagMap() {
    return tagMap;
  }

  @Override
  public boolean equals(Object o) {
    if (o == this) {
      return true;
    } else if (o instanceof NBTTagCompound) {
      NBTTagCompound other = (NBTTagCompound) o;
      String name;
      if (getId() == other.getId() && ((name = getRawName()) == null || name.equals(other.getRawName()))) {
        Map map = tagMap;
        Map otherMap = other.getTagMap();
        if (map == otherMap) {
          return true;
        } else if (map.size() == otherMap.size()) {
          synchronized (map) {
            for (Map.Entry entry : (Iterable<Map.Entry>) map.entrySet()) {
              Object value = entry.getValue();
              Object otherValue = otherMap.get(entry.getKey());
              if (!(value == otherValue || (value != null && value.equals(otherValue)))) {
                return false;
              }
            }
          }
          return true;
        }
      }
    }
    return false;
  }
}
TOP

Related Classes of nallar.patched.nbt.PatchNBTTagCompound

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.