Plugin Despawn NPC

blackmine57

Architecte en herbe
29 Avril 2015
273
4
79
22
Bonjour,

J'aimerais savoir comment faire pour faire despawn un NPC.

Ma classe NPCManager :
Code:
package net.cheatwarn.utils;

import java.util.UUID;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_11_R1.CraftServer;
import org.bukkit.craftbukkit.v1_11_R1.CraftWorld;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;

import com.mojang.authlib.GameProfile;

import net.cheatwarn.cheats.combat.ForceFieldAndCommand;
import net.minecraft.server.v1_11_R1.EntityPlayer;
import net.minecraft.server.v1_11_R1.MinecraftServer;
import net.minecraft.server.v1_11_R1.PacketPlayOutEntityDestroy;
import net.minecraft.server.v1_11_R1.PacketPlayOutNamedEntitySpawn;
import net.minecraft.server.v1_11_R1.PacketPlayOutPlayerInfo;
import net.minecraft.server.v1_11_R1.PlayerConnection;
import net.minecraft.server.v1_11_R1.PlayerInteractManager;
import net.minecraft.server.v1_11_R1.WorldServer;
import net.minecraft.server.v1_11_R1.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;

public class NpcManager {
    
    public static void createNPC(Player player, String npcname) {
        Location location = ForceFieldAndCommand.location;
        MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer();
        WorldServer world = ((CraftWorld) player.getWorld()).getHandle();
        GameProfile gameprofile = new GameProfile(UUID.fromString("13e54afa-88dc-11e7-bb31-be2e44b06b34"), player.getName().toString());
        
        EntityPlayer npc = new EntityPlayer(server, world, gameprofile,new PlayerInteractManager(world));
        Player npcPlayer = npc.getBukkitEntity().getPlayer();
        npcPlayer.setDisplayName("");
        
        npc.setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
        PlayerConnection connection = ((CraftPlayer)player).getHandle().playerConnection;
        connection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, npc));
a       
    }
    
    

}

Merci :D
 
Bonjour !

Je ne me suis jamais vraiment penché sur les entités comme les NPC en java. Mais n'existe-t-il pas un moyen de checker si ton entité en question existe déjà ou non et de la tuer ? Il existe beaucoup de commande IG pour tuer une entité. Je ne me suis pas penché sur le sujet mais serait-il possible d'utiliser simplement une commande pour tuer ton entité en question ? :)

AlexFatta
 
Coucou ;)

Si je ne me trompe pas un NPC n'est pas une vraiment une entité : c'est seulement une "image" envoyé à un joueur (je ne suis pas sur)
 
Hey ! :D

Tu parles bien d'un PNJ Villageois qui font "han" à longueur de journée ? Bah je croyais que c'était une entité xD Tout le monde peut se tromper :p Bah je ne sais pas alors x) Désolé ^^

AlexFatta
 
Si il parle des villageois qui font han se sont bien des entité et il existe un commande qui fonctionne même en vanilla : /kill @e[type=villager].
 
Salut ! J'ai lus le poste (tout lut, mais pas comprit ce que tu voulais faire), peux-tu me faire une expliquation, peut-être que je pourrais t'aider
 
Salut ;)

Je veux juste savoir comment faire pour supprimer un npc que j'ai fait spawn avec la classe au dessus :p