From 999fba47050b30ee6f1b07f61f1795dd11876906 Mon Sep 17 00:00:00 2001 From: David Berdik Date: Sun, 2 Apr 2017 20:40:21 -0400 Subject: [PATCH] The in-game help command now shows command descriptions as pop-ups when the user hovers over the commands --- .../herobrine/AI/Help.java | 161 ++++++++++++------ 1 file changed, 110 insertions(+), 51 deletions(-) diff --git a/src/net/theprogrammersworld/herobrine/AI/Help.java b/src/net/theprogrammersworld/herobrine/AI/Help.java index 84778b7..5a172cd 100644 --- a/src/net/theprogrammersworld/herobrine/AI/Help.java +++ b/src/net/theprogrammersworld/herobrine/AI/Help.java @@ -3,61 +3,120 @@ package net.theprogrammersworld.herobrine.AI; import org.bukkit.ChatColor; import org.bukkit.entity.Player; +import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer; + +import net.minecraft.server.v1_11_R1.IChatBaseComponent; +import net.minecraft.server.v1_11_R1.IChatBaseComponent.ChatSerializer; +import net.minecraft.server.v1_11_R1.PacketPlayOutChat; + public class Help { public static void displayHelp(Player player) { // Display the help, listing only the commands that the user has permissions to use. player.sendMessage(ChatColor.RED - + "[Herobrine] Command List"); - player.sendMessage(ChatColor.GREEN - + "/herobrine help - Shows this list of Herobrine commands"); - if(player.hasPermission("herobrine.attack")) - player.sendMessage(ChatColor.GREEN - + "/herobrine attack - Sends Herobrine to attack"); - if(player.hasPermission("herobrine.haunt")) - player.sendMessage(ChatColor.GREEN - + "/herobrine haunt - Sends Herobrine to haunt"); - if(player.hasPermission("herobrine.cancel")) - player.sendMessage(ChatColor.GREEN - + "/herobrine cancel - Cancels Herobrine's current target"); - if(player.hasPermission("herobrine.reload")) - player.sendMessage(ChatColor.GREEN - + "/herobrine reload - Reloads the Herobrine configuration file"); - if(player.hasPermission("herobrine.position")) - player.sendMessage(ChatColor.GREEN - + "/herobrine position - Displays Herobrine's coordinates"); - if(player.hasPermission("herobrine.pyramid")) - player.sendMessage(ChatColor.GREEN - + "/herobrine pyramid - Builds a pyramid"); - if(player.hasPermission("herobrine.bury")) - player.sendMessage(ChatColor.GREEN - + "/herobrine bury - Buries the specified player"); - if(player.hasPermission("herobrine.graveyard")) - player.sendMessage(ChatColor.GREEN - + "/herobrine graveyard - Teleports the player"); - if(player.hasPermission("herobrine.temple")) - player.sendMessage(ChatColor.GREEN - + "/herobrine temple - Builds a temple near the player"); - if(player.hasPermission("herobrine.heads")) - player.sendMessage(ChatColor.GREEN - + "/herobrine heads - Spawns heads near the player"); - if(player.hasPermission("herobrine.cave")) - player.sendMessage(ChatColor.GREEN - + "/herobrine cave - Creates a cave near the player"); - if(player.hasPermission("herobrine.burn")) - player.sendMessage(ChatColor.GREEN - + "/herobrine burn - Burns the specified player"); - if(player.hasPermission("herobrine.curse")) - player.sendMessage(ChatColor.GREEN - + "/herobrine curse - Places curse on the player"); - if(player.hasPermission("herobrine.speakrandom")) - player.sendMessage(ChatColor.GREEN - + "/herobrine speakrandom - Sends a random Herobrine message to the player"); - if(player.hasPermission("herobrine.speak")) - player.sendMessage(ChatColor.GREEN - + "/herobrine speak - Sends a chat message on Herobrine's behalf"); - if(player.hasPermission("herobrine.allworlds")) - player.sendMessage(ChatColor.GREEN - + "/herobrine allworlds - Grants Herobrine access to all worlds"); + + "[Herobrine] Command List (hover over for more info)"); + + + IChatBaseComponent help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine help\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aShows this list of Herobrine commands\"}}]}"); + PacketPlayOutChat packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + + if(player.hasPermission("herobrine.attack")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine attack \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aSends Herobrine to attack\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.haunt")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine haunt \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aSends Herobrine to haunt\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.cancel")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine cancel\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aCancels Herobrine's current target\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.reload")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine reload\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aReloads the Herobrine configuration file\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.position")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine position\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aDisplays Herobrine's coordinates\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.pyramid")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine pyramid \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aBuilds a pyramid\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.bury")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine bury \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aBuries the specified player\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.graveyard")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine graveyard \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aTeleports the player\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.temple")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine temple \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aBuilds a temple near the player\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.heads")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine heads \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aSpawns heads near the player\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.cave")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine cave \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aCreates a cave near the player\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.burn")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine burn \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aBurns the specified player\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.curse")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine curse \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aPlaces a curse on the player\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.speakrandom")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine speakrandom \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aSends a random Herobrine message to the player\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.speak")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine speak \",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aSends a chat message on Herobrine's behalf\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + if(player.hasPermission("herobrine.allworlds")) { + help = ChatSerializer.a("{\"text\":\"\",\"extra\":[{\"text\":\"§a/herobrine allworlds\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + + "§aGrants Herobrine access to all worlds\"}}]}"); + packet = new PacketPlayOutChat(help); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } } }