Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Player {
- private int exp, trophies, money;
- public int Experience {
- get {
- return exp;
- } set {
- exp = value;
- SaveData ();
- }
- }
- public int Trophies {
- get {
- return trophies;
- }
- set {
- trophies = value;
- SaveData ();
- }
- }
- public int Money {
- get {
- return money;
- }
- set {
- money = value;
- SaveData ();
- }
- }
- public string Username { get; }
- public int Id { get; }
- public void SaveData () {
- File.WriteAllLines ("players/" + Username + ".txt", new string[] { exp.ToString (), trophies.ToString (), money.ToString () });
- }
- public static Player FromId (IEnumerable<Player> players, int id) {
- foreach (Player player in players) if (player.Id == id) return player;
- return null; // So all code paths return a value
- }
- public static Player FromUsername (IEnumerable<Player> players, string username) {
- foreach (Player player in players) if (player.Username == username) return player;
- return null; // So all code paths return a value
- }
- public Player (Message message) {
- switch (message.Type) {
- case "init":
- Id = message.GetInt (5);
- Username = message.GetString (13);
- break;
- case "add":
- Id = message.GetInt (0);
- Username = message.GetString (1);
- break;
- }
- bool fromConfig = false;
- exp = -1;
- trophies = -1;
- money = -1;
- if (File.Exists ("players/" + Username + ".txt")) {
- string[] content = File.ReadAllLines ("players/" + Username + ".txt");
- if (content.Length == 3) {
- int.TryParse (content[0], out exp);
- int.TryParse (content[1], out trophies);
- int.TryParse (content[2], out money);
- if (exp != -1 && trophies != -1 && money != -1) fromConfig = true;
- }
- }
- if (!fromConfig) {
- exp = 0;
- trophies = 0;
- money = 0;
- SaveData ();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement