Skip to content

Commit f1b8eb0

Browse files
committed
Version 1.1
1 parent 04b5f04 commit f1b8eb0

File tree

3 files changed

+63
-24
lines changed

3 files changed

+63
-24
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
TitleAPI
22
=====================
33

4-
LInk To Spigot Page Soon
4+
Spigot Page/More Info: http://www.spigotmc.org/resources/titleapi.1325/
5+
6+
Release Notes: http://www.spigotmc.org/resources/titleapi.1325/history

src/com/connorlinfoot/titleapi/TitleAPI.java

Lines changed: 59 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22

33
import net.minecraft.server.v1_7_R4.ChatSerializer;
44
import net.minecraft.server.v1_7_R4.IChatBaseComponent;
5+
import org.bukkit.Bukkit;
56
import org.bukkit.ChatColor;
67
import org.bukkit.Server;
8+
import org.bukkit.command.Command;
9+
import org.bukkit.command.CommandSender;
710
import org.bukkit.command.ConsoleCommandSender;
811
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
912
import org.bukkit.entity.Player;
@@ -13,12 +16,15 @@
1316

1417
public class TitleAPI extends JavaPlugin {
1518

16-
public static void sendFullTitle(Player player, Integer fadeIn, Integer stay, Integer fadeOut, String title, String subtitle) {
19+
public static void sendTitle(Player player, Integer fadeIn, Integer stay, Integer fadeOut, String title, String subtitle) {
1720
CraftPlayer craftPlayer = (CraftPlayer) player;
1821
if (craftPlayer.getHandle().playerConnection.networkManager.getVersion() != 47)
1922
return; // If using 1.8, allow method to run
2023

24+
if (title == null) title = "";
2125
title = ChatColor.translateAlternateColorCodes('&', title);
26+
27+
if (subtitle == null) subtitle = "";
2228
subtitle = ChatColor.translateAlternateColorCodes('&', subtitle);
2329

2430
IChatBaseComponent title2;
@@ -35,34 +41,65 @@ public static void sendFullTitle(Player player, Integer fadeIn, Integer stay, In
3541
craftPlayer.getHandle().playerConnection.sendPacket(new ProtocolInjector.PacketTitle(ProtocolInjector.PacketTitle.Action.SUBTITLE, subtitle2));
3642
}
3743

38-
public static void sendTitle(Player player, Integer fadeIn, Integer stay, Integer fadeOut, String title) {
39-
CraftPlayer craftPlayer = (CraftPlayer) player;
40-
if (craftPlayer.getHandle().playerConnection.networkManager.getVersion() != 47)
41-
return; // If using 1.8, allow method to run
44+
@Override
45+
public boolean onCommand(CommandSender sender, Command command, String string, String[] args) {
46+
if (args.length < 6) {
47+
sender.sendMessage(ChatColor.RED + "Usage: /title <player> title|subtitle <fadeIn> <stay> <fadeOut> <text>");
48+
sender.sendMessage(ChatColor.RED + "Note: fadeIn, stay &, fadeOut require to be a number, works in ticks; 20 = 1 second");
49+
return false;
50+
}
4251

43-
title = ChatColor.translateAlternateColorCodes('&', title);
52+
if (Bukkit.getPlayer(args[0]) == null) {
53+
sender.sendMessage(ChatColor.RED + "Player not found");
54+
return false;
55+
}
4456

45-
IChatBaseComponent title2;
46-
title2 = ChatSerializer.a(TextConverter.convert(title));
57+
Player player = Bukkit.getPlayer(args[0]);
4758

48-
craftPlayer.getHandle().playerConnection.sendPacket(new ProtocolInjector.PacketTitle(ProtocolInjector.PacketTitle.Action.TIMES, fadeIn, stay, fadeOut));
49-
if (title != null)
50-
craftPlayer.getHandle().playerConnection.sendPacket(new ProtocolInjector.PacketTitle(ProtocolInjector.PacketTitle.Action.TITLE, title2));
51-
}
59+
if (!args[1].equalsIgnoreCase("title") && !args[1].equalsIgnoreCase("subtitle")) {
60+
sender.sendMessage(ChatColor.RED + "Invalid argument: " + args[1]);
61+
return false;
62+
}
5263

53-
public static void sendSubtitle(Player player, Integer fadeIn, Integer stay, Integer fadeOut, String subtitle) {
54-
CraftPlayer craftPlayer = (CraftPlayer) player;
55-
if (craftPlayer.getHandle().playerConnection.networkManager.getVersion() != 47)
56-
return; // If using 1.8, allow method to run
64+
if (!isInteger(args[2])) {
65+
sender.sendMessage(ChatColor.RED + "Not a number: " + args[2]);
66+
return false;
67+
}
5768

58-
subtitle = ChatColor.translateAlternateColorCodes('&', subtitle);
69+
if (!isInteger(args[3])) {
70+
sender.sendMessage(ChatColor.RED + "Not a number: " + args[3]);
71+
return false;
72+
}
5973

60-
IChatBaseComponent subtitle2;
61-
subtitle2 = ChatSerializer.a(TextConverter.convert(subtitle));
74+
if (!isInteger(args[4])) {
75+
sender.sendMessage(ChatColor.RED + "Not a number: " + args[4]);
76+
return false;
77+
}
6278

63-
craftPlayer.getHandle().playerConnection.sendPacket(new ProtocolInjector.PacketTitle(ProtocolInjector.PacketTitle.Action.TIMES, fadeIn, stay, fadeOut));
64-
if (subtitle != null)
65-
craftPlayer.getHandle().playerConnection.sendPacket(new ProtocolInjector.PacketTitle(ProtocolInjector.PacketTitle.Action.SUBTITLE, subtitle2));
79+
StringBuilder builder = new StringBuilder();
80+
for (String value : args) {
81+
builder.append(value).append(" ");
82+
}
83+
String message = builder.toString();
84+
message = message.replace(args[0] + " ", "");
85+
message = message.replace(args[1] + " ", "");
86+
message = message.replace(args[2] + " ", "");
87+
message = message.replace(args[3] + " ", "");
88+
message = message.replace(args[4] + " ", "");
89+
90+
if (args[1].equalsIgnoreCase("title")) {
91+
sendTitle(player, Integer.parseInt(args[2]), Integer.parseInt(args[3]), Integer.parseInt(args[4]), message, null);
92+
sender.sendMessage(ChatColor.GREEN + "Title sent");
93+
return true;
94+
}
95+
96+
if (args[1].equalsIgnoreCase("subtitle")) {
97+
sendTitle(player, Integer.parseInt(args[2]), Integer.parseInt(args[3]), Integer.parseInt(args[4]), null, message);
98+
sender.sendMessage(ChatColor.GREEN + "Title sent");
99+
return true;
100+
}
101+
102+
return false;
66103
}
67104

68105
public void onEnable() {

src/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: TitleAPI
22
description: TitleAPI
33
main: com.connorlinfoot.titleapi.TitleAPI
4-
version: 1.0
4+
version: 1.1
55
commands:
66
title:
77
description: Minecraft 1.8 Title Feature

0 commit comments

Comments
 (0)