All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.minecraft.server.ChatBaseComponent Maven / Gradle / Ivy

There is a newer version: 2.4.0
Show newest version
package net.minecraft.server;

import com.google.common.base.Function;
import com.google.common.collect.Iterators;
import com.google.common.collect.Lists;

import java.util.Iterator;
import java.util.List;

public abstract class ChatBaseComponent implements IChatBaseComponent {

  protected List a = Lists.newArrayList();
  private ChatModifier b;

  public ChatBaseComponent() {
  }

  public static Iterator a(Iterable iterable) {
    Iterator iterator = Iterators.concat(Iterators.transform(iterable.iterator(), new Function() {
      public Iterator a(IChatBaseComponent ichatbasecomponent) {
        return ichatbasecomponent.iterator();
      }

      public Object apply(Object object) {
        return this.a((IChatBaseComponent) object);
      }
    }));

    iterator = Iterators.transform(iterator, new Function() {
      public IChatBaseComponent a(IChatBaseComponent ichatbasecomponent) {
        IChatBaseComponent ichatbasecomponent1 = ichatbasecomponent.f();

        ichatbasecomponent1.setChatModifier(ichatbasecomponent1.getChatModifier().n());
        return ichatbasecomponent1;
      }

      public Object apply(Object object) {
        return this.a((IChatBaseComponent) object);
      }
    });
    return iterator;
  }

  public IChatBaseComponent addSibling(IChatBaseComponent ichatbasecomponent) {
    ichatbasecomponent.getChatModifier().setChatModifier(this.getChatModifier());
    this.a.add(ichatbasecomponent);
    return this;
  }

  public List a() {
    return this.a;
  }

  public IChatBaseComponent a(String s) {
    return this.addSibling(new ChatComponentText(s));
  }

  public IChatBaseComponent setChatModifier(ChatModifier chatmodifier) {
    this.b = chatmodifier;
  
    for (IChatBaseComponent ichatbasecomponent : this.a) {
      ichatbasecomponent.getChatModifier().setChatModifier(this.getChatModifier());
    }

    return this;
  }

  public ChatModifier getChatModifier() {
    if (this.b == null) {
      this.b = new ChatModifier();
  
      for (IChatBaseComponent ichatbasecomponent : this.a) {
        ichatbasecomponent.getChatModifier().setChatModifier(this.b);
      }
    }

    return this.b;
  }

  public Iterator iterator() {
    return Iterators.concat(Iterators.forArray(this), a(this.a));
  }

  public final String c() {
    StringBuilder stringbuilder = new StringBuilder();
  
    for (IChatBaseComponent ichatbasecomponent : this) {
      stringbuilder.append(ichatbasecomponent.getText());
    }

    return stringbuilder.toString();
  }

  public boolean equals(Object object) {
    if (this == object) {
      return true;
    } else if (!(object instanceof ChatBaseComponent)) {
      return false;
    } else {
      ChatBaseComponent chatbasecomponent = (ChatBaseComponent) object;

      return this.a.equals(chatbasecomponent.a) && this.getChatModifier().equals(chatbasecomponent.getChatModifier());
    }
  }

  public int hashCode() {
    return 31 * this.getChatModifier().hashCode() + this.a.hashCode(); // CraftBukkit - fix null pointer
  }

  public String toString() {
    return "BaseComponent{style=" + this.b + ", siblings=" + this.a + '}';
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy