コード例 #1
0
        public static T Get <T>() where T : IService
        {
            IService service;

            if (services.TryGetValue(typeof(T), out service))
            {
                return((T)service);
            }
            throw new Exception("Service " + typeof(T) + " not registered yet!");
        }
コード例 #2
0
        internal ModelContainer GetPackage(ModelContainer inputPackage)
        {
            if (ServiceDictionary.TryGetValue(inputPackage.TypePacket, out IGenerateResponseContainer generateResponseContainer))
            {
                Loger.Log("Server " + (Context.Player == null ? "     " : Context.Player.Public.Login.PadRight(5)) + " " + generateResponseContainer.GetType().Name);
                return(generateResponseContainer.GenerateModelContainer(inputPackage, Context));
            }

            Loger.Log("Server " + (Context.Player == null ? "     " : Context.Player.Public.Login.PadRight(5)) + $" Response for type {inputPackage.TypePacket} not found");

            return(new ModelContainer()
            {
                TypePacket = 0
            });
        }
コード例 #3
0
        internal static Tuple <Type, Type, Type> GetServiceTypes(Type entityType)
        {
            var attributes = entityType.GetCustomAttributes().Where(a => typeof(EntityAttribute).IsAssignableFrom(a.GetType()));
            Tuple <Type, Type, Type> ret = null;

            foreach (var att in attributes)
            {
                ServiceDictionary.TryGetValue(att.GetType(), out ret);
                if (ret != null)
                {
                    return(ret);
                }
            }
            return(ServiceDictionary.DefaultValue);
        }
コード例 #4
0
        internal ModelContainer GetPackage(ModelContainer inputPackage)
        {
            if (ServiceDictionary.TryGetValue(inputPackage.TypePacket, out IGenerateResponseContainer generateResponseContainer))
            {
                var name = generateResponseContainer.GetType().Name;
                Loger.Log("Server " + (Context.Player == null ? "     " : Context.Player.Public.Login.PadRight(5))
                          + " " + name
                          + (name == "PlayInfo"
                        ? $" dMS={(Context.Player.LastUpdateTime - Context.Player.WLastUpdateTime).TotalMilliseconds} "
                             + $"dTicks={Context.Player.Public.LastTick - Context.Player.WLastTick} "
                             + $"dValue={Context.Player.DeltaMarketValue} "
                             + $"dPawn={Context.Player.DeltaMarketValuePawn} "
                        : ""));
                return(generateResponseContainer.GenerateModelContainer(inputPackage, Context));
            }

            Loger.Log("Server " + (Context.Player == null ? "     " : Context.Player.Public.Login.PadRight(5)) + $" Response for type {inputPackage.TypePacket} not found");

            return(new ModelContainer()
            {
                TypePacket = 0
            });
        }