类org.bukkit.block.banner.Pattern源码实例Demo

下面列出了怎么用org.bukkit.block.banner.Pattern的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: TrMenu   文件: Dyer.java
/**
 * @author Bkm016
 */
public static void setBanner(BannerMeta itemMeta, List<String> patterns) {
    patterns.forEach(pattern -> {
        String[] type = pattern.split(" ");
        if (type.length == 1) {
            try {
                itemMeta.setBaseColor(DyeColor.valueOf(type[0].toUpperCase()));
            } catch (Exception ignored) {
                itemMeta.setBaseColor(DyeColor.BLACK);
            }
        } else if (type.length == 2) {
            try {
                itemMeta.addPattern(new Pattern(DyeColor.valueOf(type[0].toUpperCase()), PatternType.valueOf(type[1].toUpperCase())));
            } catch (Exception e) {
                itemMeta.addPattern(new Pattern(DyeColor.BLACK, PatternType.BASE));
            }
        }
    });
}
 
源代码2 项目: Kettle   文件: CraftBanner.java
@Override
public void applyTo(TileEntityBanner banner) {
    super.applyTo(banner);

    banner.baseColor = EnumDyeColor.byDyeDamage(base.getDyeData());

    NBTTagList newPatterns = new NBTTagList();

    for (Pattern p : patterns) {
        NBTTagCompound compound = new NBTTagCompound();
        compound.setInteger("Color", p.getColor().getDyeData());
        compound.setString("Pattern", p.getPattern().getIdentifier());
        newPatterns.appendTag(compound);
    }
    banner.patterns = newPatterns;
}
 
源代码3 项目: Kettle   文件: CraftMetaBanner.java
CraftMetaBanner(NBTTagCompound tag) {
    super(tag);

    if (!tag.hasKey("BlockEntityTag")) {
        return;
    }

    NBTTagCompound entityTag = tag.getCompoundTag("BlockEntityTag");

    base = entityTag.hasKey(BASE.NBT) ? DyeColor.getByDyeData((byte) entityTag.getInteger(BASE.NBT)) : null;

    if (entityTag.hasKey(PATTERNS.NBT)) {
        NBTTagList patterns = entityTag.getTagList(PATTERNS.NBT, CraftMagicNumbers.NBT.TAG_COMPOUND);
        for (int i = 0; i < Math.min(patterns.tagCount(), 20); i++) {
            NBTTagCompound p = patterns.getCompoundTagAt(i);
            this.patterns.add(new Pattern(DyeColor.getByDyeData((byte) p.getInteger(COLOR.NBT)), PatternType.getByIdentifier(p.getString(PATTERN.NBT))));
        }
    }
}
 
源代码4 项目: Kettle   文件: CraftMetaBanner.java
CraftMetaBanner(Map<String, Object> map) {
    super(map);

    String baseStr = SerializableMeta.getString(map, BASE.BUKKIT, true);
    if (baseStr != null) {
        base = DyeColor.valueOf(baseStr);
    }

    Iterable<?> rawPatternList = SerializableMeta.getObject(Iterable.class, map, PATTERNS.BUKKIT, true);
    if (rawPatternList == null) {
        return;
    }

    for (Object obj : rawPatternList) {
        if (!(obj instanceof Pattern)) {
            throw new IllegalArgumentException("Object in pattern list is not valid. " + obj.getClass());
        }
        addPattern((Pattern) obj);
    }
}
 
源代码5 项目: Kettle   文件: CraftMetaBanner.java
@Override
void applyToItem(NBTTagCompound tag) {
    super.applyToItem(tag);

    NBTTagCompound entityTag = new NBTTagCompound();
    if (base != null) {
        entityTag.setInteger(BASE.NBT, base.getDyeData());
    }

    NBTTagList newPatterns = new NBTTagList();

    for (Pattern p : patterns) {
        NBTTagCompound compound = new NBTTagCompound();
        compound.setInteger(COLOR.NBT, p.getColor().getDyeData());
        compound.setString(PATTERN.NBT, p.getPattern().getIdentifier());
        newPatterns.appendTag(compound);
    }
    entityTag.setTag(PATTERNS.NBT, newPatterns);

    tag.setTag("BlockEntityTag", entityTag);
}
 
源代码6 项目: Crazy-Crates   文件: ItemBuilder.java
public ItemBuilder addPattern(String stringPattern) {
    try {
        String[] split = stringPattern.split(":");
        for (PatternType pattern : PatternType.values()) {
            if (split[0].equalsIgnoreCase(pattern.name()) || split[0].equalsIgnoreCase(pattern.getIdentifier())) {
                DyeColor color = getDyeColor(split[1]);
                if (color != null) {
                    addPattern(new Pattern(color, pattern));
                }
                break;
            }
        }
    } catch (Exception e) {
    }
    return this;
}
 
源代码7 项目: Kettle   文件: CraftBanner.java
@Override
public void load(TileEntityBanner banner) {
    super.load(banner);

    base = DyeColor.getByDyeData((byte) banner.baseColor.getDyeDamage());
    patterns = new ArrayList<Pattern>();

    if (banner.patterns != null) {
        for (int i = 0; i < banner.patterns.tagCount(); i++) {
            NBTTagCompound p = (NBTTagCompound) banner.patterns.get(i);
            patterns.add(new Pattern(DyeColor.getByDyeData((byte) p.getInteger("Color")), PatternType.getByIdentifier(p.getString("Pattern"))));
        }
    }
}
 
源代码8 项目: Kettle   文件: CraftMetaBanner.java
CraftMetaBanner(CraftMetaItem meta) {
    super(meta);

    if (!(meta instanceof CraftMetaBanner)) {
        return;
    }

    CraftMetaBanner banner = (CraftMetaBanner) meta;
    base = banner.base;
    patterns = new ArrayList<Pattern>(banner.patterns);
}
 
源代码9 项目: Chimera   文件: BannerBuilderTest.java
@Test
void pattern() {
    var first = new Pattern(RED, BORDER);
    var second = new Pattern(RED, FLOWER);
    
    BannerBuilder.of(WATER).self().patterns(first).patterns(Set.of(second));
    
    verify(meta).addPattern(first);
    verify(meta).addPattern(second);
}
 
源代码10 项目: PerWorldInventory   文件: DeprecatedMethodUtil.java
/**
 * A method to deserialize a BannerMeta object from a JSONObject. This method assumes that the JSONArrays containing
 * the colors and pattern types are the same length.
 *
 * @param json The JSONObject of the BannerMeta to deserialize
 * @return The BannerMeta
 */
public static BannerMeta getBannerMeta(JsonObject json) {
    BannerMeta dummy = (BannerMeta) new ItemStack(Material.BANNER).getItemMeta();
    if (json.has("base-color"))
        dummy.setBaseColor(DyeColor.getByDyeData(Byte.parseByte("" + json.get("base-color"))));

    JsonArray colors = json.getAsJsonArray("colors");
    JsonArray patternTypes = json.getAsJsonArray("pattern-types");
    for (int i = 0; i < colors.size() - 1; i++) {
        dummy.addPattern(new Pattern(DyeColor.getByDyeData(Integer.valueOf(colors.get(i).getAsInt()).byteValue()),
                PatternType.getByIdentifier(patternTypes.get(i).getAsString())));
    }

    return dummy;
}
 
源代码11 项目: NovaGuilds   文件: BannerUtils.java
/**
 * 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(CompatibilityUtils.Mat.WHITE_BANNER.get());
	meta.setBaseColor(randomDyeColor());

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

	return meta;
}
 
源代码12 项目: NovaGuilds   文件: BannerUtils.java
/**
 * 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(CompatibilityUtils.Mat.WHITE_BANNER.get());

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

	return meta;
}
 
源代码13 项目: NovaGuilds   文件: BannerMetaSerializerImpl.java
@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();
}
 
源代码14 项目: PerWorldInventory   文件: DeprecatedMethodUtil.java
/**
 * A method to deserialize a BannerMeta object from a JSONObject. This method assumes that the JSONArrays containing
 * the colors and pattern types are the same length.
 *
 * @param json The JSONObject of the BannerMeta to deserialize
 * @return The BannerMeta
 */
public static BannerMeta getBannerMeta(JsonObject json) {
    BannerMeta dummy = (BannerMeta) new ItemStack(Material.BANNER).getItemMeta();
    if (json.has("base-color"))
        dummy.setBaseColor(DyeColor.getByDyeData(Byte.parseByte("" + json.get("base-color"))));

    JsonArray colors = json.getAsJsonArray("colors");
    JsonArray patternTypes = json.getAsJsonArray("pattern-types");
    for (int i = 0; i < colors.size() - 1; i++) {
        dummy.addPattern(new Pattern(DyeColor.getByDyeData(Integer.valueOf(colors.get(i).getAsInt()).byteValue()),
                PatternType.getByIdentifier(patternTypes.get(i).getAsString())));
    }

    return dummy;
}
 
源代码15 项目: ChestCommands   文件: ItemUtils.java
public static List<Pattern> parseBannerPatternList(List<String> input) throws FormatException {
	List<Pattern> patterns = new ArrayList<Pattern>();
	for (String str : input) {
		String[] split = str.split(":");
		if (split.length != 2) {
			throw new FormatException("it must be in the format \"pattern:color\".");
		}
		try {
			patterns.add(new Pattern(parseDyeColor(split[1]), PatternType.valueOf(split[0].toUpperCase())));
		} catch (IllegalArgumentException e) {
			throw new FormatException("it must be a valid pattern type.");
		}
	}
	return patterns;
}
 
源代码16 项目: Kettle   文件: CraftBanner.java
@Override
public List<Pattern> getPatterns() {
    return new ArrayList<Pattern>(patterns);
}
 
源代码17 项目: Kettle   文件: CraftBanner.java
@Override
public void setPatterns(List<Pattern> patterns) {
    this.patterns = new ArrayList<Pattern>(patterns);
}
 
源代码18 项目: Kettle   文件: CraftBanner.java
@Override
public void addPattern(Pattern pattern) {
    this.patterns.add(pattern);
}
 
源代码19 项目: Kettle   文件: CraftBanner.java
@Override
public Pattern getPattern(int i) {
    return this.patterns.get(i);
}
 
源代码20 项目: Kettle   文件: CraftBanner.java
@Override
public Pattern removePattern(int i) {
    return this.patterns.remove(i);
}
 
源代码21 项目: Kettle   文件: CraftBanner.java
@Override
public void setPattern(int i, Pattern pattern) {
    this.patterns.set(i, pattern);
}
 
源代码22 项目: Kettle   文件: CraftMetaBanner.java
@Override
public List<Pattern> getPatterns() {
    return new ArrayList<Pattern>(patterns);
}
 
源代码23 项目: Kettle   文件: CraftMetaBanner.java
@Override
public void setPatterns(List<Pattern> patterns) {
    this.patterns = new ArrayList<Pattern>(patterns);
}
 
源代码24 项目: Kettle   文件: CraftMetaBanner.java
@Override
public void addPattern(Pattern pattern) {
    patterns.add(pattern);
}
 
源代码25 项目: Kettle   文件: CraftMetaBanner.java
@Override
public Pattern getPattern(int i) {
    return patterns.get(i);
}
 
源代码26 项目: Kettle   文件: CraftMetaBanner.java
@Override
public Pattern removePattern(int i) {
    return patterns.remove(i);
}
 
源代码27 项目: Kettle   文件: CraftMetaBanner.java
@Override
public void setPattern(int i, Pattern pattern) {
    patterns.set(i, pattern);
}
 
源代码28 项目: TabooLib   文件: ItemBuilder.java
public ItemBuilder banner(Pattern... patterns) {
    if (itemMeta instanceof BannerMeta) {
        java.util.Arrays.stream(patterns).forEach(pattern -> ((BannerMeta) itemMeta).addPattern(pattern));
    }
    return this;
}
 
源代码29 项目: Crazy-Crates   文件: ItemBuilder.java
public List<Pattern> getPatterns() {
    return patterns;
}
 
源代码30 项目: Crazy-Crates   文件: ItemBuilder.java
public ItemBuilder addPattern(Pattern pattern) {
    patterns.add(pattern);
    return this;
}
 
 类所在包
 同包方法