以下是一个使用Java编写的Bukkit插件,实现了当玩家手持物品耐久度为0时,花费1000金币可以恢复50耐久度的功能:

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerItemHeldEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class ItemDurabilityPlugin extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (command.getName().equalsIgnoreCase("repair")) {
            if (!(sender instanceof Player)) {
                sender.sendMessage(ChatColor.RED + "Only players can use this command.");
                return true;
            }

            Player player = (Player) sender;
            ItemStack item = player.getInventory().getItemInMainHand();

            if (item.getType() == Material.AIR) {
                player.sendMessage(ChatColor.RED + "You are not holding any item.");
                return true;
            }

            if (item.getDurability() > 0) {
                int cost = 1000;
                int durabilityToRestore = 50;

                if (economy.has(player, cost)) {
                    economy.withdrawPlayer(player, cost);
                    item.setDurability((short) (item.getDurability() - durabilityToRestore));
                    player.sendMessage(ChatColor.GREEN + "Item durability restored by " + durabilityToRestore + ".");
                } else {
                    player.sendMessage(ChatColor.RED + "You don't have enough money to repair the item.");
                }
            } else {
                player.sendMessage(ChatColor.RED + "Item durability is already full.");
            }

            return true;
        }

        return false;
    }

    @EventHandler
    public void onPlayerItemHeld(PlayerItemHeldEvent event) {
        Player player = event.getPlayer();
        ItemStack item = player.getInventory().getItem(event.getNewSlot());

        if (item.getDurability() == 0) {
            player.sendMessage(ChatColor.RED + "Item durability is 0. Use /repair command to restore durability.");
        }
    }
}

请确保在项目中引入了 Vault 和经济插件(如 Essentials 或 Vault 的经济插件),并在 plugin.yml 文件中添加以下内容:

name: ItemDurabilityPlugin
version: 1.0
main: 包名.ItemDurabilityPlugin
api-version: 1.20
commands:
  repair:
    description: Repair the durability of the held item
    usage: /repair

在游戏中,玩家可以使用 /repair 命令来修复手持物品的耐久度。如果物品的耐久度已经为0,玩家会收到一条消息提示。如果玩家拥有足够的金币,耐久度将会恢复,并且金币将会被扣除。如果玩家没有足够的金币,将会收到一条相应的消息提示。

用Java写一个 Bukkit120的 玩家手持的物品为0耐久度花费1000金币可以恢复50耐久度

原文地址: https://www.cveoy.top/t/topic/ijd1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录