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