Question How to spawn NPCs?

lollolcheese123

New member
May 27, 2023
12
0
1
How do I spawn a fake player (aka NPC) like the ones you have in Hypixel?
I am fine with using NMS, CraftBukkit and ProtocolLib.

I've tried a buncha stuff already, but nothing seems to work.
I'd also like to be able to set a custom skin, not just a skin a player is using.
 

lollolcheese123

New member
May 27, 2023
12
0
1
Yeah, I know the trick. Here's the code:
Java:
package lollolcheese123.cybrspace.cmds.adminCmds;

import de.oliver.fancynpcs.api.FancyNpcsPlugin;
import de.oliver.fancynpcs.api.Npc;
import de.oliver.fancynpcs.api.NpcData;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;

import java.util.Collections;
import java.util.List;
import java.util.UUID;

public class test implements CommandExecutor, TabCompleter {
    @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage("Only players can run this command!");
            return true;
        }

if (args.length != 1) {
sender.sendMessage("Too short/long!");
            return true;
        }

NpcData npcData = new NpcData("Portal Master", UUID.randomUUID(), ((Player) sender).getLocation());
        Npc newNpc = FancyNpcsPlugin.getNpcAdapter().apply(npcData);
        newNpc.create();
        FancyNpcsPlugin.get().getNpcManager().registerNpc(newNpc);
        newNpc.spawnForAll();

        return true;
    }
    @Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
return Collections.emptyList();
    }
}

I've also tried it somewhere else (same issue):
Java:
package lollolcheese123.cybrspace.npc;

import de.oliver.fancynpcs.api.FancyNpcsPlugin;
import de.oliver.fancynpcs.api.Npc;
import de.oliver.fancynpcs.api.NpcData;
import de.oliver.fancynpcs.api.NpcManager;
import org.bukkit.Location;
import org.bukkit.entity.Player;

import java.util.UUID;

public class npcHandler {
NpcManager manager = FancyNpcsPlugin.get().getNpcManager();
    public void init() {
    }
public void createPortalMaster(Location location) {
NpcData npcData = new NpcData("Portal Master", UUID.randomUUID(), location);
        Npc newNpc = FancyNpcsPlugin.getNpcAdapter().apply(npcData);
        newNpc.create();
        FancyNpcsPlugin.get().getNpcManager().registerNpc(newNpc);
        newNpc.spawnForAll();
    }
}