C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System;
using Newtonsoft.Json;
using System.Collections.Generic;
namespace Oxide.Plugins
{
[Info("Item History", "birthdates", "1.2.1")]
[Description("Keep history of an item")]
public class ItemHistory : RustPlugin
{
#region Variables
private const string Permission = "ItemHistory.use";
#endregion
#region Hooks
private void Init() => permission.RegisterPermission(Permission, this);
private void OnItemAddedToContainer(ItemContainer container, Item item)
{
if (item == null || _config.Blacklist?.Contains(item.info.shortname) == true) return;
var player = item.GetOwnerPlayer() ?? container.GetOwnerPlayer();
if (player == null || !permission.UserHasPermission(player.UserIDString, Permission) || string.IsNullOrEmpty(item.info.displayName.english) || player.inventory.FindContainer(container.uid) == null) return;
item.name = player.displayName + "'" + (player.displayName.EndsWith("s", StringComparison.InvariantCultureIgnoreCase) ? "" : "s") + " " + item.info.displayName.english;
}
private ConfigFile _config;
public class ConfigFile
{
[JsonProperty("Blacklisted Items (Won't get any history)")]
public List<string> Blacklist { get; set; }
public static ConfigFile DefaultConfig()
{
return new ConfigFile
{
Blacklist = new List<string>
{
"shotgun.spas12"
}
};
}
}
protected override void LoadConfig()
{
base.LoadConfig();
_config = Config.ReadObject<ConfigFile>();
if (_config == null)
{
LoadDefaultConfig();
}
}
protected override void LoadDefaultConfig()
{
_config = ConfigFile.DefaultConfig();
PrintWarning("Default configuration has been loaded.");
}
protected override void SaveConfig()
{
Config.WriteObject(_config);
}
#endregion
}
}