Exemple #1
0
        public RestResponse AddListener(ulong guildID, ulong channelID, string listenerTypeID)
        {
            if (!Android.AndroidInstances.TryGetValue(guildID, out var instance))
            {
                return(new RestResponse(HttpStatusCode.BadRequest, "Invalid guild ID"));
            }
            var listenerType = ListenerTypes.GetRawType(listenerTypeID);

            if (listenerType == null)
            {
                return(new RestResponse(HttpStatusCode.BadRequest, "Invalid listener type ID"));
            }

            instance.AddListener(listenerType, channelID);
            return(RestResponse.Ok);
        }
        public ListenerUIInfo GetListenerUI(string typeID)
        {
            var type = ListenerTypes.GetRawType(typeID);

            if (type == null)
            {
                return(null);
            }

            bool hideBaseMembers = type.GetCustomAttribute <HideListenerBaseAttribute>() != null;

            var ui = new ListenerUIInfo();

            foreach (var property in type.GetProperties())
            {
                var attribute = property.GetCustomAttribute <UiVariableTypeAttribute>(true);
                if (attribute == null)
                {
                    continue;
                }

                var entry = new ListenerUIEntry
                {
                    Name = property.Name,
                    Type = attribute.VariableType
                };

                if (property.DeclaringType == type)
                {
                    ui.Variables.Add(entry);
                }
                else if (!hideBaseMembers)
                {
                    ui.Variables.Insert(0, entry);
                }
            }

            return(ui);
        }
Exemple #3
0
        static void Main(string[] args)
        {
            if (!File.Exists(ListeningAddressPath))
            {
                throw new Exception("Could not find listening address file at " + ListeningAddressPath);
            }

            if (!File.Exists(ClientAddressPath))
            {
                throw new Exception("Could not find client address file at " + ClientAddressPath);
            }

            var listeningAddress = File.ReadAllText(ListeningAddressPath);
            var clientAddress    = File.ReadAllText(ClientAddressPath);

            ListenerTypes.RegisterAssembly(Assembly.GetAssembly(typeof(AndroidListener)));

            android = new AndroidService();
            server  = new RestServer(listeningAddress);
            server.Start();

            _ = Task.Run(android.StartDiscordLoop);

            server.AddController(new AndroidInstanceController());
            server.AddController(new GuildController());
            server.AddController(new ListenerController());
            server.AddController(new SystemController());

            server.AddFilter(new TokenFilter());

            server.AllowedOrigins.Clear();
            server.AllowedOrigins.Add(clientAddress);

            System.Timers.Timer saveTimer = new System.Timers.Timer(TimeSpan.FromMinutes(SaveServiceTimer).TotalMilliseconds);
            saveTimer.Elapsed += SaveAll;
            saveTimer.Start();
 public IEnumerable <ListenerType> GetListenerTypes()
 {
     return(ListenerTypes.GetListenerTypes());
 }