Для начала, я новичок в Java. Это мой первый плагин bukkit, и единственная ошибка - это (Click Here). Цель плагина заключается в том, что когда вы щелкаете правой кнопкой мыши с помощью «Bedrock Breaker», он разбивает коренные породы.Кодирование плагинов Bukkit не работает?
package me.jrneulight.bedrockbreaker;
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.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
public final class Main extends JavaPlugin implements Listener {
public static void main(String[] args) {
}
@Override
public void onEnable() {
getLogger().info("Breakrock Breaker Enabled!");
getServer().getPluginManager().registerEvents(this, this);
}
@Override
public void onDisable() {
getLogger().info("Bedrock Breaker Disabled!");
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
if(cmd.getName().equalsIgnoreCase("bedrockbreaker")){
Player player = (Player) sender;
PlayerInventory inventory = player.getInventory();
ItemStack bedrockbreaker = new ItemStack(Material.DIAMOND_HOE,1);
ItemMeta im = bedrockbreaker.getItemMeta();
im.setDisplayName(ChatColor.DARK_AQUA + "Bedrock Breaker");
bedrockbreaker.setItemMeta(im);
inventory.addItem(bedrockbreaker);
return true;
}
return false;
}
@EventHandler(priority=EventPriority.HIGH)
public void onPlayerUse (org.bukkit.event.player.PlayerInteractEvent evnt) {
org.bukkit.block.Block block = evnt.getClickedBlock();
org.bukkit.inventory.ItemStack item = evnt.getItem();
Player player = evnt.getPlayer();
org.bukkit.World world = block.getWorld();
ItemMeta itemmeta = item.getItemMeta();
if (block.getType() == Material.BEDROCK && item.getType() == Material.DIAMOND_HOE && itemmeta.getDisplayName() == ChatColor.DARK_AQUA + "Bedrock Breaker") {
BlockBreakEvent breakEvent = new BlockBreakEvent(block, player);
getServer().getPluginManager().callEvent(breakEvent);
ItemStack drop = new ItemStack(block.getType());
drop.setAmount(1);
drop.setType(Material.BEDROCK);
block.setType(Material.AIR);
world.dropItemNaturally(block.getLocation(), drop);
player.sendMessage("Bedrock Broken!");
}
}
}
фиксирует ошибку, но по-прежнему не работает .. Это, как я зарегистрировал событие? – user3137578
@ user3137578 Что именно вы пытаетесь сделать? Мне кажется, что вы пытаетесь бросить скальную породу, когда игрок попадает под корень с помощью бриллиантовой мотыги под названием «Bedrock Breaker» с ChatColor 'DARK_AQUA'. Я думаю, что это имеет какое-то отношение к имени ... Попробуйте изменить его на 'getItemMeta(). GetDisplayName(). Conatins (" test ")' затем переименовать алмазную мотыгу в наковальню, чтобы "проверить" и посмотреть, это работает – Jojodmo