From 3618f2074e0024cbdef61fbd73b57cee4f9a9e00 Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 5 May 2020 19:35:13 +0200 Subject: [PATCH] light mode fix --- ReallifeGamemode.Client/Login/main.ts | 16 ++++++---------- ReallifeGamemode.Server/Events/Connect.cs | 10 ++++++++-- ReallifeGamemode.Server/Managers/TimeManager.cs | 4 ++++ 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/ReallifeGamemode.Client/Login/main.ts b/ReallifeGamemode.Client/Login/main.ts index 503aa8f6..5c03c481 100644 --- a/ReallifeGamemode.Client/Login/main.ts +++ b/ReallifeGamemode.Client/Login/main.ts @@ -10,12 +10,16 @@ export default function (globalData: IGlobalData): void { var localPlayer: PlayerMp = mp.players.local; - mp.events.add('SERVER:Login_ShowBrowser', (registered) => { + var disableLightMode: boolean = false; + + mp.events.add('SERVER:Login_ShowBrowser', (registered, disableLight) => { mp.gui.cursor.show(true, true); mp.gui.chat.show(false); mp.game.ui.displayHud(false); mp.game.ui.displayRadar(false); + disableLightMode = disableLight; + var url = registered ? "package://assets/html/login/login.html" : "package://assets/html/login/register.html"; loginBrowser = mp.browsers.new(url); @@ -31,15 +35,7 @@ export default function (globalData: IGlobalData): void { mp.events.add('CEF:Login_RequestPlayerName', () => { if (loginBrowser) { - // 5:30 - 21:00 - var time = mp.game.time.getLocalTime(0, 0, 0, 0, 0, 0); - var date: Date = new Date(time.year, time.month, time.day, time.hour, time.minute, time.second); - var from: Date = new Date(time.year, time.month, time.day, 5, 30, 0); - var to: Date = new Date(time.year, time.month, time.day, 21, 0, 0); - - mp.gui.chat.push(JSON.stringify(time)); - - if (!(date > from && date < to)) { // in Zeitspanne um Light-Modus auszumachen + if (disableLightMode) { loginBrowser.execute("disableLightMode();"); } diff --git a/ReallifeGamemode.Server/Events/Connect.cs b/ReallifeGamemode.Server/Events/Connect.cs index 45347ec6..1a338e93 100644 --- a/ReallifeGamemode.Server/Events/Connect.cs +++ b/ReallifeGamemode.Server/Events/Connect.cs @@ -3,6 +3,7 @@ using System.Linq; using GTANetworkAPI; using ReallifeGamemode.Database; using ReallifeGamemode.Database.Models; +using ReallifeGamemode.Server.Managers; using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Types; using ReallifeGamemode.Server.Util; @@ -18,6 +19,9 @@ namespace ReallifeGamemode.Server.Events { class Connect : Script { + private readonly TimeSpan LightModeTimeFrom = new TimeSpan(5, 30, 0); + private readonly TimeSpan LightModeTimeTo = new TimeSpan(21, 00, 0); + [ServerEvent(Event.PlayerConnected)] public void OnPlayerConnected(Player player) { @@ -53,10 +57,12 @@ namespace ReallifeGamemode.Server.Events player.TriggerEvent("CLIENT:PlaySound", "music/login", "mp3", 20); }, delayTime: 1000); - player.TriggerEvent("SERVER:Login_ShowBrowser", registered); + TimeSpan currentTime = TimeManager.CurrentTime; + bool disableLightMode = currentTime > LightModeTimeFrom && currentTime < LightModeTimeTo; + + player.TriggerEvent("SERVER:Login_ShowBrowser", registered, disableLightMode); string msg = "~m~*** " + player.Name + " [" + player.SocialClubName + "] [ID: " + player.Handle.Value + "] (" + player.Address + ")"; ChatService.BroadcastAdmin(msg, AdminLevel.ADMIN); - } private bool IsPlayerBanned(Player player) diff --git a/ReallifeGamemode.Server/Managers/TimeManager.cs b/ReallifeGamemode.Server/Managers/TimeManager.cs index 1d62ddcb..2bb9a6dd 100644 --- a/ReallifeGamemode.Server/Managers/TimeManager.cs +++ b/ReallifeGamemode.Server/Managers/TimeManager.cs @@ -10,6 +10,8 @@ namespace ReallifeGamemode.Server.Managers { private static Timer realTimeTimer; + public static TimeSpan CurrentTime { get; private set; } + public static void StartTimeManager() { if (realTimeTimer == null) @@ -24,11 +26,13 @@ namespace ReallifeGamemode.Server.Managers public static void PauseTimeManager() { realTimeTimer.Stop(); + CurrentTime = DateTime.Now.TimeOfDay; } private static void SetTime(object sender, ElapsedEventArgs args) { DateTime now = DateTime.Now; + CurrentTime = now.TimeOfDay; NAPI.World.SetTime(now.Hour, now.Minute, now.Second); } }