Настройка дропа

  • Автор темы Автор темы Kurumi
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Kurumi

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Kurumi
Всем привет. Возникли некоторые трудности в создании одного простенького плагина.
Дело в том, что мне нужно с помощью команды boss заспавинть маленького зомби и при его убийстве, с него что-нибудь падало и происходило оповещение на весь сервер, что игрок name убил босса. Прошу помочь.
Код:
package me.kurumi;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Zombie;
import org.bukkit.event.Listener;
import org.*********ventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

import net.md_5.bungee.api.ChatColor;

public class Main extends JavaPlugin implements Listener {
   
    public void onEnable() {
        getCommand("boss").setExecutor(this);
        getLogger().info("Plugin enabled");
    }
 
    public void onDisable() {
        getLogger().info("Plugin disabled");
    }
   
    @SuppressWarnings("deprecation")
    public void spawnboss(Player player) {
        Zombie zombie = (Zombie) player.getLocation().getWorld().spawnEntity(player.getLocation(), EntityType.ZOMBIE);
        zombie.setCustomName(ChatColor.DARK_RED + "\u0411\u041E\u0421\u0421");
        zombie.setCustomNameVisible(true);
        zombie.setBaby(true);
        zombie.setMaxHealth(2048);
        zombie.setHealth(2048);
        zombie.getEquipment().setHelmet(new ItemStack(Material.DIAMOND_HELMET));
        zombie.getEquipment().setChestplate(new ItemStack(Material.DIAMOND_CHESTPLATE));
        zombie.getEquipment().setLeggings(new ItemStack(Material.DIAMOND_LEGGINGS));
        zombie.getEquipment().setBoots(new ItemStack(Material.DIAMOND_BOOTS));
        zombie.getEquipment().setItemInHand(new ItemStack(Material.DIAMOND_SWORD));
    }
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(cmd.getName().equalsIgnoreCase("boss")) {
            Player p = (Player) sender;
            Bukkit.broadcastMessage(ChatColor.GOLD + "\u041D\u0430 \u0441\u043F\u0430\u0432\u043D\u0435 \u043F\u043E\u044F\u0432\u0438\u043B\u0441\u044F" + ChatColor.DARK_RED + " \u0431\u043E\u0441\u0441!");
            spawnboss(p);
        }
        return true;
    }
   
}
 
UP
UP
UP
 
Последнее редактирование:
Ставишь мету мобу:
Код:
zombie.setMetadata("isBoss", new FixedMetadataValue(this,"test"));
Проверяешь её при смерти моба:
Код:
    @EventHandler
    public void onDeath(EntityDeathEvent e) {
        Entity ent = e.getEntity();
        if (ent.getType()!=EntityType.ZOMBIE) return;
        if (!ent.hasMetadata("isBoss")) return;
        Location loc = ent.getLocation();
        loc.getWorld().dropItem(loc, new ItemStack(Material.DIAMOND));
    }
 
Ставишь мету мобу:
Код:
zombie.setMetadata("isBoss", new FixedMetadataValue(this,"test"));
Проверяешь её при смерти моба:
Код:
    @EventHandler
    public void onDeath(EntityDeathEvent e) {
        Entity ent = e.getEntity();
        if (ent.getType()!=EntityType.ZOMBIE) return;
        if (!ent.hasMetadata("isBoss")) return;
        Location loc = ent.getLocation();
        loc.getWorld().dropItem(loc, new ItemStack(Material.DIAMOND));
    }
Не сработало. Ошибка в консоли. Сам моб заспавнился, но лут не выпал
Код:
[18:00:05] [Server thread/ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'boss' in plugin SpawnBoss v1.0 Beta
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchCommand(CraftServer.java:650) ~[spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at net.minecraft.server.v1_11_R1.PlayerConnection.handleCommand(PlayerConnection.java:1354) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at net.minecraft.server.v1_11_R1.PlayerConnection.a(PlayerConnection.java:1189) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at net.minecraft.server.v1_11_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at net.minecraft.server.v1_11_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at net.minecraft.server.v1_11_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_121]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_121]
    at net.minecraft.server.v1_11_R1.SystemUtils.a(SourceFile:46) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at net.minecraft.server.v1_11_R1.MinecraftServer.D(MinecraftServer.java:747) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:678) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:576) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
Caused by: java.lang.NullPointerException
    at me.kurumi.Main.spawnboss(Main.java:45) ~[?:?]
    at me.kurumi.Main.onCommand(Main.java:59) ~[?:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-3fb9445-6e3cec8]
    ... 15 more
 
Исправил одну хрень. Ошибка пропала, но вот айтем не дропается с моба
 
Ивенты зарегистрировал?
Код:
Bukkit.getPluginManager().registerEvents(plugin,listener);
 
Все заработало!! Спасибо! Можешь еще кое-что подсказать, возможно ли размер зомби увеличить?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх