Package com.bergerkiller.bukkit.tc.statements

Source Code of com.bergerkiller.bukkit.tc.statements.StatementType

package com.bergerkiller.bukkit.tc.statements;

import java.util.Locale;

import org.bukkit.entity.EntityType;

import com.bergerkiller.bukkit.common.conversion.Conversion;
import com.bergerkiller.bukkit.common.utils.LogicUtil;
import com.bergerkiller.bukkit.tc.Util;
import com.bergerkiller.bukkit.tc.controller.MinecartGroup;
import com.bergerkiller.bukkit.tc.controller.MinecartMember;
import com.bergerkiller.bukkit.tc.events.SignActionEvent;

public class StatementType extends Statement {

  private boolean isSize(String text) {
    return LogicUtil.contains(text, "cartcount", "trainsize", "length", "count", "size");
  }

  @Override
  public boolean match(String text) {
    return isSize(text) || Conversion.toMinecartType.convert(text) != null;
  }

  @Override
  public boolean handle(MinecartMember<?> member, String text, SignActionEvent event) {
    if (isSize(text.toLowerCase(Locale.ENGLISH))) {
      return true;
    }
    return member.getEntity().getType() == Conversion.toMinecartType.convert(text);
  }

  @Override
  public boolean handle(MinecartGroup group, String text, SignActionEvent event) {
    if (isSize(text.toLowerCase(Locale.ENGLISH))) {
      return Util.evaluate(group.size(), text);
    }
    final EntityType type = Conversion.toMinecartType.convert(text);
    if (type == null) {
      return false;
    } else {
      return Util.evaluate(group.size(type), text);
    }
  }

  @Override
  public boolean matchArray(String text) {
    return false;
  }
}
TOP

Related Classes of com.bergerkiller.bukkit.tc.statements.StatementType

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.