Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.frystcraft.equalia.objetos;
- 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.ArmorStand;
- import org.bukkit.entity.Entity;
- import org.bukkit.entity.EntityType;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.HandlerList;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.EntityDamageByEntityEvent;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.scheduler.BukkitTask;
- import com.frystcraft.equalia.EAPI;
- import com.mojang.authlib.GameProfile;
- import com.mojang.authlib.properties.Property;
- import net.md_5.bungee.api.ChatColor;
- import net.minecraft.server.v1_11_R1.EntityPlayer;
- import net.minecraft.server.v1_11_R1.Packet;
- 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 Relogeo{
- private final String nick;
- @SuppressWarnings("unused")
- private final Listener listener;
- private final EntityPlayer NPC;
- private final Player CNPC;
- private final Location lugar;
- private final Packet<?> P1,P2;
- private int segundos=30;
- private final ArmorStand as;
- private BukkitTask bs;
- public Relogeo(Player j){
- nick=j.getName();
- lugar=j.getLocation();
- WorldServer mundo=((CraftWorld)lugar.getWorld()).getHandle();
- Iterable<?extends Property> txt=((CraftPlayer)j).getProfile().getProperties().get("textures");
- CraftServer server=((CraftServer)Bukkit.getServer());
- NPC=new EntityPlayer(server.getServer(),mundo,new GameProfile(UUID.randomUUID(),nick),new PlayerInteractManager(mundo));
- NPC.getProfile().getProperties().putAll("textures",txt);
- NPC.setLocation(lugar.getX(),lugar.getY(),lugar.getZ(),lugar.getYaw(),lugar.getPitch());
- CNPC=new CraftPlayer(server,NPC);
- P1=new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER,NPC);
- P2=new PacketPlayOutNamedEntitySpawn(NPC);
- Bukkit.getPluginManager().registerEvents(listener=new Listener(){
- @EventHandler
- public void alEntrar(PlayerJoinEvent e){
- Player j=e.getPlayer();
- PlayerConnection con=((CraftPlayer)j).getHandle().playerConnection;
- con.sendPacket(P1);
- con.sendPacket(P2);
- }
- @EventHandler
- public void alLoguear(UsuarioLogEvent e){
- Usuario u=e.getUsuario();
- if(!u.getNick().equals(nick))return;
- final Listener listener=this;
- new Thread(){
- @Override
- public void run(){
- HandlerList.unregisterAll(listener);
- Packet<?> p=new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER,NPC);
- for(Player j:Bukkit.getOnlinePlayers())((CraftPlayer)j).getHandle().playerConnection.sendPacket(p);
- bs.cancel();
- }
- }.start();
- }
- @EventHandler
- public void alPelear(EntityDamageByEntityEvent e){
- Entity ataca=e.getDamager(),victima=e.getEntity();
- if(!(ataca instanceof Player&&victima.equals(NPC)))return;
- e.setCancelled(false);
- ataca.sendMessage("SE DA EL CASO "+victima.getName());
- }
- },EAPI.instancia);
- as=(ArmorStand)lugar.getWorld().spawnEntity(lugar,EntityType.ARMOR_STAND);
- as.setCustomNameVisible(true);
- as.setVisible(false);
- as.setCustomName(ChatColor.RED+"[RELOG] "+ChatColor.GRAY+"[INMORTAL] "+ChatColor.YELLOW+"[30s]");
- bs=Bukkit.getScheduler().runTaskTimer(EAPI.instancia,new Runnable(){
- @Override
- public void run(){
- segundos--;
- if(segundos==0){
- bs.cancel();
- return;
- }as.setCustomName(ChatColor.RED+"[RELOG] "+ChatColor.GRAY+"[INMORTAL] "+ChatColor.YELLOW+"["+segundos+"s]");
- }
- },20,20);
- CNPC.addPassenger(as);
- for(Player J:Bukkit.getOnlinePlayers()){
- PlayerConnection con=((CraftPlayer)J).getHandle().playerConnection;
- con.sendPacket(P1);
- con.sendPacket(P2);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement