Advertisement
Dashnopat

[Minecraft 1.8+] Packets API

Dec 18th, 2014
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.23 KB | None | 0 0
  1. package de.cynfos.api;
  2.  
  3. import java.lang.reflect.Field;
  4.  
  5. import net.minecraft.server.v1_8_R1.ChatSerializer;
  6. import net.minecraft.server.v1_8_R1.EnumTitleAction;
  7. import net.minecraft.server.v1_8_R1.IChatBaseComponent;
  8. import net.minecraft.server.v1_8_R1.PacketPlayOutChat;
  9. import net.minecraft.server.v1_8_R1.PacketPlayOutPlayerListHeaderFooter;
  10. import net.minecraft.server.v1_8_R1.PacketPlayOutTitle;
  11. import net.minecraft.server.v1_8_R1.PlayerConnection;
  12.  
  13. import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer;
  14. import org.bukkit.entity.Player;
  15.  
  16. public class PacketAPI {
  17.    
  18.     public static void sendActionBar(Player p, String msg) {
  19.         if (msg == null) msg = "";
  20.        
  21.         PlayerConnection con = ((CraftPlayer)p).getHandle().playerConnection;
  22.        
  23.         IChatBaseComponent chat = ChatSerializer.a("{\"text\": \"" + msg + "\"}");
  24.         PacketPlayOutChat packet = new PacketPlayOutChat(chat, (byte) 2);
  25.        
  26.         con.sendPacket(packet);
  27.     }
  28.    
  29.     public static void sendTablist(Player p, String header, String footer) {
  30.         if (header == null) header = "";
  31.         if (footer == null) footer = "";
  32.        
  33.         PlayerConnection con = ((CraftPlayer)p).getHandle().playerConnection;
  34.        
  35.         IChatBaseComponent tabheader = ChatSerializer.a("{\"text\": \"" + header + "\"}");
  36.         IChatBaseComponent tabfooter = ChatSerializer.a("{\"text\": \"" + footer + "\"}");
  37.        
  38.         PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter(tabheader);
  39.        
  40.         try {
  41.             Field f = packet.getClass().getDeclaredField("b");
  42.             f.setAccessible(true);
  43.             f.set(packet, tabfooter);
  44.         } catch (Exception e) {
  45.             e.printStackTrace();
  46.         } finally {
  47.             con.sendPacket(packet);
  48.         }
  49.     }
  50.    
  51.     public static void sendTitle(Player p, String msg) {
  52.         if (msg == null) msg = "";
  53.        
  54.         PlayerConnection con = ((CraftPlayer)p).getHandle().playerConnection;
  55.         IChatBaseComponent title = ChatSerializer.a("{\"text\": \"" + msg + "\"}");
  56.        
  57.         PacketPlayOutTitle packet = new PacketPlayOutTitle(EnumTitleAction.TITLE, title);
  58.        
  59.         con.sendPacket(packet);
  60.        
  61.     }
  62.    
  63.     public static void sendSubTitle(Player p, String msg) {
  64.         if (msg == null) msg = "";
  65.        
  66.         PlayerConnection con = ((CraftPlayer)p).getHandle().playerConnection;
  67.         IChatBaseComponent subtitle = ChatSerializer.a("{\"text\": \"" + msg + "\"}");
  68.        
  69.         PacketPlayOutTitle packet = new PacketPlayOutTitle(EnumTitleAction.SUBTITLE, subtitle);
  70.        
  71.         con.sendPacket(packet);
  72.        
  73.     }
  74.    
  75.     public static void sendKlickableChatMessage(Player p, String startMessage, String linkedMessage, String endMessage, String hoverMessage, String commandToRun) {
  76.         if (startMessage == null) startMessage = "";
  77.         if (endMessage == null) endMessage = "";
  78.         if (hoverMessage == null) hoverMessage = "";
  79.         if (commandToRun == null) commandToRun = "";
  80.        
  81.         PlayerConnection con = ((CraftPlayer)p).getHandle().playerConnection;
  82.        
  83.         IChatBaseComponent chat = ChatSerializer.a("{\"text\":\"" + startMessage + "\",\"extra\":"
  84.                 + "[{\"text\":\"" + linkedMessage + "\",\"clickEvent\":{\"action\":\"run_command\","
  85.                 + "\"value\":\"/" + commandToRun + "\"},\"hoverEvent\":{\"action\":\"show_text\","
  86.                 + "\"value\":\"" + hoverMessage + "\"}}]}").a(endMessage);
  87.        
  88.         PacketPlayOutChat packet = new PacketPlayOutChat(chat);
  89.        
  90.         con.sendPacket(packet);
  91.     }
  92.  
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement