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