用Java写一个 Bukkit120的 玩家手持的物品为0耐久度花费1000金币可以恢复50耐久度
以下是一个使用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,玩家会收到一条消息提示。如果玩家拥有足够的金币,耐久度将会恢复,并且金币将会被扣除。如果玩家没有足够的金币,将会收到一条相应的消息提示。
原文地址: https://www.cveoy.top/t/topic/ijd1 著作权归作者所有。请勿转载和采集!