Files
reallife-gamemode/ReallifeGamemode.Server/Inventory/Items/Joint.cs
2021-06-01 23:03:27 +02:00

58 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using GTANetworkAPI;
using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Inventory.Interfaces;
using ReallifeGamemode.Server.Util;
namespace ReallifeGamemode.Server.Inventory.Items
{
public class Joint : UseItem, IIllegalItem
{
private static Dictionary<int, DateTime> lastJointUse = new Dictionary<int, DateTime>();
private static readonly TimeSpan _jointCooldown = TimeSpan.FromMinutes(10);
public override int Id { get; } = 110;
public override string Name { get; } = "Joint";
public override string Description { get; } = "stay high bis zum tod";
public override int Gewicht { get; } = 20;
public override string Einheit { get; } = "g";
public override int Price { get; } = 0;
public override uint Object { get; }
public override bool Legal => false;
public override bool RemoveWhenUsed => true;
public int PriceForConfiscation { get; } = 150;
public override bool Use(Player player, User user, DatabaseContext databaseContext)
{
if (!CanUserUseJoint(user))
{
player.TriggerEvent("Error", $"Versuche es nach {-1 * (int)((DateTime.Now - lastJointUse[user.Id]) - _jointCooldown).TotalSeconds} Sekunden erneut.");
return false;
}
player.SyncAnimation("jointUse");
player.ToggleInventory(InventoryToggleOption.HIDE);
int armorToSet = Math.Min(player.Armor + 25, 100);
player.SafeSetArmor(armorToSet);
lastJointUse[user.Id] = DateTime.Now;
return true;
}
private bool CanUserUseJoint(User user)
{
if (!lastJointUse.ContainsKey(user.Id))
{
return true;
}
return DateTime.Now - lastJointUse[user.Id] > _jointCooldown;
}
}
}