コード例 #1
0
 public void Execute(Player player, string[] args)
 {
     if (args.Length == 0)
     {
         player.SendHelp("Use /name <name>");
     }
     else if (args.Length == 1)
     {
         using (Database db = new Database())
         {
             var db1 = db.CreateQuery();
             db1.CommandText = "SELECT COUNT(name) FROM accounts WHERE name=@name;";
             db1.Parameters.AddWithValue("@name", args[0]);
             if ((int)(long)db1.ExecuteScalar() > 0)
             {
                 player.SendError("Name Already In Use.");
             }
             else
             {
                 db1 = db.CreateQuery();
                 db1.CommandText = "UPDATE accounts SET name=@name WHERE id=@accId";
                 db1.Parameters.AddWithValue("@name", args[0].ToString());
                 db1.Parameters.AddWithValue("@accId", player.Client.Account.AccountId.ToString());
                 if (db1.ExecuteNonQuery() > 0)
                 {
                     player.Client.Player.Credits = db.UpdateCredit(player.Client.Account, -0);
                     player.Client.Player.Name = args[0];
                     player.Client.Player.NameChosen = true;
                     player.Client.Player.UpdateCount++;
                     player.SendInfo("Success!");
                 }
                 else
                 {
                     player.SendError("Server error. Please edit manually in database.");
                 }
             }
         }
     }
     var dir = @"logs";
     if (!System.IO.Directory.Exists(dir))
         System.IO.Directory.CreateDirectory(dir);
     using (System.IO.StreamWriter writer = new System.IO.StreamWriter(@"logs\AdminLog.txt", true))
     {
         writer.WriteLine("[" + DateTime.Now + "]" + player.nName + " has used the /name");
     }
 }