Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

[Решено] Не работает метод SpawnEntity

Статус
Закрыто для дальнейших ответов.

Lucatjuh

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Lucatjuh
При создание арены не спавнятся мобы. Класс "Arena" (Ошибок в данном случае нет)
Java:
package ru.lucatjuh.mobsminigame;

import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Zombie;
import org.*********ventory.ItemStack;

public class Arena {

    private Location minLocation, maxLocation, spawnLocation;
   
    public Arena(Location minLocation, Location maxLocation, Location spawnLocation) {
        this.setMinLocation(minLocation);
        this.setMaxLocation(maxLocation);
        this.setSpawnLocation(spawnLocation);
    }
   
    public void spawnMobs() {
        Location randomLocation = new Location(minLocation.getWorld(),
                                              minLocation.getX() + (int) (Math.random() * (maxLocation.getX() - minLocation.getX() + 1)),
                                              minLocation.getY() + (int) (Math.random() * (maxLocation.getY() - minLocation.getY() + 1)),
                                              minLocation.getZ() + (int) (Math.random() * (maxLocation.getZ() - minLocation.getZ() + 1)));
        Zombie zombie = (Zombie) randomLocation.getWorld().spawnEntity(randomLocation, EntityType.ZOMBIE);
        zombie.setCustomName("Arena zombie");
        zombie.getEquipment().setItemInHand(new ItemStack(Material.BEDROCK));
    }

    public Location getMinLocation() {
        return minLocation;
    }

    public void setMinLocation(Location minLocation) {
        this.minLocation = minLocation;
    }

    public Location getMaxLocation() {
        return maxLocation;
    }

    public void setMaxLocation(Location maxLocation) {
        this.maxLocation = maxLocation;
    }

    public Location getSpawnLocation() {
        return spawnLocation;
    }

    public void setSpawnLocation(Location spawnLocation) {
        this.spawnLocation = spawnLocation;
    }
}
 
так вы его и не спавнили.
Класс "RunMobSpawner"
Java:
package ru.lucatjuh.mobsminigame;

import org.bukkit.scheduler.BukkitRunnable;

public class RunMobSpawner extends BukkitRunnable {
   
    private Main plugin;
    public RunMobSpawner(Main plugin) {
        this.plugin = plugin;
    }
    @Override
    public void run() {
        for(String name : plugin.getArenas().keySet()) {
            plugin.getArenas().get(name).spawnMobs();
        }
    }
}
 
Класс "RunMobSpawner"
Java:
package ru.lucatjuh.mobsminigame;

import org.bukkit.scheduler.BukkitRunnable;

public class RunMobSpawner extends BukkitRunnable {
  
    private Main plugin;
    public RunMobSpawner(Main plugin) {
        this.plugin = plugin;
    }
    @Override
    public void run() {
        for(String name : plugin.getArenas().keySet()) {
            plugin.getArenas().get(name).spawnMobs();
        }
    }
}
Идём дальше по цепочке. А этот раннабл где-то выполняется?
 
Завтра код скину, сейчас спать нужно.
P.S. Ты моба не спанишь, ты только объект Zombie создаешь.
P.S.S. Спать иду не из да того что завтра школа и тд, просто спать нужно много.
 
Завтра код скину, сейчас спать нужно.
P.S. Ты моба не спанишь, ты только объект Zombie создаешь.
P.S.S. Спать иду не из да того что завтра школа и тд, просто спать нужно много.
Спокойной ночи
 
P.S. Ты моба не спанишь, ты только объект Zombie создаешь.
Как раз-таки спаунит. И с кодом в шапке вроде бы нормально всё.
Вот как раз-таки Den_Abr решил узнать, выполняется ли он или нет.
 
Как раз-таки спаунит. И с кодом в шапке вроде бы нормально всё.
Вот как раз-таки Den_Abr решил узнать, выполняется ли он или нет.
Ну да он должен спаунить, но не спаунится
 
Ты код спавна не вызываешь...
Вызываю в рандомной локации
Java:
    public void spawnMobs() {
        Location randomLocation = new Location(minLocation.getWorld(),
                                              minLocation.getX() + (int) (Math.random() * (maxLocation.getX() - minLocation.getX() + 1)),
                                              minLocation.getY() + (int) (Math.random() * (maxLocation.getY() - minLocation.getY() + 1)),
                                              minLocation.getZ() + (int) (Math.random() * (maxLocation.getZ() - minLocation.getZ() + 1)));
        Zombie zombie = (Zombie) randomLocation.getWorld().spawnEntity(randomLocation, EntityType.ZOMBIE);
        zombie.setCustomName(ChatColor.RED + "Зомби убийца");
        zombie.getEquipment().setItemInHand(new ItemStack(Material.DIAMOND_SWORD));
    }
 
Так, а где ты запускаешь шедулер?
 
Вызываю в рандомной локации
Java:
    public void spawnMobs() {
        Location randomLocation = new Location(minLocation.getWorld(),
                                              minLocation.getX() + (int) (Math.random() * (maxLocation.getX() - minLocation.getX() + 1)),
                                              minLocation.getY() + (int) (Math.random() * (maxLocation.getY() - minLocation.getY() + 1)),
                                              minLocation.getZ() + (int) (Math.random() * (maxLocation.getZ() - minLocation.getZ() + 1)));
        Zombie zombie = (Zombie) randomLocation.getWorld().spawnEntity(randomLocation, EntityType.ZOMBIE);
        zombie.setCustomName(ChatColor.RED + "Зомби убийца");
        zombie.getEquipment().setItemInHand(new ItemStack(Material.DIAMOND_SWORD));
    }
Да, код я вижу, но ты его НЕ ВЫЗЫВАЕШЬ.....
 
@Lucatjuh, CraftCoder имеет ввиду, что ты должен показать нам то место в твоём коде, где ты используешь RunMobSpawner.
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх