Help with programming

Discussion in 'Plugin Development' started by xepisolonxx, Jun 13, 2013.

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

    xepisolonxx

    Well i was coding my event handlers arent working and also how can i get the integers of people on
    Code:
    package me.jr.pvp;
     
    import org.bukkit.Bukkit;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class Pvp extends JavaPlugin implements Listener {
        public static int gameloop = 0;
        public static int timeinseconds = 0;
        public static boolean canStart;
     
        @Override
        public void onEnable() {
            timeinseconds = 120;
            canStart = false;
            gameloop = getServer().getScheduler().scheduleSyncRepeatingTask(this,
                    new GameLoop(), 20l, 20l);
        }
     
        public void onDisable() {
            getServer().getScheduler().cancelTask(gameloop);
     
        }
     
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            return false;
       
        }
        @EventHandler(priority = EventPriority.HIGHEST)
        public void onPlayerJoin(PlayerJoinEvent event) {
            canStart = Bukkit.getOnlinePlayers().length >= 1;
        }
     
        @EventHandler
        public void onPlayerLeave(PlayerQuitEvent event) {
            canStart = Bukkit.getOnlinePlayers().length - 1 >= 1;
     
        }
    }
    
    that is my pvp class and my other class is like this
    Code:java
    1. package me.jr.pvp;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.Effect;
    6. import org.bukkit.Location;
    7. import org.bukkit.Sound;
    8. import org.bukkit.entity.Player;
    9.  
    10. public class GameLoop implements Runnable {
    11.  
    12.  
    13. public void run() {
    14. if (Pvp.timeinseconds >= 60 && Pvp.timeinseconds % 60 == 0){
    15. timeuntilstart(true);
    16. }
    17.  
    18. if (Pvp.timeinseconds <= 30 && Pvp.timeinseconds % 15 == 0 && Pvp.timeinseconds > 0){
    19. timeuntilstart(true);
    20. }
    21.  
    22. if (Pvp.timeinseconds <= 10 && Pvp.timeinseconds > 0){
    23. timeuntilstart(false);
    24. note();
    25.  
    26. }
    27.  
    28. if (Pvp.timeinseconds == 0){
    29. if (Pvp.canStart)
    30. Bukkit.broadcastMessage("Game started");
    31. else {
    32. Bukkit.broadcastMessage(ChatColor.RED + "" + ChatColor.ITALIC + "Not enough players! Resetting timer!");
    33. resetnote();
    34. Pvp.timeinseconds = 121;
    35. }
    36. }
    37. if (Pvp.timeinseconds > 0){
    38. Pvp.timeinseconds--;
    39. }
    40. }
    41. private void note() {
    42. for (Player player : Bukkit.getOnlinePlayers()){
    43. player.playSound(player.getLocation(), Sound.NOTE_PIANO, 10, 1);
    44. }
    45. }
    46. private void resetnote() {
    47. for (final Player player : Bukkit.getOnlinePlayers()){
    48. final Location l = player.getLocation();
    49. new Thread(new Runnable() {
    50.  
    51. @Override
    52. public void run() {
    53. try {
    54. for (int i = 0; i < 4; i++){
    55. player.playEffect(l, Effect.CLICK1, 1);
    56. Thread.sleep(450);
    57. }
    58. }catch (Exception e){
    59. e.printStackTrace();
    60. }
    61. }
    62. }).start();
    63. }
    64. }
    65.  
    66. private void timeuntilstart(boolean extraArgs) {
    67.  
    68. if (Pvp.timeinseconds % 30 == 0 && Pvp.timeinseconds >= 30){
    69.  
    70. Bukkit.broadcastMessage(Pvp.timeinseconds + "" + ChatColor.GOLD + " seconds until start!");
    71.  
    72. }else if (Pvp.timeinseconds < 30){
    73.  
    74. Bukkit.broadcastMessage(Pvp.timeinseconds + "" + ChatColor.GOLD + " seconds until start!");
    75. }
    76. }
    77. }
    78.  


    please respond asap!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 1, 2016
  2. Offline

    Lolmewn

    xepisolonxx A few notes:
    1. Wrong section. This should be in Bukkit Development.
    2. You didn't register your Listeners class.
     
  3. Offline

    Fuzzwolf

    Bukkit.getOnlinePlayers().length is the amount of players on.. which you appear to be using already ?

    You also need to register your events in your onEnable() method:
    Code:
    getServer().getPluginManager().registerEvents(this, this);
     
  4. Offline

    xepisolonxx

    thank you so much!

    i have another promblem when it reaches zero for timer it spams message how can i fix it becuase i tried setting it different number for time and tried set canStart false but doesnt work

    Sorry idk how to post in other tread im new.:(

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 1, 2016
  5. Offline

    np98765

    Moved to Plugin Development. :)
     
Thread Status:
Not open for further replies.

Share This Page