Я не понимаю, как согласовать одноимённые методы с гармонией.
У меня есть два метода с одинаковыми именами
public static List<Player> GetPlayers()
{
return GetPlayers<Player>();
}
public static List<T> GetPlayers<T>() where T : IPlayer
{
if (!FactoryManager.FactoryTypes.TryGetValue(typeof(T), out var value))
{
return (List<T>)Enumerable.Empty<T>();
}
if (!FactoryManager.PlayerFactories.TryGetValue(value, out var value2))
{
return (List<T>)Enumerable.Empty<T>();
}
foreach (ReferenceHub allHub in ReferenceHub.AllHubs)
{
if (!allHub.isLocalPlayer)
{
value2.AddIfNotExists(allHub);
}
}
return value2.Entities.Values.Cast<T>().ToList();
}
оооо, это мой код, и ошибка сказала, что Harmony0 не понимает те методы, которые ему нужно исправить. Мне нужно исправить второе место, где «public static List<T> GetPlayers<T>(), где T: IPlayer»
using System;
using System.Collections.Generic;
using Exiled.API.Features;
using Exiled.Events;
using HarmonyLib;
using PluginAPI.Core.Interfaces;
using Log = Exiled.API.Features.Log;
using Player = PluginAPI.Core.Player;
namespace Seedonaters
{
public class Main : Plugin<Config>
{
public override string Author => "Discord=>pelemenb";
public override string Name => "SeeDonaters";
public override Version Version => new Version(1, 0, 0);
private Harmony harmony;
public override void OnEnabled()
{
Log.Info("Patch...");
harmony = new Harmony("Seedontat");
harmony.PatchAll();
base.OnEnabled();
}
public override void OnDisabled()
{
Log.Info("UnPatch...");
harmony.UnpatchAll();
base.OnDisabled();
}
[HarmonyPatch(typeof(Player), nameof(Player.GetPlayers))]
public static class DonatPatchGeneric
{
static bool Prefix<T>(ref List<T> __result) where T : IPlayer
{
__result = new List<T>();
return false;
}
}
}
}
если вы знаете, как это исправить, пожалуйста, помогите | спасибо :]
не знаю, как это исправить, правда :/ но я знаю, что Harmony0 может понять, является ли метод универсальным