Спавн EntityHuman! Помогите найти ошибку!

Der0x

Пользователь
Здравствуйте, форумчане!
Есть проблема. Мне нужно создать NPC, то бишь EntityHuman. По этому способу спавнятся все ентити, как всегда, за исключением нужного. Вот код:
package ru.stalmine.server.component.npc;

import cn.nukkit.entity.Entity;
import cn.nukkit.entity.EntityHuman;
import cn.nukkit.entity.data.Skin;
import cn.nukkit.entity.mob.EntityZombie;
import cn.nukkit.entity.passive.EntityVillager;
import cn.nukkit.level.Position;
import cn.nukkit.level.format.FullChunk;
import cn.nukkit.level.format.generic.BaseFullChunk;
import cn.nukkit.nbt.tag.*;
import ru.stalmine.server.Main;
import ru.stalmine.server.component.Component;
import ru.stalmine.server.task.npc.sNPCSpawnTask;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Random;

/**
* Created by Егор Кадомцев on 14.06.2017.
*/
public class sNPC extends Component {
private ArrayList<Entity> npcs;
public sNPC(Main main){
super(main);
}

public void onLoad(){
getMain().getServer().getLogger().info("Ura!!!");
spawnEntity(1);
}


public ArrayList<Entity> getNpcs() {
return npcs;
}

public void setNpcs(ArrayList<Entity> npcs) {
this.npcs = npcs;
}

public void spawnEntity(int count){
Random rand = new Random();

int x = (int) getMain().getServer().getDefaultLevel().getSafeSpawn().getX();
int y = (int) getMain().getServer().getDefaultLevel().getSafeSpawn().getY();
int z = (int) getMain().getServer().getDefaultLevel().getSafeSpawn().getZ();

for (int i = 0; i < count; i++){


//getMain().getLogger().info(this.getMain().getDataFolder().getAbsolutePath() + "/skin.png");
Skin skin = new Skin(new File(this.getMain().getDataFolder().getAbsolutePath() + "/skin.png"));
Position source = new Position(x, y, z, getMain().getServer().getDefaultLevel());
FullChunk chunk = source.getLevel().getChunk((int) source.x >> 4, (int) source.z >> 4, true);
if (!chunk.isGenerated()) {
getMain().getServer().getScheduler().scheduleDelayedTask(new sNPCSpawnTask(this), 250);
return;
}
if (!chunk.isPopulated()) {
getMain().getServer().getScheduler().scheduleDelayedTask(new sNPCSpawnTask(this), 250);
return;
}

CompoundTag nbt = new CompoundTag().putList(new ListTag<Tag>("Pos").add(new DoubleTag("", source.x)).add(new DoubleTag("", source.y + 0.5)).add(new DoubleTag("", source.z)))
.putList(new ListTag<DoubleTag>("Motion").add(new DoubleTag("", 0)).add(new DoubleTag("", 0)).add(new DoubleTag("", 0)))
.putList(new ListTag<FloatTag>("Rotation").add(new FloatTag("", 0))
.add(new FloatTag("", 0)));

EntityHuman entity = null;
entity = new EntityHuman(chunk, nbt);
entity.setSkin(skin);
entity.setScale(2);
entity.setMaxHealth(333);
entity.setHealth(222);
entity.spawnToAll();
getMain().getServer().getScheduler().scheduleDelayedTask(new sNPCSpawnTask(this), 250);
}
}

}

А вот сама ошибка:

[ALERT] java.lang.RuntimeException: java.lang.NullPointerException
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:450)
at cn.nukkit.Server.enablePlugin(Server.java:633)
at cn.nukkit.Server.enablePlugins(Server.java:622)
at cn.nukkit.Server.<init>(Server.java:469)
at cn.nukkit.Nukkit.main(Nukkit.java:68)
Caused by: java.lang.NullPointerException
at cn.nukkit.entity.EntityHuman.initEntity(EntityHuman.java:97)
at cn.nukkit.entity.Entity.init(Entity.java:375)
at cn.nukkit.entity.Entity.<init>(Entity.java:273)
at cn.nukkit.entity.EntityLiving.<init>(EntityLiving.java:31)
at cn.nukkit.entity.EntityCreature.<init>(EntityCreature.java:12)
at cn.nukkit.entity.EntityHumanType.<init>(EntityHumanType.java:28)
at cn.nukkit.entity.EntityHuman.<init>(EntityHuman.java:59)
at ru.stalmine.server.component.npc.sNPC.spawnEntity(sNPC.java:76)
at ru.stalmine.server.component.npc.sNPC.onLoad(sNPC.java:35)
at ru.stalmine.server.component.Component.loadAll(Component.java:20)
at ru.stalmine.server.Main.loadComponents(Main.java:26)
at ru.stalmine.server.Main.onEnable(Main.java:19)
at cn.nukkit.plugin.PluginBase.setEnabled(PluginBase.java:89)
at cn.nukkit.plugin.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:119)
at cn.nukkit.plugin.PluginManager.enablePlugin(PluginManager.java:446)
... 4 more

Очень прошу помочь! Искал 2 дня подряд, где что - понять не смог. Про комьюнити из вк вообще молчу... :(
Надеюсь, получу ответ на вопрос
 
Top