java类org.bukkit.inventory.meta.BannerMeta的实例源码

ItemBuilder.java 文件源码 项目:SupaCommons 阅读 22 收藏 0 点赞 0 评论 0
/**
 * Adds a {@link Pattern} to a specific index to this banner, assuming it is a banner.
 * <p />
 * <b>UNSAFE</b>
 *
 * @param index index to set
 * @param pattern pattern to add
 *
 * @return this item builder instance, for chaining
 */
public ItemBuilder bannerSet(int index, Pattern pattern) {
  if (isBannerMeta()) {
    try {
      ((BannerMeta) this.itemMeta).setPattern(index, pattern);
    } catch (Exception e) {
      if (!this.failSilently) {
        e.printStackTrace();
      }
    }
  }
  return this;
}
ItemBuilder.java 文件源码 项目:SupaCommons 阅读 27 收藏 0 点赞 0 评论 0
/**
 * Sets this banner's patterns, assuming it is a banner.
 * <p />
 * <b>UNSAFE</b>
 *
 * @param patterns patterns to set
 *
 * @return this item builder instance, for chaining
 */
public ItemBuilder bannerSet(List<Pattern> patterns) {
  if (isBannerMeta()) {
    try {
      ((BannerMeta) this.itemMeta).setPatterns(patterns);
    } catch (Exception e) {
      if (!this.failSilently) {
        e.printStackTrace();
      }
    }
  }
  return this;
}
ItemBuilder.java 文件源码 项目:SupaCommons 阅读 20 收藏 0 点赞 0 评论 0
/**
 * Removes a pattern by index from this banner, assuming it is a banner.
 * <p />
 * <b>UNSAFE</b>
 *
 * @param index index of pattern to remove
 *
 * @return this item builder instance, for chaining
 */
public ItemBuilder bannerRemove(int index) {
  if (isBannerMeta()) {
    try {
      ((BannerMeta) this.itemMeta).removePattern(index);
    } catch (Exception e) {
      if (!this.failSilently) {
        e.printStackTrace();
      }
    }
  }
  return this;
}
ItemBuilder.java 文件源码 项目:SupaCommons 阅读 24 收藏 0 点赞 0 评论 0
private boolean isBannerMeta() {
  if (!(this.itemMeta instanceof BannerMeta)) {
    if (!this.failSilently) {
      throw new IllegalStateException("ItemMeta is not of BannerMeta.");
    }
    return false;
  }
  return true;
}
BannerUtils.java 文件源码 项目:NovaGuilds 阅读 33 收藏 0 点赞 0 评论 0
/**
 * Gets random banner meta
 *
 * @return banner meta
 */
public static BannerMeta getRandomMeta() {
    if(ConfigManager.getServerVersion().isOlderThan(ConfigManager.ServerVersion.MINECRAFT_1_8_R2)) {
        return null;
    }

    BannerMeta meta = (BannerMeta) Bukkit.getItemFactory().getItemMeta(Material.BANNER);
    meta.setBaseColor(randomDyeColor());

    for(int i = NumberUtils.randInt(0, PatternType.values().length) + 2; i > 0; i--) {
        meta.addPattern(new Pattern(randomDyeColor(), randomPatternType()));
    }

    return meta;
}
BannerUtils.java 文件源码 项目:NovaGuilds 阅读 25 收藏 0 点赞 0 评论 0
/**
 * Deserializes a string to banner meta
 *
 * @param string serialized meta
 * @return banner meta
 */
public static BannerMeta deserialize(String string) {
    if(ConfigManager.getServerVersion().isOlderThan(ConfigManager.ServerVersion.MINECRAFT_1_8_R2)) {
        return null;
    }

    return getSerializer().deserialize(string);
}
BannerUtils.java 文件源码 项目:NovaGuilds 阅读 24 收藏 0 点赞 0 评论 0
/**
 * Serializes banner meta into a string
 *
 * @param bannerMeta banner meta
 * @return serialized meta
 */
public static String serialize(BannerMeta bannerMeta) {
    if(ConfigManager.getServerVersion().isOlderThan(ConfigManager.ServerVersion.MINECRAFT_1_8_R2)) {
        return "";
    }

    return getSerializer().serialize(bannerMeta);
}
BannerUtils.java 文件源码 项目:NovaGuilds 阅读 31 收藏 0 点赞 0 评论 0
/**
 * Applies meta to a shield
 *
 * @param itemStack  shield item
 * @param bannerMeta banner meta
 * @return shield item
 */
public static ItemStack applyMeta(ItemStack itemStack, BannerMeta bannerMeta) {
    if(itemStack.getType() != Material.SHIELD && itemStack.getType() != Material.BANNER) {
        throw new IllegalArgumentException("Passed ItemStack is not a shield nor a banner");
    }

    ItemMeta meta = itemStack.getItemMeta();
    BlockStateMeta blockStateMeta = (BlockStateMeta) meta;
    Banner banner = (Banner) blockStateMeta.getBlockState();
    applyMeta(banner, bannerMeta);
    banner.update();
    blockStateMeta.setBlockState(banner);
    itemStack.setItemMeta(blockStateMeta);
    return itemStack;
}
BannerUtils.java 文件源码 项目:NovaGuilds 阅读 28 收藏 0 点赞 0 评论 0
/**
 * Turns a banner into banner meta
 *
 * @param banner banner block
 * @return banner meta
 */
public static BannerMeta getBannerMeta(Banner banner) {
    if(ConfigManager.getServerVersion().isOlderThan(ConfigManager.ServerVersion.MINECRAFT_1_8_R2)) {
        return null;
    }

    BannerMeta meta = (BannerMeta) Bukkit.getItemFactory().getItemMeta(Material.BANNER);

    meta.setBaseColor(banner.getBaseColor());
    for(Pattern pattern : banner.getPatterns()) {
        meta.addPattern(pattern);
    }

    return meta;
}
BannerMetaSerializerImpl.java 文件源码 项目:NovaGuilds 阅读 22 收藏 0 点赞 0 评论 0
@Override
public String serialize(BannerMeta bannerMeta) {
    if(bannerMeta == null) {
        return "";
    }

    StringBuilder builder = new StringBuilder();

    builder.append((bannerMeta.getBaseColor() == null ? DyeColor.BLACK : bannerMeta.getBaseColor()).name());

    if(bannerMeta.numberOfPatterns() > 0) {
        builder.append(':');
    }

    int index = 1;
    for(Pattern pattern : bannerMeta.getPatterns()) {
        builder.append(pattern.getColor().name());
        builder.append('-');
        builder.append(pattern.getPattern().getIdentifier());

        if(index < bannerMeta.numberOfPatterns()) {
            builder.append("|");
        }

        index++;
    }

    return builder.toString();
}


问题


面经


文章

微信
公众号

扫码关注公众号