[Suggestion] Player controllable in-game times per res

Discussion in 'Suggestion Box Archives' started by JDHallows, Jan 3, 2018.

  1. Edit: see updates to idea here - https://empireminecraft.com/threads...ble-in-game-times-per-res.75162/#post-1403999

    So, I was messing around in my private server earlier today that I use for private projects and just general messing around with stuff. In one of those messing around moments, I found a command made available by the Essentials X plugin I have installed on my server.

    The command, /ptime, allows a server admin to alter the time inside of a specific player's game. So, while the server time may be 2:00 pm, a player could have their own client's time set to something completely different. This does not appear to change any game mechanics though.

    I ended up mentioning it in staff chat, and Jack and I talked about it for a bit and the idea came up that: what if as a supporter perk, you could set a specific time for your res?

    For example: When walking around town, everywhere would be the server time, whatever it may be since it's always changing (on the SMPs). Then, you walk onto a player's res, and it's instantly midnight. Walking on and off the res would just change your client's time according to whatever area you are in.

    This would allow players who build on their reses to create a specific atmosphere on their res. Have a Halloween build? Then make it eternally dusk on your res to give it that spooky feeling.

    One possible way this would work, is just as a supporter perk: if you're a current supporter, you can set the time on your res to whatever you want.

    What do you guys think?
  2. I love this idea! I always wanted to change my res to night and keep it that way because I like it more. I give this a +1
  3. This seems pretty interesting if it can be implemented smoothly. Especially the ambiance appeal, i'm intruigued :)
  4. i made a suggestion of this a while ago, but the reply i got was the server hardware issues if it where to load from players running across reses.
  5. This sounds like a cool idea if it isn't too intensive on the servers.
  6. yeah my concern for this would be people flying around on utopia? like...thats where the majority of supporters have their residences and you fly really fast there. so maybe like if you have it enabled fly is disabled?
  7. 607, TomvanWijnen, _Devuu__ and 2 others like this.
  8. 3 years now :p
    Gordan_the_Gourd likes this.
  9. or 2 years 6 months 27 days ago xP
    TomvanWijnen likes this.
  10. I really like this idea! I'm sure there are many ideas (reses) that would benefit from this possibility. +1 :)

    Which would be rounded up to 3 years if rounding to whole years. :p
    607 and Sachrock like this.
  11. if I was :p anyway its getting off topic, this is a cool idea
    607 and TomvanWijnen like this.
  12. Interesting.
    This could be nice. :)
    In town, is time frozen or is there a day/night cycle?
  13. Day/night cycle, except on utopia, there it's always day. :)
    607 likes this.
  14. So, I did some digging into how the /ptime command works on Essentials. While the Essentials plugin does some work of it's own to make the process more smooth, the actual code used to change a player's client time is built into Bukkit itself.

    Code:
    setPlayerTime
    void setPlayerTime(long time,
                      boolean relative)
    Sets the current time on the player's client. When relative is true the player's time will be kept synchronized to its world time with the specified offset.
    When using non relative time the player's time will stay fixed at the specified time parameter. It's up to the caller to continue updating the player's time.
    To restore player time to normal use resetPlayerTime().
    
    Parameters:
    time - The current player's perceived time or the player's time offset from the server time.
    relative - When true the player time is kept relative to its world time.
    In addition, this process works by simply altering the packets sent to the user. Thus, I do not believe that this will cause server lag. (The sudden altering of time may cause momentary lag on the client side, depending on how powerful the user's computer is, though I believe even this would be minimal.)

    I also found another interesting function while looking this command:
    Code:
    setPlayerWeather
    void setPlayerWeather(WeatherType type)
    Sets the type of weather the player will see. When used, the weather status of the player is locked until resetPlayerWeather() is used.
    Parameters:
    type - The WeatherType enum type the player should experience
    This means that we could also set a specific weather type on our reses, and the time of day. Again, imagine how awesome it would be to have a 24/7 thunder storm, at midnight, on your Haunted House res that you built for Halloween?

    So, here is my proposal:

    We introduce 4 new features built around these functions - a /settime and /setweather command, and the ability to both set a time and weather on your res.

    The /settime command could be used while in the waste or frontier on an SMP, to make it eternal daylight or nighttime for yourself. However, this would still have no affect on mob spawning or other player's gameplay, and only be a cosmetic change for your own gameplay.

    We could make these new supporter features, as well. For example:
    • Iron Supporters gain access to being able to set the time on their res to night or day (midnight or noon, only).
    • Gold Supporters gain access to:
      • The /settime command, and are able to set their personal client time to night or day (midnight or noon only).
      • They also are allowed to change the weather on their reses to any they want.
      • Lastly, the ability to set the time on their res is expanded to include any set time they choose (like if you want to specify 3:00 am or something).
    • Diamond supporters gain Gold Supporter features, and
      • The ability to create weather/time cycles. For example, you could start a night cycle on your res, where the moon rises as normal, but once it sets it automatically rises again, skipping the day time. This could also make a creative system where once the res time hits midnight, there is a thunderstorm from midnight to 1am (in-game time).
      • The /settime command can be used to set any time the player desires and have access to specific cycles like available for the reses.
      • Lastly, the /setweather command can be used to set any weather system for the player they choose.
    (Keep in mind that none of these changes affect the server or other players. If your personal client time is set to day time in the waste, but it's actually night time on the server, mobs will still spawn. Same as weather, even if you have the weather set to a thunderstorm, nothing will actually get struck by lightning.)
    Sachrock, 607 and TomvanWijnen like this.
  15. Mentioned this in the staff's slack. The devs are aware that there are no technical limitations to this suggestion (and were aware of this the last time this suggestion rolled around). We just just have not decided on any confirmed implementation details (including the confirmation status of the suggestion).
    607 likes this.
  16. Can one player be at night and the player next to them be at day though?
  17. You can do this through mods by altering certain files. You just have to know where to look. This would be Client sided.
  18. The problem... I can't see this happening. It would be so cool, I could see it with maybe weather (which would be epic), but- Wouldn't everyone have to have the mod?