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

FREE MetabolicRespawn : 1.0.0 1.0.0

Нет прав для скачивания
C#:
using System;
using System.Collections.Generic;
using Oxide.Core;
using Oxide.Core.Plugins;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("MetabolicRespawn", "itswut", "1.0.0")]
    [Description("Manages player health, hunger, thirst, and temperature values on respawn based on permissions")]
    class MetabolicRespawn : RustPlugin
    {
        #region Configuration
        private const string PermissionPrefix = "metabolicrespawn";
        #endregion

        #region Permissions

        private readonly string[] permissionNames = { "health", "hunger", "thirst", "temperature", "all" };

        private void RegisterPermissions()
        {
            foreach (var perm in permissionNames)
            {
                permission.RegisterPermission($"{PermissionPrefix}.{perm}", this);
            }
        }

        #endregion

        #region Hooks

        private void Init()
        {
            RegisterPermissions();
            Puts("MetabolicRespawn initialized");
        }

        private void OnPlayerRespawned(BasePlayer player)
        {
            if (!IsPlayerValid(player)) return;

            string userId = player.UserIDString;

            if (HasPermission(userId, "all"))
            {
                ApplyAllMetabolics(player);
            }
            else
            {
                ApplyIndividualMetabolics(player, userId);
            }
        }

        #endregion

        #region Helper Methods

        private bool IsPlayerValid(BasePlayer player)
        {
            return player != null && player.IsConnected;
        }

        private bool HasPermission(string userId, string permName)
        {
            return permission.UserHasPermission(userId, $"{PermissionPrefix}.{permName}");
        }

        private void ApplyAllMetabolics(BasePlayer player)
        {
            SetPlayerHealth(player);
            SetPlayerHunger(player);
            SetPlayerThirst(player);
            SetPlayerTemperature(player);
        }

        private void ApplyIndividualMetabolics(BasePlayer player, string userId)
        {
            if (HasPermission(userId, "health"))
            {
                SetPlayerHealth(player);
            }

            if (HasPermission(userId, "hunger"))
            {
                SetPlayerHunger(player);
            }

            if (HasPermission(userId, "thirst"))
            {
                SetPlayerThirst(player);
            }
            
            if (HasPermission(userId, "temperature"))
            {
                SetPlayerTemperature(player);
            }
        }

        private void SetPlayerHealth(BasePlayer player)
        {
            player.health = player.MaxHealth();
        }

        private void SetPlayerHunger(BasePlayer player)
        {
            player.metabolism.calories.value = player.metabolism.calories.max;
        }

        private void SetPlayerThirst(BasePlayer player)
        {
            player.metabolism.hydration.value = player.metabolism.hydration.max;
        }
        
        private void SetPlayerTemperature(BasePlayer player)
        {
            player.metabolism.temperature.value = 20;
            player.metabolism.temperature.min = 20;
        }

        #endregion
    }
}

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