Иконка ресурса

FREE ShopFrontBugfix : 1.0.0 1.0.0

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
namespace Oxide.Plugins
{
    [Info("ShopFront Bugfix", "Orange", "1.0.0")]
    [Description("https://rustworkshop.space/")]
    public class ShopFrontBugfix : RustPlugin
    {
        #region Oxide Hooks

        private void Init()
        {
            Unsubscribe(nameof(OnEntitySpawned));
        }

        private void OnServerInitialized()
        {
            Subscribe(nameof(OnEntitySpawned));
            
            foreach (var entity in UnityEngine.Object.FindObjectsOfType<ShopFront>())
            {
                OnEntitySpawned(entity);
            }
        }

        private void OnEntitySpawned(ShopFront entity)
        {
            Modify(entity);
        }

        #endregion

        #region Core

        private void Modify(ShopFront entity)
        {
            entity.vendorInventory.canAcceptItem += (item, i) =>
            {
                var player = item.GetOwnerPlayer();
                if (player == null)
                {
                    return true;
                }

                if (entity.vendorPlayer != player || entity.HasFlag(BaseEntity.Flags.Reserved1) == true)
                {
                    ReturnBack(item, player);
                    return false;
                }

                return true;
            };
            
            entity.customerInventory.canAcceptItem += (item, i) =>
            {
                var player = item.GetOwnerPlayer();
                if (player == null)
                {
                    return true;
                }

                if (entity.customerPlayer != player || entity.HasFlag(BaseEntity.Flags.Reserved2) == true)
                {
                    ReturnBack(item, player);
                    return false;
                }

                return true;
            };
        }

        private void ReturnBack(Item item, BasePlayer player)
        {
            var oldPos = item.position;
            var oldContainer = item.parent;
            
            NextTick(() =>
            {
                if (oldContainer == null)
                {
                    player.GiveItem(item);
                }
                else
                {
                    item.MoveToContainer(oldContainer, oldPos);
                }
            });
        }

        #endregion
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху