CmdCraft.java 文件源码

java
阅读 31 收藏 0 点赞 0 评论 0

项目:Necessities 作者:
public boolean commandUse(CommandSender sender, String[] args) {
    Variables var = Necessities.getVar();
    if (sender instanceof Player) {
        Material mat;
        Player p = (Player) sender;
        if (args.length == 0) {
            p.sendMessage(var.getEr() + "Error: " + var.getErMsg() + "You must enter an item to craft.");
            return true;
        }
        mat = Material.fromString(args[0]);
        if (Bukkit.getRecipesFor(mat.getBukkitMaterial().toItemStack(1)).isEmpty()) {
            p.sendMessage(var.getEr() + "Error: " + var.getErMsg() + "There are no recipes to craft that item.");
            return true;
        }
        HashMap<ItemStack, Integer> items = new HashMap<>();
        Recipe r = Bukkit.getRecipesFor(mat.getBukkitMaterial().toItemStack(1)).get(0);
        if (r instanceof ShapedRecipe) {
            ShapedRecipe s = (ShapedRecipe) r;
            for (Character c : s.getIngredientMap().keySet())
                if (s.getIngredientMap().get(c) != null)
                    items.put(s.getIngredientMap().get(c), items.containsKey(s.getIngredientMap().get(c)) ? items.get(s.getIngredientMap().get(c)) + 1 : 1);
        } else if (r instanceof ShapelessRecipe)
            for (ItemStack i : ((ShapelessRecipe) r).getIngredientList())
                items.put(i, items.containsKey(i) ? items.get(i) + 1 : 1);
        for (Map.Entry<ItemStack, Integer> itemStackIntegerEntry : items.entrySet())
            Bukkit.broadcastMessage(itemStackIntegerEntry.getValue() + " " + itemStackIntegerEntry.getKey().getType().toString());
        Bukkit.broadcastMessage("results in " + r.getResult().getAmount() + ' ' + r.getResult().getType().toString());
    } else
        sender.sendMessage(var.getEr() + "Error: " + var.getErMsg() + "You must be a player to craft items.");
    return true;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号