Command Signs

Discussion in 'Plugin Development' started by thatdubstepgamer, Aug 14, 2013.

Thread Status:
Not open for further replies.
  1. I have created a sign that when you do [kit selector] on the top line it converts it to [Choose Kit] which is what i want but i also i created a command /kits which displays kits. I want to be able to right click sign and have it run the command /kits. Ive looked on the fourms and youtube videos i cant find how to do it plesae help.

    ====Kit.java====
    Code:java
    1. package me.jp.Ctf;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Material;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.enchantments.Enchantment;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.inventory.ItemStack;
    11. import org.bukkit.inventory.PlayerInventory;
    12.  
    13. public class kits implements Listener {
    14. public Ctf plugin;
    15.  
    16. public kits(Ctf Instance){
    17. plugin = Instance;
    18. }
    19. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
    20. Player player = (Player) sender;
    21. //Kit Archer
    22. if (commandLabel.equalsIgnoreCase("archer")){
    23. player.getInventory().clear();
    24. ItemStack bow = new ItemStack(Material.BOW, 1);
    25. ItemStack compass = new ItemStack(Material.COMPASS, 1);
    26. ItemStack arrow = new ItemStack(Material.ARROW, 128);
    27. ItemStack stonesword = new ItemStack(Material.STONE_SWORD, 1);
    28. ItemStack steak = new ItemStack(Material.COOKED_BEEF, 4);
    29. ItemStack chainchestplate = new ItemStack(Material.CHAINMAIL_CHESTPLATE, 1);
    30. ItemStack chainleggings = new ItemStack(Material.CHAINMAIL_LEGGINGS, 1);
    31. ItemStack chainboots = new ItemStack(Material.CHAINMAIL_BOOTS, 1);
    32. ItemStack chainhelmet = new ItemStack(Material.CHAINMAIL_HELMET, 1);
    33. PlayerInventory pi = player.getInventory();
    34. bow.addEnchantment(Enchantment.ARROW_DAMAGE, 2);
    35. pi.addItem(stonesword);
    36. pi.addItem(steak);
    37. pi.addItem(bow);
    38. pi.addItem(arrow);
    39. pi.addItem(compass);
    40. pi.setChestplate(chainchestplate);
    41. pi.setHelmet(chainhelmet);
    42. pi.setLeggings(chainleggings);
    43. pi.setBoots(chainboots);
    44. }else{
    45. //Kit Heavy
    46. if (commandLabel.equalsIgnoreCase("heavy")){
    47. player.getInventory().clear();
    48. ItemStack diamondsword = new ItemStack(Material.DIAMOND_SWORD, 1);
    49. ItemStack steak = new ItemStack(Material.COOKED_BEEF, 4);
    50. ItemStack compass = new ItemStack(Material.COMPASS, 1);
    51. ItemStack diamondchestplate = new ItemStack(Material.DIAMOND_CHESTPLATE, 1);
    52. ItemStack diamondleggings = new ItemStack(Material.DIAMOND_LEGGINGS, 1);
    53. ItemStack diamondboots = new ItemStack(Material.DIAMOND_BOOTS, 1);
    54. ItemStack diamondhelmet = new ItemStack(Material.DIAMOND_HELMET, 1);
    55. PlayerInventory pi = player.getInventory();
    56. pi.addItem(diamondsword);
    57. pi.addItem(steak);
    58. pi.addItem(compass);
    59. pi.setChestplate(diamondchestplate);
    60. pi.setHelmet(diamondhelmet);
    61. pi.setLeggings(diamondleggings);
    62. pi.setBoots(diamondboots);
    63. }else{
    64. //Kit Ninja
    65. if (commandLabel.equalsIgnoreCase("ninja")){
    66. player.getInventory().clear();
    67. ItemStack goldsword = new ItemStack(Material.GOLD_SWORD, 1);
    68. ItemStack steak = new ItemStack(Material.COOKED_BEEF, 4);
    69. ItemStack compass = new ItemStack(Material.COMPASS, 1);
    70. ItemStack egg = new ItemStack(Material.EGG, 10);
    71. goldsword.addEnchantment(Enchantment.DURABILITY, 3);
    72. goldsword.addEnchantment(Enchantment.DAMAGE_ALL, 5);
    73. PlayerInventory pi = player.getInventory();
    74. pi.addItem(goldsword);
    75. pi.addItem(steak);
    76. pi.addItem(egg);
    77. pi.addItem(compass);
    78. }else{
    79. if (commandLabel.equalsIgnoreCase("kits")){
    80. player.sendMessage(ChatColor.LIGHT_PURPLE+"==========[" + (ChatColor.GOLD+"Kits" + (ChatColor.LIGHT_PURPLE+"]==========")));
    81. player.sendMessage(ChatColor.GRAY+"/Archer");
    82. player.sendMessage(ChatColor.GRAY+"/Heavy");
    83. player.sendMessage(ChatColor.GRAY+"/Ninja");
    84. player.sendMessage(ChatColor.LIGHT_PURPLE+"==========[" + (ChatColor.GOLD+"Kits" + (ChatColor.LIGHT_PURPLE+"]==========")));
    85. }
    86.  
    87.  
    88. }
    89.  
    90. }
    91. }
    92. return false;
    93. }
    94. }
    95.  

    ====Main====
    Code:java
    1. package me.jp.Ctf;
    2.  
    3. import java.util.logging.Logger;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.GameMode;
    8. import org.bukkit.Location;
    9. import org.bukkit.Material;
    10. import org.bukkit.block.Sign;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.event.EventHandler;
    13. import org.bukkit.event.Listener;
    14. import org.bukkit.event.block.Action;
    15. import org.bukkit.event.block.SignChangeEvent;
    16. import org.bukkit.event.player.PlayerInteractEvent;
    17. import org.bukkit.event.player.PlayerJoinEvent;
    18. import org.bukkit.inventory.ItemStack;
    19. import org.bukkit.inventory.meta.BookMeta;
    20. import org.bukkit.plugin.PluginDescriptionFile;
    21. import org.bukkit.plugin.PluginManager;
    22. import org.bukkit.plugin.java.JavaPlugin;
    23.  
    24. public class Ctf extends JavaPlugin implements Listener{
    25. public final Logger logger = Logger.getLogger("Minecraft");
    26. public static Ctf plugin;
    27. private kits kits = new kits(this);
    28. //Join Lobby
    29. @EventHandler
    30. public void onSignChange(SignChangeEvent event) {
    31. if (event.getLine(0).contains("[Join Lobby]")) {
    32. event.setLine(0, "[Join Lobby]");
    33.  
    34.  
    35.  
    36. }
    37. }
    38. //Leave Lobby
    39. @EventHandler
    40. public void onSignChange1(SignChangeEvent event) {
    41. if (event.getLine(0).contains("[Leave Lobby]")) {
    42. event.setLine(0, "[Leave Lobby]");
    43. }
    44. }
    45. //Help
    46. @EventHandler
    47. public void onSignChange11(SignChangeEvent event) {
    48. if (event.getLine(0).contains("[Help]")) {
    49. event.setLine(0, "[Help]");
    50. }
    51.  
    52. }
    53. //Kit Selector
    54. @EventHandler
    55. public void onSignChange3(SignChangeEvent event) {
    56. if (event.getLine(0).contains("[Kit Selector]")) {
    57. event.setLine(0, "[Choose Kit]");
    58. }
    59. }
    60.  
    61. //Kit Selector
    62. @EventHandler
    63. public void onSignChange4(SignChangeEvent event) {
    64. if (event.getLine(0).contains("[Spectate]")) {
    65. event.setLine(0, "[Spectate]");
    66. }
    67. }
    68.  
    69. // Welcome menu
    70. @EventHandler
    71. public void onPlayerJoin(PlayerJoinEvent e) {
    72. Player p = e.getPlayer();
    73. p.setGameMode(GameMode.ADVENTURE);
    74. p.sendMessage(ChatColor.WHITE+ "_____________________________________________________");
    75. p.sendMessage(ChatColor.WHITE+"BASIC CLASS - Available for everyone!");
    76. p.sendMessage(ChatColor.GRAY+"/archer, /heavy, /medic, /soldier");
    77. p.sendMessage(ChatColor.GREEN+"PEMIUM CLASSES - Order @ [url="http://www.mcctf.com/order"]www.mcctf.com/order[/url]");
    78. p.sendMessage(ChatColor.GRAY+"/assassin, /chemist, /dwarf, /engineer, /mage, /necro, /ninja, /pyro");
    79. p.sendMessage(ChatColor.WHITE+ "_____________________________________________________");
    80. if (p instanceof Player){
    81. ItemStack book = new ItemStack(Material.WRITTEN_BOOK);
    82. BookMeta bm = (BookMeta) book.getItemMeta();
    83. bm.addPage("Hello and welcome to GrandPvP");
    84. bm.setAuthor("Jptg1234");
    85. bm.setDisplayName("Help");
    86. bm.setTitle("Help");
    87. book.setItemMeta(bm);
    88. ((Player) p).getInventory().addItem(book);
    89. }
    90. }
    91. //Join Lobby Nether
    92. @EventHandler
    93. public void onPlayerInteract(PlayerInteractEvent e){
    94. Player p = e.getPlayer();
    95. {
    96. if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
    97.  
    98. if(!(e.getClickedBlock().getState() instanceof Sign)) return;
    99.  
    100. e.setCancelled(true);
    101. Sign sign = (Sign) e.getClickedBlock().getState();
    102.  
    103. if(sign.getLine(0).equalsIgnoreCase("[Join Lobby]"))
    104. {
    105.  
    106. Location l = new Location(Bukkit.getServer().getWorld("world"), 3, 78, 97);
    107. e.getPlayer().teleport(l);
    108.  
    109.  
    110.  
    111.  
    112.  
    113. p.sendMessage((ChatColor.GREEN+"Joing Lobby"));
    114. }
    115.  
    116.  
    117. }
    118. }
    119.  
    120. //Leave Lobby
    121. @EventHandler
    122. public void onPlayerInteract1(PlayerInteractEvent e){
    123. Player p = e.getPlayer();
    124. {
    125. if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
    126.  
    127. if(!(e.getClickedBlock().getState() instanceof Sign)) return;
    128.  
    129. e.setCancelled(true);
    130. Sign sign = (Sign) e.getClickedBlock().getState();
    131.  
    132. if(sign.getLine(0).equalsIgnoreCase("[Leave Lobby]"))
    133. {
    134.  
    135. Location l = new Location(Bukkit.getServer().getWorld("world"), 3, 78, 97);
    136. e.getPlayer().teleport(l);
    137.  
    138.  
    139. p.sendMessage((ChatColor.GREEN+"Leaving Lobby"));
    140. }
    141. }
    142. }
    143. //Kit Selector
    144. @EventHandler
    145. public void onPlayerInteract3(PlayerInteractEvent e){
    146.  
    147. {
    148. if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
    149.  
    150. if(!(e.getClickedBlock().getState() instanceof Sign)) return;
    151.  
    152. e.setCancelled(true);
    153. Sign sign = (Sign) e.getClickedBlock().getState();
    154.  
    155.  
    156. if(sign.getLine(0).equalsIgnoreCase("[Kit Selector]"))
    157. {
    158. }
    159. }
    160. }
    161. //Specate
    162. @EventHandler
    163. public void onPlayerInteract4(PlayerInteractEvent e){
    164. Player p = e.getPlayer();
    165. {
    166. if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
    167.  
    168. if(!(e.getClickedBlock().getState() instanceof Sign)) return;
    169.  
    170. e.setCancelled(true);
    171. Sign sign = (Sign) e.getClickedBlock().getState();
    172.  
    173. if(sign.getLine(0).equalsIgnoreCase("[Spectate]"))
    174. {
    175.  
    176. Location l = new Location(Bukkit.getServer().getWorld("world"), 3, 78, 97);
    177. e.getPlayer().teleport(l);
    178.  
    179.  
    180. p.sendMessage((ChatColor.GREEN+"You are now spectating!"));
    181.  
    182.  
    183.  
    184. }
    185. }
    186. }
    187.  
    188.  
    189.  
    190.  
    191.  
    192.  
    193.  
    194. @Override
    195. public void onDisable(){
    196. PluginDescriptionFile pdfFile = this.getDescription();
    197. this.logger.info(pdfFile.getName() + " Has Been Disabled ");
    198. }
    199. @Override
    200. public void onEnable(){
    201. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    202. PluginManager pm = getServer().getPluginManager();
    203. pm.registerEvents(new Ctf(), this);
    204. pm.registerEvents(this.kits, this);
    205.  
    206.  
    207.  
    208. }
    209.  
    210.  
    211. }
    212.  
     
Thread Status:
Not open for further replies.

Share This Page