Advertisement
Guest User

Untitled

a guest
May 12th, 2017
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  1. package com.frystcraft.equalia.objetos;
  2.  
  3. import java.util.UUID;
  4. import org.bukkit.Bukkit;
  5. import org.bukkit.Location;
  6. import org.bukkit.craftbukkit.v1_11_R1.CraftServer;
  7. import org.bukkit.craftbukkit.v1_11_R1.CraftWorld;
  8. import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
  9. import org.bukkit.entity.ArmorStand;
  10. import org.bukkit.entity.Entity;
  11. import org.bukkit.entity.EntityType;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.HandlerList;
  15. import org.bukkit.event.Listener;
  16. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  17. import org.bukkit.event.player.PlayerJoinEvent;
  18. import org.bukkit.scheduler.BukkitTask;
  19. import com.frystcraft.equalia.EAPI;
  20. import com.mojang.authlib.GameProfile;
  21. import com.mojang.authlib.properties.Property;
  22. import net.md_5.bungee.api.ChatColor;
  23. import net.minecraft.server.v1_11_R1.EntityPlayer;
  24. import net.minecraft.server.v1_11_R1.Packet;
  25. import net.minecraft.server.v1_11_R1.PacketPlayOutNamedEntitySpawn;
  26. import net.minecraft.server.v1_11_R1.PacketPlayOutPlayerInfo;
  27. import net.minecraft.server.v1_11_R1.PlayerConnection;
  28. import net.minecraft.server.v1_11_R1.PlayerInteractManager;
  29. import net.minecraft.server.v1_11_R1.WorldServer;
  30. import net.minecraft.server.v1_11_R1.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;
  31.  
  32. public class Relogeo{
  33. private final String nick;
  34. @SuppressWarnings("unused")
  35. private final Listener listener;
  36. private final EntityPlayer NPC;
  37. private final Player CNPC;
  38. private final Location lugar;
  39. private final Packet<?> P1,P2;
  40. private int segundos=30;
  41. private final ArmorStand as;
  42. private BukkitTask bs;
  43. public Relogeo(Player j){
  44. nick=j.getName();
  45. lugar=j.getLocation();
  46. WorldServer mundo=((CraftWorld)lugar.getWorld()).getHandle();
  47. Iterable<?extends Property> txt=((CraftPlayer)j).getProfile().getProperties().get("textures");
  48. CraftServer server=((CraftServer)Bukkit.getServer());
  49. NPC=new EntityPlayer(server.getServer(),mundo,new GameProfile(UUID.randomUUID(),nick),new PlayerInteractManager(mundo));
  50. NPC.getProfile().getProperties().putAll("textures",txt);
  51. NPC.setLocation(lugar.getX(),lugar.getY(),lugar.getZ(),lugar.getYaw(),lugar.getPitch());
  52. CNPC=new CraftPlayer(server,NPC);
  53. P1=new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER,NPC);
  54. P2=new PacketPlayOutNamedEntitySpawn(NPC);
  55. Bukkit.getPluginManager().registerEvents(listener=new Listener(){
  56. @EventHandler
  57. public void alEntrar(PlayerJoinEvent e){
  58. Player j=e.getPlayer();
  59. PlayerConnection con=((CraftPlayer)j).getHandle().playerConnection;
  60. con.sendPacket(P1);
  61. con.sendPacket(P2);
  62. }
  63. @EventHandler
  64. public void alLoguear(UsuarioLogEvent e){
  65. Usuario u=e.getUsuario();
  66. if(!u.getNick().equals(nick))return;
  67. final Listener listener=this;
  68. new Thread(){
  69. @Override
  70. public void run(){
  71. HandlerList.unregisterAll(listener);
  72. Packet<?> p=new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER,NPC);
  73. for(Player j:Bukkit.getOnlinePlayers())((CraftPlayer)j).getHandle().playerConnection.sendPacket(p);
  74. bs.cancel();
  75.  
  76. }
  77. }.start();
  78. }
  79. @EventHandler
  80. public void alPelear(EntityDamageByEntityEvent e){
  81. Entity ataca=e.getDamager(),victima=e.getEntity();
  82. if(!(ataca instanceof Player&&victima.equals(NPC)))return;
  83. e.setCancelled(false);
  84. ataca.sendMessage("SE DA EL CASO "+victima.getName());
  85. }
  86. },EAPI.instancia);
  87. as=(ArmorStand)lugar.getWorld().spawnEntity(lugar,EntityType.ARMOR_STAND);
  88. as.setCustomNameVisible(true);
  89. as.setVisible(false);
  90. as.setCustomName(ChatColor.RED+"[RELOG] "+ChatColor.GRAY+"[INMORTAL] "+ChatColor.YELLOW+"[30s]");
  91. bs=Bukkit.getScheduler().runTaskTimer(EAPI.instancia,new Runnable(){
  92. @Override
  93. public void run(){
  94. segundos--;
  95. if(segundos==0){
  96. bs.cancel();
  97. return;
  98. }as.setCustomName(ChatColor.RED+"[RELOG] "+ChatColor.GRAY+"[INMORTAL] "+ChatColor.YELLOW+"["+segundos+"s]");
  99. }
  100. },20,20);
  101. CNPC.addPassenger(as);
  102. for(Player J:Bukkit.getOnlinePlayers()){
  103. PlayerConnection con=((CraftPlayer)J).getHandle().playerConnection;
  104. con.sendPacket(P1);
  105. con.sendPacket(P2);
  106. }
  107. }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement