Plugin Help Any1 knows if there's event on last player exit?

Discussion in 'Plugin Help/Development/Requests' started by 19kamcio19, Mar 25, 2015.

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

    19kamcio19

    When last player on server leaves then run command from plugin
     
  2. Offline

    nverdier

    @19kamcio19 The event is PlayerQuitEvent. Just check if the number of players online is nobody, and then run the command if so.
     
  3. Offline

    19kamcio19

    Thanks you very much for a fast answer :D I use PlayerQuit event but how to check it. Somethink like this? Player p =

    getServer().getplayer(<name here>);
    if(p != null){

    what do I need to put in name here ? Because I want all players not only one
     
  4. Offline

    nverdier

  5. Offline

    19kamcio19

    getOnlinePlyers cant be resolved? :O
     
  6. Offline

    nverdier

  7. Offline

    19kamcio19

    It is still not working
     
  8. Offline

    nverdier

  9. Offline

    19kamcio19

    I would like to clear the HashMap when last player exits server Sorry for some blocksBroken words but I copied a little bit from a different plugin. It is just counting number of hits someone gives to player.
    Code:
    package me.turqmelon.Scoreboard;
    import java.util.HashMap;
    import java.util.Map;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.player.PlayerCommandPreprocessEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Scoreboard;
    public class Core extends JavaPlugin implements Listener {
      
        private Scoreboard sb;
        private Map<String, Integer> blocksBroken = new HashMap<String, Integer>();
      
        public void setupScoreboard(){
          
            sb = Bukkit.getScoreboardManager().getNewScoreboard();
          
            Objective broken = sb.registerNewObjective("broken", "dummy");
            broken.setDisplayName(ChatColor.GREEN + "Hity");
            broken.setDisplaySlot(DisplaySlot.SIDEBAR);
          
        }
      
        @SuppressWarnings("deprecation")
        @EventHandler(priority=EventPriority.NORMAL)
            public void onEntityDamageByEntity(EntityDamageByEntityEvent event){
                if (!event.isCancelled()){
                    Player player = (Player) event.getDamager();
                int broken = 0;
                if (blocksBroken.containsKey(player.getName())) { broken=blocksBroken.get(player.getName()); }
                broken++;
                blocksBroken.put(player.getName(), broken);
                getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(player).setScore(broken);         
            }
                  
       
       
        }
       
        @SuppressWarnings("deprecation")
        @EventHandler public void onCommand(PlayerCommandPreprocessEvent event){
              if (event.getMessage().toLowerCase().startsWith("/cc")) {
                  for (Player p : Bukkit.getOnlinePlayers()) {
                      getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(p).setScore(0);             
                  }
                  blocksBroken.clear();
              }
        }
    
    
        @Override
        public void onEnable(){
            getServer().getPluginManager().registerEvents(this, this);
            setupScoreboard();       
        }
       
        public Scoreboard getScoreboard(){
            return this.sb;           
        }
      
        @EventHandler
        public void onJoin(PlayerJoinEvent event){
    
            Player player = event.getPlayer();
            player.setScoreboard(getScoreboard());
        }
       
    
    
    
           
            @EventHandler
            @SuppressWarnings("deprecation")
            public void onPlayerQuit(PlayerQuitEvent event) {
                Player player = event.getPlayer();
                getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(player).setScore(0);
                sb.resetScores(player);
                getScoreboard().getObjective(DisplaySlot.SIDEBAR);
           
                             
               
                }
        {
        }
        }   
    
           
    
     
Thread Status:
Not open for further replies.

Share This Page