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); }
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()); }