Advertisement
Guest User

The Old Mysql Database

a guest
Mar 11th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.22 KB | None | 0 0
  1. using MySql.Data.MySqlClient;
  2. using System;
  3. using LiteNetLib;
  4.  
  5. namespace Server
  6. {
  7.     public class DbAccount
  8.     {
  9.  
  10.  
  11.         private static MySqlConnection conn;
  12.  
  13.         private static string connString = "Server=" + Const.LOGIN_HOSTNAME + ";Port=" + Const.LOGIN_DBPORT + ";Database=" + Const.LOGIN_DATABASE + ";User=" + Const.LOGIN_USERNAME + ";Password=" + Const.LOGIN_PASSWORD + ";";
  14.  
  15.         public static String SetupConnection()
  16.         {
  17.             string status;
  18.             try
  19.             {
  20.                 conn = new MySqlConnection(connString);
  21.                 conn.Open();
  22.                 MySqlCommand command = conn.CreateCommand();
  23.                 command.CommandText = "TRUNCATE TABLE online_players; ALTER TABLE online_players AUTO_INCREMENT = 1;";
  24.                 command.ExecuteNonQuery();
  25.                 status = "OK";
  26.             }
  27.             catch (MySqlException e)
  28.             {
  29.                 status = e.Message.ToString();
  30.             }
  31.             return status;
  32.         }
  33.  
  34.         public static bool Login(int index, string username, string password)
  35.         {
  36.             conn = new MySqlConnection(connString);
  37.             conn.Open();
  38.             MySqlCommand command = conn.CreateCommand();
  39.             command.CommandText = "Select * FROM accounts WHERE username='" + username + "' AND password='" + password + "'";
  40.             MySqlDataReader rdr = command.ExecuteReader();
  41.             if (rdr.Read())
  42.             {
  43.                 Globals.account[index].AccountID = rdr.GetInt32("ID");
  44.                 rdr.Close();
  45.                 conn.Close();
  46.                 return true;
  47.             }
  48.             else
  49.             {
  50.                 rdr.Close();
  51.                 conn.Close();
  52.                 return false;
  53.             }
  54.         }
  55.  
  56.         public static bool AccountExist(string username)
  57.         {
  58.             conn = new MySqlConnection(connString);
  59.             conn.Open();
  60.             MySqlCommand command = conn.CreateCommand();
  61.             command.CommandText = "Select * FROM accounts WHERE username='" + username + "'";
  62.             MySqlDataReader rdr = command.ExecuteReader();
  63.             if (rdr.Read())
  64.             {
  65.                 rdr.Close();
  66.                 conn.Close();
  67.                 return true;
  68.             }
  69.             else
  70.             {
  71.                 rdr.Close();
  72.                 conn.Close();
  73.                 return false;
  74.             }
  75.         }
  76.  
  77.         public static Character[] tempCharacter = new Character[6];
  78.  
  79.         public static Character[] GetPlayerCharacters(int OwnerID)
  80.         {
  81.  
  82.             for (int Slot = 0; Slot < 6; Slot++)
  83.             {
  84.                 tempCharacter[Slot] = new Character();
  85.                 tempCharacter[Slot].ID = 0;
  86.             }
  87.             int Nr = 0;
  88.             try
  89.             {
  90.                 MySqlCommand command = conn.CreateCommand();
  91.                 command.CommandText = "SELECT CharID, Name, Race, Level FROM characters WHERE OwnerID = '" + OwnerID + "'";
  92.                 command.Parameters.AddWithValue("@OwnerID", OwnerID);
  93.                 conn.Open();
  94.                 MySqlDataReader reader = command.ExecuteReader();
  95.                 while (reader.Read())
  96.                 {
  97.                     //[Personal Note] TRY USE THIS NOOB:   Character.CharacterArray[Nr].ID = Convert.ToInt32(reader["CharID"]);
  98.                     tempCharacter[Nr].ID = Convert.ToInt32(reader["CharID"]);
  99.                     tempCharacter[Nr].Name = Convert.ToString(reader["Name"]);
  100.                     tempCharacter[Nr].Race = Convert.ToString(reader["Race"]);
  101.                     tempCharacter[Nr].Level = Convert.ToInt32(reader["Level"]);
  102.                     Nr++;
  103.                 }
  104.                 Debug.Log(TAG.DEBUG, "Characters loaded from DB [" + Nr + "]");
  105.                 reader.Close();
  106.                 conn.Close();
  107.                 return tempCharacter;
  108.             }
  109.             catch (Exception ex)
  110.             {
  111.                 Console.WriteLine("DATA ERROR: " + ex.Message);
  112.                 return tempCharacter;
  113.             }
  114.         }
  115.  
  116.         public static bool Create(int index, string characterName, int characterRace)
  117.         {
  118.             conn = new MySqlConnection(connString);
  119.             conn.Open();
  120.             MySqlCommand command = conn.CreateCommand();
  121.             command.CommandText = "Select * FROM characters WHERE Name='" + characterName + "'";
  122.             MySqlDataReader rdr = command.ExecuteReader();
  123.             if (rdr.Read())
  124.             {
  125.                 rdr.Close();
  126.                 conn.Close();
  127.                 Globals.Client[index].Slot.Send(GameServer._netSerializer.Serialize(new Notification() { Message = "Character name already used. Please try another!" }), SendOptions.ReliableOrdered);
  128.                 return true;
  129.             }
  130.             else
  131.             {
  132.                 rdr.Close();
  133.                 command.CommandText = "INSERT INTO `characters` (`OwnerID`, `Name`, `X`, `Y`, `Z`, `Race`, `Level`) VALUES(" + Globals.account[index].AccountID + ",'" + characterName + "','" + Const.DEFAULT_X_POS + "','" + Const.DEFAULT_Y_POS + "','" + Const.DEFAULT_Z_POS + "','" + characterRace + "','" + Const.DEFAULT_LEVEL + "')";
  134.                 command.ExecuteNonQuery();
  135.                 conn.Close();
  136.  
  137.  
  138.  
  139.                 if (characterRace == 1)
  140.                 {
  141.                     Globals.Client[index].Slot.Send(GameServer._netSerializer.Serialize(new Notification() { Message = "Character: " + characterName + " Race: " + Const.Races.Human.ToString() + " created successfully!" }), SendOptions.ReliableOrdered);
  142.                 }
  143.                 else if(characterRace == 2)
  144.                 {
  145.                     Globals.Client[index].Slot.Send(GameServer._netSerializer.Serialize(new Notification() { Message = "Character: " + characterName + " Race: " + Const.Races.Elf.ToString() + " created successfully!" }), SendOptions.ReliableOrdered);
  146.                 }
  147.                 return false;
  148.             }
  149.         }
  150.  
  151.         public static void Load(int index, int CharID)
  152.         {
  153.             try
  154.             {
  155.                 MySqlCommand command = conn.CreateCommand();
  156.                 command.CommandText = "SELECT CharID, OwnerID, Name, Race, Level, X, Y, Z FROM characters WHERE OwnerID = '" + Globals.account[index].AccountID + "' AND CharID = '" + CharID + "'";
  157.                 conn.Open();
  158.                 MySqlDataReader reader = command.ExecuteReader();
  159.                 while (reader.Read())
  160.                 {
  161.                     Globals.character[index].ID = Convert.ToInt32(reader["CharID"]);
  162.                     Globals.character[index].OwnerID = Convert.ToInt32(reader["OwnerID"]);
  163.                     Globals.character[index].Name = Convert.ToString(reader["Name"]);
  164.                     Globals.character[index].Race = Convert.ToString(reader["Race"]);
  165.                     Globals.character[index].Level = Convert.ToInt32(reader["Level"]);
  166.                     Globals.character[index].playerPosition.X = Convert.ToInt32(reader["X"]);
  167.                     Globals.character[index].playerPosition.Y = Convert.ToInt32(reader["Y"]);
  168.                     Globals.character[index].playerPosition.Z = Convert.ToInt32(reader["Z"]);
  169.                 }
  170.                 Debug.Log(TAG.DEBUG, "Character loaded from DB [" + Globals.character[index].ID + "] [" + Globals.character[index].Name + "]");
  171.                 reader.Close();
  172.                 conn.Close();
  173.             }
  174.             catch (Exception ex)
  175.             {
  176.                 Console.WriteLine("DATA ERROR: " + ex.Message);
  177.             }
  178.         }
  179.  
  180.         public bool DeleteCharacter(string charName)
  181.         {
  182.             try
  183.             {
  184.                 conn.Open();
  185.                 MySqlCommand command = conn.CreateCommand();
  186.                 command.CommandText = "SELECT * FROM  characters where Name ='" + charName + "'";
  187.                 MySqlDataReader rdr = command.ExecuteReader();
  188.                 rdr.Close();
  189.                 conn.Close();
  190.                 return true;
  191.             }
  192.             catch (MySqlException e)
  193.             {
  194.                 Console.WriteLine("SQL exception when trying to delete character");
  195.                 Console.WriteLine(e);
  196.                 return false;
  197.             }
  198.         }
  199.  
  200.  
  201.  
  202.         /// TO SEE WHAT THEY DO.
  203.  
  204.         //public static int GetSessionId(int characterId)
  205.         //{
  206.         //    MySqlCommand command = conn.CreateCommand();
  207.         //    command.CommandText = "SELECT sessionId from online_players where charId=@charID";
  208.         //    command.Parameters.AddWithValue("@characterId", characterId);
  209.         //    MySqlDataReader rdr = command.ExecuteReader();
  210.         //    rdr.Read();
  211.         //    if (rdr.HasRows)
  212.         //    {
  213.         //        var sessionId = rdr.GetInt32(0);
  214.         //        rdr.Close();
  215.  
  216.         //        return sessionId;
  217.         //    }
  218.         //    else
  219.         //    {
  220.         //        throw new Exception("Could not find session id for character id: " + characterId);
  221.         //    }
  222.         //}
  223.  
  224.         //public static void AddToOnlinePlayerList(int characterId, string clientAddress)
  225.         //{
  226.         //    MySqlCommand command = conn.CreateCommand();
  227.         //    command.CommandText = "INSERT INTO online_players(`charId`, `accountId`, `name`, `ipAddress`) SELECT id,accountId,name,@ipAddress from login.characters where id=@characterId;";
  228.         //    command.Parameters.AddWithValue("@characterId", characterId);
  229.         //    command.Parameters.AddWithValue("@ipAddress", clientAddress);
  230.         //    command.ExecuteNonQuery();
  231.         //}
  232.  
  233.         //public static void UpdateCharacterPosition(int characterId, float xPos, float yPos, string zone)
  234.         //{
  235.         //    MySqlCommand command = conn.CreateCommand();
  236.         //    command.CommandText = "UPDATE `character_positions` set`xPos`=@xPos,`yPos`=@yPos,`zone`=@zone WHERE `characterId`=@characterId";
  237.         //    command.Parameters.AddWithValue("@characterId", characterId);
  238.         //    command.Parameters.AddWithValue("@xPos", xPos);
  239.         //    command.Parameters.AddWithValue("@yPos", yPos);
  240.         //    command.Parameters.AddWithValue("@zone", zone);
  241.         //    command.ExecuteNonQuery();
  242.         //}
  243.  
  244.  
  245.     }
  246. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement