C# discord服务器的每日货币系统工作不正常
我正在尝试使用Discord Bot和Discord.NETAPI包装器实现一个每日支付系统伪造服务器货币。我的代码似乎正确地更新了余额并识别了日期变化,但它似乎不记得是谁收取了他们的每日付款。请帮忙。谢谢C# discord服务器的每日货币系统工作不正常,c#,.net,discord.net,C#,.net,Discord.net,我正在尝试使用Discord Bot和Discord.NETAPI包装器实现一个每日支付系统伪造服务器货币。我的代码似乎正确地更新了余额并识别了日期变化,但它似乎不记得是谁收取了他们的每日付款。请帮忙。谢谢 using Discord.Commands; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; names
using Discord.Commands;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AmberScript3.Modules
{
public class DailyMoney : ModuleBase<SocketCommandContext>
{
List<string> users = new List<string>();
string currentDate = DateTime.Now.ToString("yyyyMMdd");
[Command("money daily")]
public async Task DailyCash()
{
string author = Context.Message.Author.Username;
if(DateTime.Now.ToString("yyyyMMdd") != currentDate)
{
users.Clear();
}
if(users.Contains(author))
{
await Context.Channel.SendMessageAsync("You have already reclaimed your daily payment!");
}
else
{
users.Add(author);
Random r = new Random();
int seed = r.Next(1000);
double val = Math.Round(r.NextDouble() * seed, 2);
Money.AddBalance(Context.Message.Author.Username, val);
await Context.Channel.SendMessageAsync($"Added ${val} to {author}'s account as a daily payment.");
}
currentDate = DateTime.Now.ToString("yyyyMMdd");
}
}
}`
DailyMoney类是抽象的,因此它的每个实例化版本都有不同的值。我将在本地文本文件中存储您希望在实例化之间保留的内容,然后在创建时在代码中获取它们。如果确实需要,可以将所有这些值保存在一个单独的类中,并使用Newtonsoft.Json的JsonConvert.SerializeObject和JsonConvert.DeserializeObject来存储它。网上有很多关于这些东西的文档。不过,对于一个字符串列表,只需将其存储在文本文件中。您可能需要将用户持久化到文件、数据库等的某个位置。每次实例化此类时,都会重置用户列表。