Solved Checking for how long is someone sleeping?!

Discussion in 'Plugin Development' started by mikekats, Aug 6, 2016.

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

    mikekats

    Code:
    public class SleepMain extends JavaPlugin {
       
        HashMap<UUID, Long> map = new HashMap<UUID, Long>();
    
       
        public void OnPlayerBedEnterEvent(PlayerBedEnterEvent e) {
            Player p = e.getPlayer();
            UUID UUID = p.getUniqueId();
            long time1 = System.currentTimeMillis() / 1000;
           
            map.put(UUID, time1);
           
        }
           
        public void OnPlayerBedLeaveEvent(PlayerBedLeaveEvent e) {
            Player p = e.getPlayer();
            UUID UUID = p.getUniqueId();
           
           
               
               
                double enterTime = ;
                double leaveTime = System.currentTimeMillis() / 1000;
               
                double fTime = leaveTime - enterTime;
               
            }
        }
    
    I want to see for how long someone is in bed ... how i am gonna make this code work .. or is totally wrong ?
     
  2. Offline

    MordorKing78

    Also don't forget your @EventHandler
     
  3. Offline

    mikekats

    @MordorKing78 nearly forgot that . :p thank you..

    @bwfcwalshy where do i use it i am bit confused ...
    Code:
    double enterTime = map.get(UUID);
    this will get the UUID not the value, if i am not mistaken :/

    @bwfcwalshy

    Do you mean something like this ?
    Code:
    @EventHandler   
        public void OnPlayerBedLeaveEvent(PlayerBedLeaveEvent e) {
            Player p = e.getPlayer();
            UUID UUID = p.getUniqueId();
           
            double enterTime = map.get(UUID).doubleValue();
            double leaveTime = System.currentTimeMillis() / 1000;
           
            double fTime = leaveTime - enterTime;
            
            }
        }
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Aug 7, 2016
  4. @mikekats Make enterTime and leaveTime longs since they will never have a decimal and will be large values
     
  5. Offline

    mikekats

    Here is how for those wandering :
    Code:
    @EventHandler
        public void OnPlayerBedEnterEvent(PlayerBedEnterEvent e) {
            Player p = e.getPlayer();
            p.sendMessage("Your sleeping!");
            UUID UUID = p.getUniqueId();
            long time1 = (int) (System.currentTimeMillis() / 1000);
           
            map.put(UUID, time1);
           
        }
        @SuppressWarnings("deprecation")
        @EventHandler   
        public void OnPlayerBedLeaveEvent(PlayerBedLeaveEvent e) {
            Player p = e.getPlayer();
            UUID UUID = p.getUniqueId();
           
            int enterTime = map.get(UUID).intValue();
            int leaveTime = (int) (System.currentTimeMillis() / 1000);
           
            int fTime = leaveTime - enterTime;
     
Thread Status:
Not open for further replies.

Share This Page