Помогите Проблема с EntityPlayer.

Lisenochek

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Lisenochek
Всем привет. Пытаюсь создать с помощью NMS игрока, с которым можно было бы взаимодействовать (в том числе и бить).

У меня получилось его создать и даже взаимодействовать с ним, используя PacketListenerAPI от ProtocolLib, но столкнулся с проблемой, что я не могу дамажить NPC, используя те же стрелы или зелья. Я прошерстил все пакеты, но ничего подобного найти не смог, а мне это очень важно.

Помогите пожалуйста с этой проблемой.

Код:
Код:
package ru.lisenochek.mcrust.objects;

import com.mojang.authlib.GameProfile;
import net.minecraft.server.v1_12_R1.*;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_12_R1.CraftServer;
import org.bukkit.craftbukkit.v1_12_R1.CraftWorld;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;

import java.util.HashMap;
import java.util.UUID;

public class NPCClass extends EntityPlayer {

    public static HashMap<Integer, NPCClass> npcMap = new HashMap<>();

    private Location location;

    public NPCClass(Player player, String name) {
        super(((CraftServer) Bukkit.getServer()).getServer(), ((CraftWorld) player.getLocation().getWorld()).getHandle(), new GameProfile(UUID.randomUUID(), "NPC"), new PlayerInteractManager(((CraftWorld) player.getLocation().getWorld()).getHandle()));

        WorldServer worldServer = ((CraftWorld) player.getLocation().getWorld()).getHandle();

        this.location = player.getLocation();

        npcMap.put(getId(), this);
    }

    public int getID() {
        return getId();
    }

    public Location getLocation() {
        return location;
    }

    public void spawn() {

        setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
        playerConnection = new PlayerConnection(((CraftServer) Bukkit.getServer()).getServer(), new NetworkManager(EnumProtocolDirection.SERVERBOUND), this);
    }

    public void removeNPC() {
        for (Player player : Bukkit.getOnlinePlayers()) ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutEntityDestroy(getId()));
        npcMap.remove(getId());
    }
}
 
Я купил ситизенс. Можно ли с помощью него как-то спавнить неписей, при этом не загружая плагин на сервер?
 
Мне все равно кажется, что можно как-то поизвращаться и не подгружать ситизенс.
Заимплементь везде RMI, и запусти ситизенс у себя на отдельном хосте, и вызывай методы
 
Назад
Верх