Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package plugin;
- import org.bukkit.Bukkit;
- import org.bukkit.Location;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.Listener;
- import org.bukkit.plugin.java.JavaPlugin;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.UUID;
- import net.minecraft.server.v1_8_R1.EntityHuman;
- import net.minecraft.server.v1_8_R1.EntityPlayer;
- import net.minecraft.server.v1_8_R1.MinecraftServer;
- import net.minecraft.server.v1_8_R1.PacketPlayOutEntityDestroy;
- import net.minecraft.server.v1_8_R1.PacketPlayOutNamedEntitySpawn;
- import net.minecraft.server.v1_8_R1.PlayerInteractManager;
- import net.minecraft.server.v1_8_R1.WorldServer;
- import org.bukkit.Bukkit;
- import org.bukkit.Location;
- import org.bukkit.craftbukkit.v1_8_R1.CraftServer;
- import org.bukkit.craftbukkit.v1_8_R1.CraftWorld;
- import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerChatEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import com.mojang.authlib.GameProfile;
- public class ClonePlugin extends JavaPlugin implements Listener{
- static HashMap<String,EntityPlayer> npcs = new HashMap<String,EntityPlayer>();
- @Override
- public void onEnable() {
- Bukkit.getServer().getPluginManager().registerEvents(this,this);
- }
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- if(!(sender instanceof Player)){
- return false;
- }
- Player p = (Player) sender;
- if(command.getName().equalsIgnoreCase("npc")){
- if(args.length>0){
- if(args.length>1){
- if(args[0].equalsIgnoreCase("create")){
- if(Bukkit.getOfflinePlayer(args[1]).getUniqueId() != null){
- Location l = p.getLocation();
- UUID id =Bukkit.getOfflinePlayer(args[1]).getUniqueId();
- sendNPCToPlayer(p, l, args[1], id);
- }
- }
- if(args[0].equalsIgnoreCase("destroy")){
- if(npcs.containsKey(args[1])){
- destroyEntity(npcs.get(args[1]).getId(), p);
- }
- }
- }
- }
- }
- return false;
- }
- public static int sendNPCToPlayer(Player p, Location loc, String npcName, UUID npcUUID){
- MinecraftServer nmsServer = ((CraftServer) Bukkit.getServer()).getServer();
- WorldServer nmsWorld = ((CraftWorld) loc.getWorld()).getHandle();
- EntityPlayer npc = new EntityPlayer(nmsServer, nmsWorld, new GameProfile(npcUUID, npcName), new PlayerInteractManager(nmsWorld));
- npc.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
- PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(npc);
- ((CraftPlayer) p).getHandle().playerConnection.sendPacket(spawn);
- npcs.put(npc.getName(),npc);
- return npc.getId();
- }
- public static void destroyEntity(int id, Player p){
- PacketPlayOutEntityDestroy removePacket = new PacketPlayOutEntityDestroy(id);
- ((CraftPlayer) p).getHandle().playerConnection.sendPacket(removePacket);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement