From be9d355b33dced45dd2dc87719324e12c8b686a7 Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Sun, 9 May 2021 11:33:06 -0700 Subject: [PATCH] fix(serial): Fixes type inference for serialization (#592) --- Projects/Server/World/World.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Projects/Server/World/World.cs b/Projects/Server/World/World.cs index 51bee196f..2fcfd2c79 100644 --- a/Projects/Server/World/World.cs +++ b/Projects/Server/World/World.cs @@ -645,17 +645,18 @@ namespace Server [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void RemoveGuild(BaseGuild guild) => Guilds.Remove(guild.Serial); - private struct TypeOf { } public static T ReadEntity(this IGenericReader reader) where T : class, ISerializable { Serial serial = reader.ReadUInt(); + var typeT = typeof(T); - return default(TypeOf) switch + // Add to this list when creating new serializable types + if (typeof(BaseGuild).IsAssignableTo(typeT)) { - TypeOf => FindGuild(serial) as T, - TypeOf => FindEntity(serial) as T, - _ => default - }; + return FindGuild(serial) as T; + } + + return FindEntity(serial) as T; } public static List ReadEntityList(this IGenericReader reader) where T : class, ISerializable