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

Discussion in 'Разработка плагинов' started by Der0x, 17/6/17.

  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
We welcome you on our site. This site is devoted to the Nukkit project and all that is connected with him. Here you can communicate, download plugins, also many other things get acquainted! Register the account right now :3
  1. Der0x

    Der0x Пользователь

    Messages:
    1
    Likes Received:
    0
    Minecraft:
    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;
    }

    Code:
    public void setNpcs(ArrayList&lt;Entity&gt; 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 &lt; 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;
    }

    Code:
            CompoundTag nbt = new CompoundTag().putList(new ListTag&lt;Tag&gt;("Pos").add(new DoubleTag("", source.x)).add(new DoubleTag("", source.y + 0.5)).add(new DoubleTag("", source.z)))
                    .putList(new ListTag&lt;DoubleTag&gt;("Motion").add(new DoubleTag("", 0)).add(new DoubleTag("", 0)).add(new DoubleTag("", 0)))
                    .putList(new ListTag&lt;FloatTag&gt;("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 дня подряд, где что - понять не смог. Про комьюнити из вк вообще молчу... :(
    Надеюсь, получу ответ на вопрос
     

Share This Page