using LabApi.Events.Handlers; using LabApi.Features; using LabApi.Features.Console; using LabApi.Features.Wrappers; using LabApi.Loader.Features.Plugins; using MEC; namespace ServerHints; public class ServerHints : Plugin { public override string Name => "ServerHints"; public override string Author => "Code002Lover"; public override Version Version { get; } = new(1, 0, 0); public override string Description => "Adds hints for custom features."; public override Version RequiredApiVersion { get; } = new(LabApiProperties.CompiledVersion); public string[] Hints { get; set; } = [ "Man kann gegnerische Einheiten festnehmen, um sie zu seiner Seite zu bringen.", "Als Hausmeister beginnst du in der Nähe von SCP-914.", "Du kannst als SCP mit .scpswap deine Rolle tauschen. (Ö)", "Es gibt auf der Surface versteckte Items.", "Man kann mehr als 2 Candies nehmen.", "Man braucht seine Karte nicht in der Hand zu halten.", "Man kann Türen aufschießen", "Wenn man Granaten anschießt, explodieren sie sofort." ]; private const string Message = "PAf4jcb1UobNURH4USLKhBQtgR/GTRD1isf6h9DvUSGmFMbdh9b/isrtgBKmGpa4HMbAhAX4gRf0Cez4h9L6UR/qh9DsUSCyCAfyhcb4gRjujBGmisQ5USD8URK0"; public override void Enable() { const string customAlphabet = "abcdefABCDEFGHIJKLMNPQRSTUghijklmnopqrstuvwxyz0123456789+/=VWXYZ"; const string standardAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var standardized = ""; foreach (var c in Message) { var index = customAlphabet.IndexOf(c); standardized += index >= 0 ? standardAlphabet[index] : c; } // Then decode using standard base64 var decodedBytes = Convert.FromBase64String(standardized); var decodedMessage = System.Text.Encoding.UTF8.GetString(decodedBytes); Logger.Info(decodedMessage); ServerEvents.RoundStarted += OnRoundStarted; } public override void Disable() { ServerEvents.RoundStarted -= OnRoundStarted; } private void OnRoundStarted() { var random = new Random(); var hint = Hints[random.Next(Hints.Length)]; Timing.CallDelayed(1, () => { foreach (var player in Player.ReadyList) player.SendBroadcast($"{hint}", 5); }); } }