Rtxx
Qu'est ce que tu appelles la réflexion ?
Tu peux utiliser quelque chose comme ça :
MessageIdentifier
Cliquez pour révéler
Cliquez pour masquer
public static class MessageIdentifier
{
private static readonly Dictionary<int, string> Packets = new Dictionary<int, string>();
public static void Initialize()
{
var asm = Assembly.GetAssembly(typeof (MessageIdentifier));
foreach (var type in asm.GetTypes().Where(entry => entry.IsSubclassOf(typeof (NetworkMessage))))
{
var property = type.GetProperty("ProtocolId");
if(property == null) continue;
var num = (int) property.GetValue(Activator.CreateInstance(type), null);
if(Packets.ContainsKey(num)) continue;
Packets.Add(num, type.Name);
}
}
public static string GetMessageName(int id) => Packets[id];
}
Pour utiliser ça, il te faudra le protocol traduit dans sa totalité (messages + types).
Tu appelles la méthode Initialize au lancement de ton bot et ça devrait être bon ^^