• Хостинг игровых серверов

    Максимальная производительность для ваших игровых серверов!

    Заказать сейчас

Помогите Вызов функции из другого плагина

RichMen

24 Сен 2023
7
1
0
0
Добрый день!
Столкнулся с проблемой вызова функции из другого плагина...
Вот код плагина GroupManager.cs
C#:
using System;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
using Oxide.Core;
using Oxide.Core.Plugins;

namespace Oxide.Plugins
{
    public class PlayerGroupData
    {
        public string groupName;
        public ulong playerId;
        public DateTime expirationTime;
    }

    [Info("GroupManager", "GroupManager", "1.0.0")]
    [Description("Resource rate")]
    
    [System.Serializable]
    public class GroupManager : RustPlugin
    {
        public bool IsInGroup(ulong playerId, string groupName)
        {
            Puts($"IsInGroup: {groupName}");
            DateTime now = DateTime.Now;
            foreach (var data in groupData)
            {
                if (data.playerId == playerId && data.groupName == groupName && now <= data.expirationTime)
                {
                    return true;
                }
            }
            return false;
        }
    }
}

Пытаюсь вызвать IsInGroup в другом плагине:
C#:
object result = GroupManager.Call("IsInGroup", player.userID, "vip");
но result пустой ... И IsInGroup не вызывается

PluginReference использую
C#:
[PluginReference]
private Plugin GroupManager;
 
Привет! Похоже, у вас возникла проблема с вызовом функции из другого плагина в Rust. Проверьте следующие вещи:

1. Убедитесь, что вы правильно добавили ссылку на плагин GroupManager в своем плагине. У вас уже есть правильная строка [PluginReference], но убедитесь, что плагин GroupManager имеет правильное имя и версию.

2. Проверьте, что плагин GroupManager правильно загружается и инициализируется в Rust. Если есть какие-либо ошибки или предупреждения при запуске сервера, проверьте их и попробуйте исправить.

3. Убедитесь, что функция IsInGroup в плагине GroupManager правильно работает и возвращает ожидаемые результаты. Добавьте отладочные сообщения в функцию, чтобы убедиться, что она вызывается и возвращает верные значения.

Если вы проверили все эти вещи и проблема все еще остается, пожалуйста, предоставьте больше информации о том, как вы вызываете функцию GroupManager.Call и какой результат вы получаете. Это поможет нам более точно определить причину проблемы и предложить более конкретное решение.
 
Пытаюсь вызвать IsInGroup в другом плагине:
C#:
object result = GroupManager.Call("IsInGroup", player.userID, "vip");
C#:
bool result = GroupManager.Call<bool>("IsInGroup", player.userID, "vip");
Можно сразу так, Oxide сам за тебя приведет данные к нужному типу.
 
Активность
Пока никто не печатает сообщение