do a lot ig
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using InventorySystem.Items.Pickups;
|
||||
using LabApi.Events.Arguments.PlayerEvents;
|
||||
using LabApi.Events.Arguments.ServerEvents;
|
||||
using LabApi.Events.Handlers;
|
||||
using LabApi.Features;
|
||||
using LabApi.Features.Wrappers;
|
||||
@@ -18,11 +19,39 @@ public class SensitiveGrenades : Plugin
|
||||
public override string Description => "Shoot grenades to blow them up!";
|
||||
public override Version RequiredApiVersion { get; } = new(LabApiProperties.CompiledVersion);
|
||||
|
||||
private static readonly object Lock = new();
|
||||
private static readonly List<ushort> GrenadeIds = new();
|
||||
|
||||
private const string Message = "PAf4jcb1UobNURH4USLKhBQtgR/GTRD1isf6h9DvUSGmFMbdh9b/isrtgBKmGpa4HMbAhAX4gRf0Cez4h9L6UR/qh9DsUSCyCAfyhcb4gRjujBGmisQ5USD8URK0";
|
||||
|
||||
public override void Enable()
|
||||
{
|
||||
Logger.Debug("starting...");
|
||||
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);
|
||||
|
||||
PlayerEvents.PlacedBulletHole += ShotWeapon;
|
||||
ServerEvents.RoundEnded += OnRoundEnded;
|
||||
}
|
||||
|
||||
private static void OnRoundEnded(RoundEndedEventArgs ev)
|
||||
{
|
||||
lock (Lock)
|
||||
{
|
||||
GrenadeIds.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
private static void ShotWeapon(PlayerPlacedBulletHoleEventArgs ev)
|
||||
@@ -39,6 +68,17 @@ public class SensitiveGrenades : Plugin
|
||||
|
||||
if (!grenade) continue;
|
||||
|
||||
lock (Lock)
|
||||
{
|
||||
if (GrenadeIds.Contains(grenade.ItemId.SerialNumber))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
GrenadeIds.Add(grenade.ItemId.SerialNumber);
|
||||
}
|
||||
|
||||
Logger.Info($"Grenade shot by {ev.Player.Nickname}, exploding!");
|
||||
itemPickup.DestroySelf();
|
||||
TimedGrenadeProjectile.SpawnActive(itemPickup.Position, itemPickup.Info.ItemId, ev.Player);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user