using HintServiceMeow.Core.Enum; using HintServiceMeow.Core.Models.Hints; using HintServiceMeow.Core.Utilities; using LabApi.Features; using LabApi.Loader.Features.Plugins; using LabApi.Features.Wrappers; using MEC; namespace ModInfo { public class ModInfo : Plugin { public override string Name => "ModInfo"; public override string Author => "Code002Lover"; public override Version Version { get; } = new(1, 0, 0); public override string Description => "Shows some extra info for moderators"; public override Version RequiredApiVersion { get; } = new(LabApiProperties.CompiledVersion); private readonly Dictionary _spectatorHints = new(); public override void Enable() { Timing.RunCoroutine(GodmodeHintLoop()); } public override void Disable() { } private IEnumerator GodmodeHintLoop() { while(true) { yield return Timing.WaitForSeconds(1); UpdateHints(); } // ReSharper disable once IteratorNeverReturns } private void UpdateHints() { foreach (var player in Player.ReadyList) UpdateHint(player); } private void UpdateHint(Player player) { var hint = _spectatorHints.TryGetValue(player, out var hintValue) ? hintValue : AddPlayerHint(player); hint.Hide = !player.IsGodModeEnabled; } private Hint AddPlayerHint(Player player) { var hint = new Hint { Text = "GODMODE", Alignment = HintAlignment.Left, YCoordinate = 800, Hide = true }; var playerDisplay = PlayerDisplay.Get(player); playerDisplay.AddHint(hint); _spectatorHints[player] = hint; return hint; } } }