1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Kurumi, 27 июл 2017.

Статус темы:
Закрыта.
  1. Автор темы
    Kurumi

    Kurumi Активный участник Пользователь

    Баллы:
    76
    Всем привет. Возникли некоторые трудности в создании одного простенького плагина.
    Дело в том, что мне нужно с помощью команды 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;
        }
       
    }
    
     
  2. Автор темы
    Kurumi

    Kurumi Активный участник Пользователь

    Баллы:
    76
    UP
    UP
    UP
     
    Последнее редактирование: 27 июл 2017
  3. Dan_Ender

    Dan_Ender Активный участник Пользователь

    Баллы:
    76
    Ставишь мету мобу:
    Код:
    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));
        }
     
  4. Автор темы
    Kurumi

    Kurumi Активный участник Пользователь

    Баллы:
    76
    Не сработало. Ошибка в консоли. Сам моб заспавнился, но лут не выпал
    Код:
    [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
     
  5. Dan_Ender

    Dan_Ender Активный участник Пользователь

    Баллы:
    76
    Щас, 1.11 поставлю, проверю
     
  6. Автор темы
    Kurumi

    Kurumi Активный участник Пользователь

    Баллы:
    76
    Исправил одну хрень. Ошибка пропала, но вот айтем не дропается с моба
     
  7. Dan_Ender

    Dan_Ender Активный участник Пользователь

    Баллы:
    76
    Ивенты зарегистрировал?
    Код:
    Bukkit.getPluginManager().registerEvents(plugin,listener);
     
  8. Автор темы
    Kurumi

    Kurumi Активный участник Пользователь

    Баллы:
    76
    Ой, забыл про них :(
    Сейчас попробую
     
  9. Автор темы
    Kurumi

    Kurumi Активный участник Пользователь

    Баллы:
    76
    Все заработало!! Спасибо! Можешь еще кое-что подсказать, возможно ли размер зомби увеличить?
     
Статус темы:
Закрыта.

Поделиться этой страницей