org.bukkit.Material#matchMaterial ( )源码实例Demo

下面列出了org.bukkit.Material#matchMaterial ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: HoloAPI   文件: TagFormatter.java
public ItemStack matchItem(String content) {
    Matcher matcher = Pattern.compile("%item:([0-9]+)(?:,([0-9]+))?%").matcher(content);
    while (matcher.find()) {
        try {
            int id = Integer.parseInt(matcher.group(1));
            int durability = matcher.group(2) == null ? 0 : Integer.parseInt(matcher.group(2));
            return new ItemStack(id, 1, (short) durability);
        } catch (NumberFormatException ignored) {
        }
    }
    Matcher matcherStr = Pattern.compile("%item:([^0-9%]+)%").matcher(content);
    while (matcherStr.find()) {
        Material m = Material.matchMaterial(matcherStr.group(1));
        if (m != null) {
            return new ItemStack(m);
        }
    }
    return null;
}
 
源代码2 项目: iDisguise   文件: ItemDisguise.java
public void setMaterial(String paramMaterial) {
	Material material = Material.matchMaterial(paramMaterial.replace('-', '_'));
	if(material != null) {
		setMaterial(material);
		return;
	} else if(paramMaterial.contains(":")) {
		String[] s = paramMaterial.split(":", 2);
		material = Material.matchMaterial(s[0].replace('-', '_'));
		if(material != null) {
			try {
				short durability = Short.parseShort(s[1]);
				setMaterial(material);
				setDurability(durability);
				return;
			} catch(NumberFormatException e) {
				throw new IllegalArgumentException("Invalid data value!");
			}
		}
	}
	throw new IllegalArgumentException("Unknown argument!");
}
 
源代码3 项目: CombatLogX   文件: NoEntryHandler.java
public Material getForceFieldMaterial() {
    String materialString = getForceFieldMaterialString();

    int minorVersion = VersionUtil.getMinorVersion();
    if(minorVersion >= 13) {
        try {
            Class<?> classMaterial = Class.forName("org.bukkit.Material");
            Method method_matchMaterial = classMaterial.getDeclaredMethod("matchMaterial", String.class, Boolean.TYPE);
            return (Material) method_matchMaterial.invoke(null, materialString, false);
        } catch(ReflectiveOperationException ex) {
            return Material.matchMaterial(materialString);
        }
    }

    if(materialString.contains(":")) {
        String[] split = materialString.split(Pattern.quote(":"));
        materialString = split[0];
    }

    return Material.matchMaterial(materialString);
}
 
源代码4 项目: CardinalPGM   文件: ItemKeepBuilder.java
@Override
public ModuleCollection<ItemKeep> load(Match match) {
    ModuleCollection<ItemKeep> results = new ModuleCollection<>();
    for (Element itemKeep : match.getDocument().getRootElement().getChildren("itemkeep")) {
        for (Element item : itemKeep.getChildren("item")) {
            Material material;
            int damageValue = 0;
            if (item.getText().contains(":")) {
                material = Material.matchMaterial(item.getText().split(":")[0]);
                damageValue = Numbers.parseInt(item.getText().split(":")[1]);
            } else {
                material = Material.matchMaterial(item.getText());
            }
            if (item.getAttributeValue("damage") != null) {
                damageValue = Numbers.parseInt(item.getAttributeValue("damage"));
            }
            results.add(new ItemKeep(material, damageValue));
        }
    }

    return results;
}
 
源代码5 项目: FastAsyncWorldedit   文件: VoxelVoxelCommand.java
public boolean onCommand(Player player, String[] args) {
    Sniper sniper = this.plugin.getSniperManager().getSniperForPlayer(player);
    SnipeData snipeData = sniper.getSnipeData(sniper.getCurrentToolId());
    if(args.length == 0) {
        Block material1 = (new RangeBlockHelper(player, player.getWorld())).getTargetBlock();
        if(material1 != null) {
            if(!player.hasPermission("voxelsniper.ignorelimitations") && this.plugin.getVoxelSniperConfiguration().getLiteSniperRestrictedItems().contains(Integer.valueOf(material1.getTypeId()))) {
                player.sendMessage("You are not allowed to use " + material1.getType().name() + ".");
                return true;
            }

            snipeData.setVoxelId(material1.getTypeId());
            snipeData.getVoxelMessage().voxel();
            snipeData.setPattern(null, null);
        }

        return true;
    } else {
        Material material = Material.matchMaterial(args[0]);
        if(material != null && material.isBlock()) {
            if(!player.hasPermission("voxelsniper.ignorelimitations") && this.plugin.getVoxelSniperConfiguration().getLiteSniperRestrictedItems().contains(Integer.valueOf(material.getId()))) {
                player.sendMessage("You are not allowed to use " + material.name() + ".");
                return true;
            } else {
                snipeData.setVoxelId(material.getId());
                snipeData.getVoxelMessage().voxel();
                snipeData.setPattern(null, null);
                return true;
            }
        } else {
            PatternUtil.parsePattern(player, snipeData, args[0]);
            return true;
        }
    }
}
 
源代码6 项目: QuickShop-Reremake   文件: MsgUtil.java
/**
 * Get item's i18n name, If you want get item name, use Util.getItemStackName
 *
 * @param itemBukkitName ItemBukkitName(e.g. Material.STONE.name())
 * @return String Item's i18n name.
 */
public static String getItemi18n(@NotNull String itemBukkitName) {
    if (itemBukkitName.isEmpty()) {
        return "Item is empty";
    }
    String itemnameI18n = itemi18n.getString("itemi18n." + itemBukkitName);
    if (itemnameI18n != null && !itemnameI18n.isEmpty()) {
        return itemnameI18n;
    }
    Material material = Material.matchMaterial(itemBukkitName);
    if (material == null) {
        return "Material not exist";
    }
    return Util.prettifyText(material.name());
}
 
源代码7 项目: Modern-LWC   文件: BlockCache.java
/**
 * Adds a block to the block cache by its Block name, and tries to add it if it doesn't exist.
 *
 * @param block
 */
public int addBlock(String block) {
    Material material = Material.matchMaterial(block);
    if (material != null) {
        return addBlock(material);
    }
    return -1;
}
 
源代码8 项目: Modern-LWC   文件: BlockCache.java
/**
 * Get a block's id, or try to add it if it doesn't exist.
 *
 * @param blockName
 * @return
 */
public int getBlockId(String blockName) {
    Material material = Material.matchMaterial(blockName);
    if (material != null) {
        return getBlockId(material);
    }
    return addBlock(blockName);
}
 
源代码9 项目: QualityArmory   文件: MultiVersionLookup.java
public static Material getGlass() {
	if (glasspane == null) {
		try {
			glasspane = Material.matchMaterial("STAINED_GLASS_PANE");
		} catch (Error | Exception e) {
		}
		if (glasspane == null)
			glasspane = Material.YELLOW_STAINED_GLASS_PANE;
	}
	return glasspane;
}
 
源代码10 项目: ProjectAres   文件: XMLUtils.java
public static Material parseMaterial(Node node, String text) throws InvalidXMLException {
    Material material = Material.matchMaterial(text);
    if(material == null) {
        throw new InvalidXMLException("Unknown material '" + text + "'", node);
    }
    return material;
}
 
源代码11 项目: QualityArmory   文件: MultiVersionLookup.java
public static Material getIronShovel() {
	if (ironshovel == null) {
		try {
			ironshovel = Material.matchMaterial("IRON_SPADE");
		} catch (Error | Exception e) {
		}
		if (ironshovel == null)
			ironshovel = Material.IRON_SHOVEL;
	}
	return ironshovel;
}
 
源代码12 项目: QualityArmory   文件: MultiVersionLookup.java
public static Material getCarrotOnAStick() {
	if (carrotstick == null) {
		try {
			carrotstick = Material.matchMaterial("CARROT_STICK");
		} catch (Error | Exception e) {
		}
		if (carrotstick == null)
			carrotstick = Material.CARROT_ON_A_STICK;
	}
	return carrotstick;
}
 
源代码13 项目: SkyWarsReloaded   文件: LevelManager.java
public void loadParticleEffects() {
    particleList.clear();
    File particleFile = new File(SkyWarsReloaded.get().getDataFolder(), "particleeffects.yml");

    if (!particleFile.exists()) {
    	SkyWarsReloaded.get().saveResource("particleeffects.yml", false);
    }

    if (particleFile.exists()) {
        FileConfiguration storage = YamlConfiguration.loadConfiguration(particleFile);

        if (storage.getConfigurationSection("effects") != null) {
        	for (String key: storage.getConfigurationSection("effects").getKeys(false)) {
            	String name = storage.getString("effects." + key + ".displayname");
            	String material = storage.getString("effects." + key + ".icon");
            	int level = storage.getInt("effects." + key + ".level");
            	int cost = storage.getInt("effects." + key + ".cost");
            	List<String> particles = storage.getStringList("effects." + key + ".particles");
            	
            	List<ParticleEffect> effects = new ArrayList<ParticleEffect>();
            	if (particles != null) {
                	for (String part: particles) {
                		final String[] parts = part.split(":");
                        if (parts.length == 6 
                        		&& SkyWarsReloaded.getNMS().isValueParticle(parts[0].toUpperCase()) 
                        		&& Util.get().isFloat(parts[1])
                				&& Util.get().isFloat(parts[2])
                				&& Util.get().isFloat(parts[3])
                        		&& Util.get().isInteger(parts[4]) 
                        		&& Util.get().isInteger(parts[5])) {
                        	effects.add(new ParticleEffect(parts[0].toUpperCase(), Float.valueOf(parts[1]), Float.valueOf(parts[2]), Float.valueOf(parts[3]), Integer.valueOf(parts[4]), Integer.valueOf(parts[5])));
                        } else {
                        	SkyWarsReloaded.get().getLogger().info("The particle effect " + key + " has an invalid particle effect");
                        }
                	}
            	}
            	Material mat = Material.matchMaterial(material);
            	if (mat != null) {
            		particleList.add(new ParticleItem(key, effects, name, mat, level, cost));
                }
        	}
        }
    }
    
    Collections.<ParticleItem>sort(particleList);
}
 
源代码14 项目: ObsidianDestroyer   文件: ConfigManager.java
/**
 * Translates the materials.yml from memory into a map for quick access
 *
 * @return map of materials keys and material durability data
 */
public Map<String, DurabilityMaterial> getDurabilityMaterials() {
    final long time = System.currentTimeMillis();
    final ConfigurationSection section = materials.getConfigurationSection("HandledMaterials");
    int errorDuraCount = 0;
    int invalidDuraCount = 0;
    int disabledDuraCount = 0;
    Map<String, DurabilityMaterial> durabilityMaterials = new HashMap<>();
    for (String durabilityMaterial : section.getKeys(false)) {
        try {
            final ConfigurationSection materialSection = section.getConfigurationSection(durabilityMaterial);
            Material material = Material.matchMaterial(durabilityMaterial);
            if (material == null) {
                material = Material.matchMaterial(durabilityMaterial, true);
                if (material == null) {
                    if (DurabilityMaterial.isEnabled(materialSection)) {
                        ObsidianDestroyer.LOG.log(Level.WARNING, "Invalid Material Type: Unable to load ''{0}''", durabilityMaterial);
                    }
                    invalidDuraCount++;
                    continue;
                } else {
                    ObsidianDestroyer.LOG.log(Level.WARNING, "Semi-Valid Material Type: Loaded as ''{0}''", material.name());
                }
            }
            if (!Util.isSolid(material) && !materialSection.contains("HandleNonSolid") && !materialSection.getBoolean("HandleNonSolid")) {
                ObsidianDestroyer.LOG.log(Level.WARNING, "Non-Solid Material Type: Did not load ''{0}''", durabilityMaterial);
                invalidDuraCount++;
                continue;
            }
            final DurabilityMaterial durablock;
            if (materialSection.contains("MetaData")) {
                durablock = new DurabilityMaterial(material, materialSection.getInt("MetaData"), materialSection);
            } else {
                durablock = new DurabilityMaterial(material, materialSection);
            }
            if (durablock.getEnabled()) {
                if (getVerbose() || getDebug()) {
                    ObsidianDestroyer.LOG.log(Level.INFO, "Loaded durability of ''{0}'' for ''{1}''", new Object[]{durablock.getDurability(), durablock.toString()});
                }
                durabilityMaterials.put(durablock.toString(), durablock);
            } else if (getDebug()) {
                ObsidianDestroyer.debug("Disabled durability of '" + durablock.getDurability() + "' for '" + durablock.toString() + "'");
                disabledDuraCount++;
            }
        } catch (Exception e) {
            ObsidianDestroyer.LOG.log(Level.SEVERE, "Failed loading material ''{0}''", durabilityMaterial);
            errorDuraCount++;
        }
    }
    ObsidianDestroyer.LOG.log(Level.INFO, "Loaded and enabled ''{0}'' material durabilities from config in ''{1}'' ms.", new Object[]{durabilityMaterials.size(), (System.currentTimeMillis() - time)});
    ObsidianDestroyer.LOG.log(Level.INFO, "Material in Error: ''{0}''  Invalid: ''{1}''  Disabled: ''{2}''", new Object[]{errorDuraCount, invalidDuraCount, disabledDuraCount});
    return durabilityMaterials;
}
 
源代码15 项目: Crazy-Crates   文件: ItemBuilder.java
/**
 * Set the type of item the builder is set to.
 * @param material The material you wish to set.
 * @return The ItemBuilder with updated info.
 */
public ItemBuilder setMaterial(Material material) {
    this.material = material;
    this.isHead = material == (cc.useNewMaterial() ? Material.matchMaterial("PLAYER_HEAD") : Material.matchMaterial("SKULL_ITEM"));
    return this;
}
 
源代码16 项目: CardinalPGM   文件: Parser.java
public static Pair<Material, Integer> parseMaterial(String material) {
    String type = material.split(":")[0].trim();
    Integer damageValue = material.contains(":") ? Numbers.parseInt(material.split(":")[1].trim()) : -1;
    return new ImmutablePair<>(NumberUtils.isNumber(type) ? Material.getMaterial(Integer.parseInt(type)) : Material.matchMaterial(type), damageValue);
}
 
源代码17 项目: QualityArmory   文件: GunYMLLoader.java
public static void loadAmmo(QAMain main) {

		if (new File(main.getDataFolder(), "ammo").exists()) {
			int items = 0;
			for (File f : new File(main.getDataFolder(), "ammo").listFiles()) {
				try {
					if (f.getName().contains("yml")) {
						FileConfiguration f2 = YamlConfiguration.loadConfiguration(f);
						if ((!f2.contains("invalid")) || !f2.getBoolean("invalid")) {
							Material m = f2.contains("material") ? Material.matchMaterial(f2.getString("material"))
									: Material.DIAMOND_AXE;
							int variant = f2.contains("variant") ? f2.getInt("variant") : 0;
							final String name = f2.getString("name");
							if(QAMain.verboseLoadingLogging)
							main.getLogger().info("-Loading AmmoType: " + name);

							String extraData = null;
							if (f2.contains("skull_owner")) {
								extraData = f2.getString("skull_owner");
							}
							String ed2 = null;
							if (f2.contains("skull_owner_custom_url")
									&& !f2.getString("skull_owner_custom_url").equals(Ammo.NO_SKIN_STRING)) {
								ed2 = f2.getString("skull_owner_custom_url");
							}

							final MaterialStorage ms = MaterialStorage.getMS(m, f2.getInt("id"), variant, extraData,
									ed2);
							final ItemStack[] materails = main
									.convertIngredients(f2.getStringList("craftingRequirements"));
							final String displayname = f2.contains("displayname")
									? ChatColor.translateAlternateColorCodes('&', f2.getString("displayname"))
									: (ChatColor.WHITE + name);
							final List<String> extraLore2 = f2.contains("lore") ? f2.getStringList("lore") : null;
							final List<String> extraLore = new ArrayList<String>();
							try {
								for (String lore : extraLore2) {
									extraLore.add(ChatColor.translateAlternateColorCodes('&', lore));
								}
							} catch (Error | Exception re52) {
							}

							final double price = f2.contains("price") ? f2.getDouble("price") : 100;

							int amountA = f2.getInt("maxAmount");

							double piercing = f2.getDouble("piercingSeverity");

							Ammo da = new Ammo(name, displayname, extraLore, ms, amountA, false, 1, price, materails,
									piercing);

							da.setCustomLore(extraLore);

							QAMain.ammoRegister.put(ms, da);
							items++;

							if (extraData != null) {
								da.setSkullOwner(extraData);
							}
							if (ed2 != null) {
								da.setCustomSkin(ed2);
							}
							if (f2.contains("craftingReturnAmount")) {
								da.setCraftingReturn(f2.getInt("craftingReturnAmount"));
							}

						}
					}
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			if(!QAMain.verboseLoadingLogging)
				main.getLogger().info("-Loaded "+items+" Ammo types.");


		}
	}
 
源代码18 项目: QualityArmory   文件: GunYMLLoader.java
public static void loadArmor(QAMain main) {
	if (new File(main.getDataFolder(), "armor").exists()) {
		int items = 0;

		for (File f : new File(main.getDataFolder(), "armor").listFiles()) {
			try {
				if (f.getName().contains("yml")) {
					FileConfiguration f2 = YamlConfiguration.loadConfiguration(f);
					if ((!f2.contains("invalid")) || !f2.getBoolean("invalid")) {
						final String name = f2.getString("name");
						if(QAMain.verboseLoadingLogging)
						main.getLogger().info("-Loading Armor: " + name);

						Material m = f2.contains("material") ? Material.matchMaterial(f2.getString("material"))
								: Material.DIAMOND_AXE;
						int variant = f2.contains("variant") ? f2.getInt("variant") : 0;
						final MaterialStorage ms = MaterialStorage.getMS(m, f2.getInt("id"), variant);
						final ItemStack[] materails = main
								.convertIngredients(f2.getStringList("craftingRequirements"));
						final String displayname = f2.contains("displayname")
								? ChatColor.translateAlternateColorCodes('&', f2.getString("displayname"))
								: (ChatColor.WHITE + name);
						final List<String> rawLore = f2.contains("lore") ? f2.getStringList("lore") : null;
						final List<String> lore = new ArrayList<String>();
						try {
							for (String lore2 : rawLore) {
								lore.add(ChatColor.translateAlternateColorCodes('&', lore2));
							}
						} catch (Error | Exception re52) {
						}

						final int price = f2.contains("price") ? f2.getInt("price") : 100;

						WeaponType wt = WeaponType.getByName(f2.getString("MiscType"));

						if (wt == WeaponType.HELMET) {
							QAMain.armorRegister.put(ms, new Helmet(name, displayname, lore, materails, ms, price));
							items++;
						}
					}
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		if(!QAMain.verboseLoadingLogging)
			main.getLogger().info("-Loaded "+items+" Armor types.");
	}
}
 
源代码19 项目: uSkyBlock   文件: SkyBlockMenu.java
private void addExtraMenus(Player player, Inventory menu) {
    ConfigurationSection extras = plugin.getConfig().getConfigurationSection("options.extra-menus");
    if (extras == null) {
        return;
    }
    for (String sIndex : extras.getKeys(false)) {
        ConfigurationSection menuSection = extras.getConfigurationSection(sIndex);
        if (menuSection == null) {
            continue;
        }
        try {
            int index = Integer.parseInt(sIndex, 10);
            String title = menuSection.getString("title", "\u00a9Unknown");
            String icon = menuSection.getString("displayItem", "CHEST");
            List<String> lores = new ArrayList<>();
            for (String l : menuSection.getStringList("lore")) {
                Matcher matcher = PERM_VALUE_PATTERN.matcher(l);
                if (matcher.matches()) {
                    String perm = matcher.group("perm");
                    String lore = matcher.group("value");
                    boolean not = matcher.group("not") != null;
                    if (perm != null) {
                        boolean hasPerm = player.hasPermission(perm);
                        if ((hasPerm && !not) || (!hasPerm && not)) {
                            lores.add(lore);
                        }
                    } else {
                        lores.add(lore);
                    }
                }
            }
            // Only SIMPLE icons supported...
            ItemStack item = new ItemStack(Material.matchMaterial(icon), 1);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName(title);
            meta.setLore(lores);
            item.setItemMeta(meta);
            menu.setItem(index, item);
        } catch (Exception e) {
            log(Level.INFO, "\u00a79[uSkyBlock]\u00a7r Unable to add extra-menu " + sIndex + ": " + e);
        }
    }
}
 
源代码20 项目: uSkyBlock   文件: SkyBlockMenu.java
private boolean isExtraMenuAction(Player player, ItemStack currentItem) {
    ConfigurationSection extras = plugin.getConfig().getConfigurationSection("options.extra-menus");
    if (extras == null || currentItem == null || currentItem.getItemMeta() == null) {
        return false;
    }
    Material itemType = currentItem.getType();
    String itemTitle = currentItem.getItemMeta().getDisplayName();
    for (String sIndex : extras.getKeys(false)) {
        ConfigurationSection menuSection = extras.getConfigurationSection(sIndex);
        if (menuSection == null) {
            continue;
        }
        try {
            String title = menuSection.getString("title", "\u00a9Unknown");
            String icon = menuSection.getString("displayItem", "CHEST");
            Material material = Material.matchMaterial(icon);
            if (title.equals(itemTitle) && material == itemType) {
                for (String command : menuSection.getStringList("commands")) {
                    Matcher matcher = PERM_VALUE_PATTERN.matcher(command);
                    if (matcher.matches()) {
                        String perm = matcher.group("perm");
                        String cmd = matcher.group("value");
                        boolean not = matcher.group("not") != null;
                        if (perm != null) {
                            boolean hasPerm = player.hasPermission(perm);
                            if ((hasPerm && !not) || (!hasPerm && not)) {
                                plugin.execCommand(player, cmd, false);
                            }
                        } else {
                            plugin.execCommand(player, cmd, false);
                        }
                    } else {
                        log(Level.INFO, "\u00a7a[uSkyBlock] Malformed menu " + title + ", invalid command : " + command);
                    }
                }
                return true;
            }
        } catch (Exception e) {
            log(Level.INFO, "\u00a79[uSkyBlock]\u00a7r Unable to execute commands for extra-menu " + sIndex + ": " + e);
        }
    }
    return false;
}
 
 方法所在类
 同类方法