Feature: Component TypeConverters and CustomID TypeReaders (#2169)
* fix sharded client current user * add custom setter to group property of module builder * rename serilazation method * init * create typemap and default typereaders * add default readers * create typereader targetting flags * seperate custom id readers with component typeconverters * add typereaders * add customid readers * clean up component info argument parsing * remove obsolete method * add component typeconverters to modals * fix build errors * add inline docs * bug fixes * code cleanup and refactorings * fix build errors * add GenerateCustomIdString method to interaction service * add GenerateCustomIdString method to interaction service * add inline docs to componentparameterbuilder * add inline docs to GenerateCustomIdStringAsync method
This commit is contained in:
@@ -7,20 +7,20 @@ namespace Discord.Interactions
|
||||
{
|
||||
internal static class ModalUtils
|
||||
{
|
||||
private static ConcurrentDictionary<Type, ModalInfo> _modalInfos = new();
|
||||
private static readonly ConcurrentDictionary<Type, ModalInfo> _modalInfos = new();
|
||||
|
||||
public static IReadOnlyCollection<ModalInfo> Modals => _modalInfos.Values.ToReadOnlyCollection();
|
||||
|
||||
public static ModalInfo GetOrAdd(Type type)
|
||||
public static ModalInfo GetOrAdd(Type type, InteractionService interactionService)
|
||||
{
|
||||
if (!typeof(IModal).IsAssignableFrom(type))
|
||||
throw new ArgumentException($"Must be an implementation of {nameof(IModal)}", nameof(type));
|
||||
|
||||
return _modalInfos.GetOrAdd(type, ModuleClassBuilder.BuildModalInfo(type));
|
||||
return _modalInfos.GetOrAdd(type, ModuleClassBuilder.BuildModalInfo(type, interactionService));
|
||||
}
|
||||
|
||||
public static ModalInfo GetOrAdd<T>() where T : class, IModal
|
||||
=> GetOrAdd(typeof(T));
|
||||
public static ModalInfo GetOrAdd<T>(InteractionService interactionService) where T : class, IModal
|
||||
=> GetOrAdd(typeof(T), interactionService);
|
||||
|
||||
public static bool TryGet(Type type, out ModalInfo modalInfo)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user