68 lines
2.4 KiB
C#
68 lines
2.4 KiB
C#
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 <SCP nummer> 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($"<color=grey>{hint}</color>", 5);
|
|
});
|
|
}
|
|
} |