namespace NadekoBot; /// /// Builder class for NadekoInteractions /// public class NadekoInteractionBuilder { private NadekoInteractionData? iData; private Func? action; // private bool isOwn; public NadekoInteractionBuilder WithData(in T data) where T : NadekoInteractionData { iData = data; return this; } // public NadekoOwnInteractionBuiler WithIsOwn(bool isOwn = true) // { // this.isOwn = isOwn; // return this; // } public NadekoInteractionBuilder WithAction(in Func fn) { this.action = fn; return this; } public NadekoButtonActionInteraction Build(DiscordSocketClient client, ulong userId) { if (iData is null) throw new InvalidOperationException("You have to specify the data before building the interaction"); if (action is null) throw new InvalidOperationException("You have to specify the action before building the interaction"); return new(client, userId, iData, action); } }