Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.hidozia.api.title;
- import java.lang.reflect.Field;
- import org.bukkit.ChatColor;
- import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
- import org.bukkit.entity.Player;
- import net.minecraft.server.v1_8_R3.IChatBaseComponent;
- import net.minecraft.server.v1_8_R3.PacketPlayOutChat;
- import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerListHeaderFooter;
- import net.minecraft.server.v1_8_R3.PacketPlayOutTitle;
- import net.minecraft.server.v1_8_R3.PlayerConnection;
- import net.minecraft.server.v1_8_R3.IChatBaseComponent.ChatSerializer;
- public class Title {
- public void sendTitle(Player player, Integer fadeIn, Integer stay, Integer fadeOut, String message) {
- sendTitle(player, fadeIn, stay, fadeOut, message, null);
- }
- @Deprecated
- public void sendSubtitle(Player player, Integer fadeIn, Integer stay, Integer fadeOut, String message) {
- sendTitle(player, fadeIn, stay, fadeOut, null, message);
- }
- @Deprecated
- public void sendFullTitle(Player player, Integer fadeIn, Integer stay, Integer fadeOut, String title,
- String subtitle) {
- sendTitle(player, fadeIn, stay, fadeOut, title, subtitle);
- }
- public void sendTitle(Player player, Integer fadeIn, Integer stay, Integer fadeOut, String title,
- String subtitle) {
- PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
- PacketPlayOutTitle packetPlayOutTimes = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TIMES, null,
- fadeIn.intValue(), stay.intValue(), fadeOut.intValue());
- connection.sendPacket(packetPlayOutTimes);
- if (subtitle != null) {
- subtitle = subtitle.replaceAll("%player%", player.getDisplayName());
- subtitle = ChatColor.translateAlternateColorCodes('&', subtitle);
- IChatBaseComponent titleSub = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + subtitle + "\"}");
- PacketPlayOutTitle packetPlayOutSubTitle = new PacketPlayOutTitle(
- PacketPlayOutTitle.EnumTitleAction.SUBTITLE, titleSub);
- connection.sendPacket(packetPlayOutSubTitle);
- }
- if (title != null) {
- title = title.replaceAll("%player%", player.getDisplayName());
- title = ChatColor.translateAlternateColorCodes('&', title);
- IChatBaseComponent titleMain = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + title + "\"}");
- PacketPlayOutTitle packetPlayOutTitle = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TITLE,
- titleMain);
- connection.sendPacket(packetPlayOutTitle);
- }
- }
- public void sendTabTitle(Player player, String header, String footer) {
- if (header == null) {
- header = "";
- }
- header = ChatColor.translateAlternateColorCodes('&', header);
- if (footer == null) {
- footer = "";
- }
- footer = ChatColor.translateAlternateColorCodes('&', footer);
- header = header.replaceAll("%player%", player.getDisplayName());
- footer = footer.replaceAll("%player%", player.getDisplayName());
- PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
- IChatBaseComponent tabTitle = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + header + "\"}");
- IChatBaseComponent tabFoot = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + footer + "\"}");
- PacketPlayOutPlayerListHeaderFooter headerPacket = new PacketPlayOutPlayerListHeaderFooter(tabTitle);
- try {
- Field field = headerPacket.getClass().getDeclaredField("b");
- field.setAccessible(true);
- field.set(headerPacket, tabFoot);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- connection.sendPacket(headerPacket);
- }
- }
- public void sendActionBar(Player player, String message) {
- CraftPlayer p = (CraftPlayer) player;
- IChatBaseComponent cbc = ChatSerializer.a("{\"text\": \"" + message + "\"}");
- PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc, (byte) 2);
- ((CraftPlayer) p).getHandle().playerConnection.sendPacket(ppoc);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement