public bool deleteCardsByQuality(MWServer server, MWUser user, ulong maxquality)
        {
            try
            {
                if (maxquality <= 0)
                {
                    return(false);
                }
                Dictionary <string, List <MWItem> > deleteItems = new Dictionary <string, List <MWItem> >();
                foreach (var card in user.cards)
                {
                    if (card.quality <= maxquality)
                    {
                        if (!deleteItems.ContainsKey(card.name))
                        {
                            deleteItems[card.name] = new List <MWItem>();
                        }
                        deleteItems[card.name].Add(card);
                    }
                }
                uint   dmoney = 0;
                string res    = "";
                if (deleteItems.Count <= 0)
                {
                    // no cards
                    res = $"你手里没有 {maxquality}星或以下卡片";
                }
                else
                {
                    res = $"你卖掉了";
                    foreach (var itemp in deleteItems)
                    {
                        foreach (var item in itemp.Value)
                        {
                            dmoney += user.deleteCard(item);
                        }
                        res += $"{itemp.Value.Count}张{itemp.Key},";
                    }

                    btc.getUser(user.userid).addMoney(dmoney);
                    res += $"获得{dmoney}{BTCActor.unitName}";
                }
                outputMessage(server.group, user.userid, res.Trim());
                savePlayData();
            }
            catch (Exception ex)
            {
                FileIOActor.log(ex);
                return(false);
            }
            return(true);
        }