protected override async Task ExecuteAfter(FieldUser user, BuffCommandOptions option) { var type = await user.Prompt <int>((self, target) => self.AskMenu( "Which temporary stat?", Enum.GetValues(typeof(TemporaryStatType)) .Cast <TemporaryStatType>() .ToDictionary( t => (int)t, t => t.ToString() ) ), 0); var options = await user.Prompt <int>((self, target) => self.AskNumber( "What option?", 1, 1, short.MaxValue ), 0); var duration = await user.Prompt <int>((self, target) => self.AskNumber( "How long? (in seconds)", 0, 0 ), 0); await user.ModifyTemporaryStat(s => s.Set( (TemporaryStatType)type, 30001000, (short)options, duration > 0 ? DateTime.Now.AddSeconds(duration) : (DateTime?)null) ); }