-
Notifications
You must be signed in to change notification settings - Fork 0
/
Tab.java
90 lines (66 loc) · 2.34 KB
/
Tab.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package me.clonalejandro.nmstest.listeners;
import net.minecraft.server.v1_8_R3.IChatBaseComponent;
import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerListHeaderFooter;
import net.minecraft.server.v1_8_R3.PlayerConnection;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
import java.lang.reflect.Field;
/**
* Created by alejandrorioscalera
* On 20/4/17
*
* -- SOCIAL NETWORKS --
*
* GitHub: https://github.com/clonalejandro or @clonalejandro
* Website: https://clonalejandro.me/
* Twitter: https://twitter.com/clonalejandro11/ or @clonalejandro11
* Keybase: https://keybase.io/clonalejandro/
*
* -- LICENSE --
*
* All rights reserved for clonalejandro ©nmstest 2017 / 2018
*/
public class Tab {
/**
*
* @param p
* @param header
*/
public static void sendTabHeader(Player p, String header){
CraftPlayer cp = (CraftPlayer) p;
PlayerConnection connection = cp.getHandle().playerConnection;
IChatBaseComponent top = IChatBaseComponent.ChatSerializer.a("{text: '" + header + "'}");
PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter();
try {
Field headerfield = packet.getClass().getDeclaredField("a");
headerfield.setAccessible(true);
headerfield.set(packet, top);
headerfield.setAccessible(!headerfield.isAccessible());
}
catch (Exception ex){
ex.printStackTrace();
}
connection.sendPacket(packet);
}
/**
*
* @param p
* @param footer
*/
public static void sendTabFooter(Player p, String footer){
CraftPlayer cp = (CraftPlayer) p;
PlayerConnection connection = cp.getHandle().playerConnection;
IChatBaseComponent bottom = IChatBaseComponent.ChatSerializer.a("{text: '" + footer + "'}");
PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter();
try {
Field footerField = packet.getClass().getDeclaredField("b");
footerField.setAccessible(true);
footerField.set(packet, bottom);
footerField.setAccessible(!footerField.isAccessible());
}
catch (Exception ex){
ex.printStackTrace();
}
connection.sendPacket(packet);
}
}