Clock plugin problem!

Discussion in 'Plugin Development' started by QuipCream, Feb 23, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    QuipCream

    Well, You see I coded this Hide players plugin, basically where you right click with some dye and it hides all players, it works but the thing is, is that you can only disable it. Any help? anyways here's my code:

    Code:java
    1. package me.QuipCream.HidePlayers;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import java.util.List;
    6.  
    7.  
    8.  
    9. import org.bukkit.Bukkit;
    10.  
    11. import org.bukkit.ChatColor;
    12.  
    13. import org.bukkit.Material;
    14.  
    15. import org.bukkit.entity.Player;
    16.  
    17. import org.bukkit.event.EventHandler;
    18.  
    19. import org.bukkit.event.Listener;
    20.  
    21. import org.bukkit.event.block.Action;
    22.  
    23. import org.bukkit.event.inventory.InventoryClickEvent;
    24.  
    25. import org.bukkit.event.player.PlayerInteractEvent;
    26.  
    27. import org.bukkit.event.player.PlayerJoinEvent;
    28.  
    29. import org.bukkit.event.player.PlayerQuitEvent;
    30.  
    31. import org.bukkit.inventory.ItemStack;
    32.  
    33. import org.bukkit.inventory.PlayerInventory;
    34.  
    35. import org.bukkit.inventory.meta.ItemMeta;
    36.  
    37. import org.bukkit.plugin.java.JavaPlugin;
    38.  
    39.  
    40.  
    41. public class HidePlayers extends JavaPlugin implements Listener {
    42.  
    43.  
    44.  
    45. public ArrayList<String> cooldown = new ArrayList<>();
    46.  
    47. //List for hiding players
    48.  
    49. ArrayList<String> players = new ArrayList<String>();
    50.  
    51.  
    52.  
    53. public void onEnable() {
    54.  
    55. getServer().getPluginManager().registerEvents(this, this);
    56.  
    57. }
    58.  
    59.  
    60.  
    61. public void onInventoryClick(InventoryClickEvent event) {
    62.  
    63. event.setCancelled(true);
    64.  
    65. }
    66.  
    67.  
    68.  
    69. //Removing player from list
    70.  
    71. public void onQuitEvent(PlayerQuitEvent event) {
    72.  
    73. Player player = event.getPlayer();
    74.  
    75. players.remove(player.getName());
    76.  
    77. }
    78.  
    79.  
    80.  
    81. //Adding people to the list and giving them spawn items
    82.  
    83. @EventHandler
    84.  
    85. public void onPlayerJoin(PlayerJoinEvent event) {
    86.  
    87. Player player = event.getPlayer();
    88.  
    89. PlayerInventory inv = player.getInventory();
    90.  
    91. players.add(player.getName());
    92.  
    93.  
    94.  
    95. ItemStack enable = new ItemStack(Material.INK_SACK, 1, (short) 10);
    96.  
    97. ItemMeta enableMeta = (ItemMeta) enable.getItemMeta();
    98.  
    99. enableMeta.setDisplayName(ChatColor.GREEN + "Players >> Enabled");
    100.  
    101. List<String> enableList = new ArrayList<String>();
    102.  
    103. enableList.add(ChatColor.WHITE + "Right click to enable to disable player visability");
    104.  
    105. enableMeta.setLore(enableList);
    106.  
    107. enable.setItemMeta(enableMeta);
    108.  
    109.  
    110.  
    111. // Just here for testing
    112.  
    113. inv.setItem(8, enable);
    114.  
    115. }
    116.  
    117.  
    118.  
    119. //Visibility Dye
    120.  
    121. @EventHandler
    122.  
    123. public void onPlayerClickEvent(PlayerInteractEvent event) {
    124.  
    125.  
    126.  
    127. final Player player = event.getPlayer();
    128.  
    129.  
    130.  
    131. ItemStack enable = new ItemStack(Material.INK_SACK, 1, (short) 10);
    132.  
    133. ItemMeta enableMeta = (ItemMeta) enable.getItemMeta();
    134.  
    135. enableMeta.setDisplayName(ChatColor.GREEN + "Players >> Enabled");
    136.  
    137. List<String> enableList = new ArrayList<String>();
    138.  
    139. enableList.add(ChatColor.WHITE + "Right click disable player visability");
    140.  
    141. enableMeta.setLore(enableList);
    142.  
    143. enable.setItemMeta(enableMeta);
    144.  
    145.  
    146.  
    147. ItemStack disable = new ItemStack(Material.INK_SACK, 1, (short) 8);;
    148.  
    149. ItemMeta disableMeta = (ItemMeta) disable.getItemMeta();
    150.  
    151. disableMeta.setDisplayName(ChatColor.RED + "Players >> Disabled");
    152.  
    153. List<String> disableList = new ArrayList<String>();
    154.  
    155. disableList.add(ChatColor.WHITE + "Right click to enable player visability");
    156.  
    157. disableMeta.setLore(disableList);
    158.  
    159. disable.setItemMeta(disableMeta);
    160.  
    161.  
    162.  
    163. if(player.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GREEN + "Players >> Enabled")){
    164.  
    165. if (cooldown.contains(player)) {
    166.  
    167. player.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.YELLOW + "Visibility" + ChatColor.DARK_GRAY + "] " + ChatColor.GRAY + "Please wait " + ChatColor.YELLOW +"5 seconds " + ChatColor.GRAY + "to toggled players visibility: " + ChatColor.GREEN + "On");
    168.  
    169. event.setCancelled(true);
    170.  
    171. } else {
    172.  
    173. if(event.getAction().equals(Action.RIGHT_CLICK_BLOCK) || event.getAction().equals(Action.RIGHT_CLICK_AIR)){
    174.  
    175. if(this.players.contains(event.getPlayer().getName())){
    176.  
    177. for(Player targetPlayers : Bukkit.getOnlinePlayers()){
    178.  
    179. if(player.canSee(targetPlayers)){
    180.  
    181. player.hidePlayer(targetPlayers);
    182.  
    183. } else{
    184.  
    185. event.setCancelled(true);
    186.  
    187. }
    188.  
    189. this.players.add(player.getName());
    190.  
    191. }
    192.  
    193. player.getInventory().removeItem(enable);
    194.  
    195. player.setItemInHand(disable);
    196.  
    197. player.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.YELLOW + "Visibility" + ChatColor.DARK_GRAY + "] " + ChatColor.GRAY + "You have toggled players visibility: " + ChatColor.GREEN + "On");
    198.  
    199. cooldown.add(player.getName());
    200.  
    201. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    202.  
    203. public void run() {
    204.  
    205. cooldown.remove(player.getName());
    206.  
    207. }
    208.  
    209. }, 100);
    210.  
    211. return;
    212.  
    213. }
    214.  
    215. }
    216.  
    217. }
    218.  
    219. if(player.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.RED + "Players >> Disabled")){
    220.  
    221. if (cooldown.contains(player)) {
    222.  
    223. player.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.YELLOW + "Visibility" + ChatColor.DARK_GRAY + "] " + ChatColor.GRAY + "Please wait " + ChatColor.YELLOW +"5 seconds " + ChatColor.GRAY + "to toggled players visibility: " + ChatColor.RED + "Off");
    224.  
    225. event.setCancelled(true);
    226.  
    227. } else {
    228.  
    229. if(event.getAction().equals(Action.RIGHT_CLICK_BLOCK) || event.getAction().equals(Action.RIGHT_CLICK_AIR)){
    230.  
    231. if(this.players.contains(event.getPlayer().getName())){
    232.  
    233. for(Player targetPlayers : Bukkit.getOnlinePlayers()){
    234.  
    235. if(player.canSee(targetPlayers)){
    236.  
    237. event.setCancelled(true);
    238.  
    239. } else {
    240.  
    241. player.showPlayer(targetPlayers);
    242.  
    243. }
    244.  
    245. this.players.remove(player.getName());
    246.  
    247. }
    248.  
    249. }
    250.  
    251. player.getInventory().removeItem(disable);
    252.  
    253. player.setItemInHand(enable);
    254.  
    255. player.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.YELLOW + "Visibility" + ChatColor.DARK_GRAY + "] " + ChatColor.GRAY + "You have toggled players visibility: " + ChatColor.RED + "Off");
    256.  
    257. cooldown.add(player.getName());
    258.  
    259. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    260.  
    261. public void run() {
    262.  
    263. cooldown.remove(player.getName());
    264.  
    265. }
    266.  
    267.  
    268. }, 100);
    269.  
    270. return;
    271. }
    272.  
    273. }
    274.  
    275. }
    276. }
    277.  
    278. }
    279.  
    280.  
    281.  
    282. }
    283.  
    284.  
    285.  
    286.  
     
  2. Offline

    MrInspector

    I don't think I fully understood you, but you don't have a @EventHandler on your QuitEvent.
     
  3. MrInspector

    Decompile my plugin hideHub v.3.0.0 with e.g gd-gui . That will help you.
     
  4. Offline

    MrInspector

    I don't understand? :p

    I know how to make clock hide plugins, they're fairly easy, if you were talking to me.
     
  5. Offline

    Booshayy

    Well...
    There's quite a few errors here.

    Let's start with your spacing.
    Your code is very hard to read because everything is at the beginning of the line, and is double spaced?

    Also,
    You're missing quite a few @EventHandler s, your methods and statements aren't closed properly, and your syntax is incorrect. You shouldn't define ArrayLists inside Events, it makes the code look sloppy.
    On line 171 and 183, you have two " } else { " statements. One should be an " } else if { " if you want three possible outcomes.

    Your syntax on line 229 is incorrect as well; it should read "if (blablablaifstatementhere == morethingshere) && morethingshere { "

    On line 233, your for loop's syntax is far from correct.

    Please learn how to organize your code and close your statements, then come ask for some help. A lot of issues would be solved if you cleaned up the code.

    Also, is there a stack trace or anything?
    Thanks.

    One more thing, are you very new to Bukkit and/or Java? If so, please start with some simpler projects.
     
Thread Status:
Not open for further replies.

Share This Page