2015-09-25 18:52:25 -04:00
|
|
|
|
using FFXIVClassic_Lobby_Server.dataobjects;
|
|
|
|
|
using MySql.Data.MySqlClient;
|
|
|
|
|
using Dapper;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using FFXIVClassic_Lobby_Server.common;
|
2015-12-04 02:00:05 -05:00
|
|
|
|
using FFXIVClassic_Map_Server.dataobjects.database;
|
2016-01-02 14:05:37 -05:00
|
|
|
|
using FFXIVClassic_Map_Server.dataobjects.chara.npc;
|
2015-09-25 18:52:25 -04:00
|
|
|
|
|
|
|
|
|
namespace FFXIVClassic_Lobby_Server
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
class Database
|
|
|
|
|
{
|
|
|
|
|
public static uint getUserIdFromSession(String sessionId)
|
|
|
|
|
{
|
|
|
|
|
uint id = 0;
|
|
|
|
|
using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD)))
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
conn.Open();
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand("SELECT * FROM sessions WHERE id = @sessionId AND expiration > NOW()", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@sessionId", sessionId);
|
|
|
|
|
using (MySqlDataReader Reader = cmd.ExecuteReader())
|
|
|
|
|
{
|
|
|
|
|
while (Reader.Read())
|
|
|
|
|
{
|
|
|
|
|
id = Reader.GetUInt32("userId");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{ Console.WriteLine(e); }
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return id;
|
|
|
|
|
}
|
|
|
|
|
|
2015-12-04 02:00:05 -05:00
|
|
|
|
public static DBWorld getServer(uint serverId)
|
2015-09-25 18:52:25 -04:00
|
|
|
|
{
|
|
|
|
|
using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD)))
|
|
|
|
|
{
|
2015-12-04 02:00:05 -05:00
|
|
|
|
DBWorld world = null;
|
2015-09-25 18:52:25 -04:00
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
conn.Open();
|
2015-12-04 02:00:05 -05:00
|
|
|
|
world = conn.Query<DBWorld>("SELECT * FROM servers WHERE id=@ServerId", new {ServerId = serverId}).SingleOrDefault();
|
2015-09-25 18:52:25 -04:00
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return world;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-12-04 02:00:05 -05:00
|
|
|
|
public static DBCharacter getCharacter(uint charId)
|
2015-09-25 18:52:25 -04:00
|
|
|
|
{
|
|
|
|
|
using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD)))
|
|
|
|
|
{
|
2015-12-04 02:00:05 -05:00
|
|
|
|
DBCharacter chara = null;
|
2015-09-25 18:52:25 -04:00
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
conn.Open();
|
2015-12-04 02:00:05 -05:00
|
|
|
|
chara = conn.Query<DBCharacter>("SELECT * FROM characters WHERE id=@CharaId", new { CharaId = charId }).SingleOrDefault();
|
2015-09-25 18:52:25 -04:00
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return chara;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-01-02 14:05:37 -05:00
|
|
|
|
public static DBAppearance getAppearance(bool loadFromPlayerTable, uint charaId)
|
2015-10-06 00:39:18 -04:00
|
|
|
|
{
|
|
|
|
|
using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD)))
|
|
|
|
|
{
|
2015-12-04 02:00:05 -05:00
|
|
|
|
DBAppearance appearance = null;
|
2015-10-06 00:39:18 -04:00
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
conn.Open();
|
2016-01-02 14:05:37 -05:00
|
|
|
|
|
|
|
|
|
if (loadFromPlayerTable)
|
|
|
|
|
appearance = conn.Query<DBAppearance>("SELECT * FROM characters_appearance WHERE characterId=@CharaId", new { CharaId = charaId }).SingleOrDefault();
|
|
|
|
|
else
|
|
|
|
|
appearance = conn.Query<DBAppearance>("SELECT * FROM npc_appearance WHERE npcId=@CharaId", new { CharaId = charaId }).SingleOrDefault();
|
2015-10-06 00:39:18 -04:00
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return appearance;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-12-04 02:00:05 -05:00
|
|
|
|
public static DBStats getCharacterStats(uint charaId)
|
|
|
|
|
{
|
|
|
|
|
using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD)))
|
|
|
|
|
{
|
|
|
|
|
DBStats stats = null;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
conn.Open();
|
|
|
|
|
stats = conn.Query<DBStats>("SELECT * FROM characters_stats WHERE characterId=@CharaId", new { CharaId = charaId }).SingleOrDefault();
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return stats;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-01-02 14:05:37 -05:00
|
|
|
|
public static List<Npc> getNpcList()
|
|
|
|
|
{
|
|
|
|
|
using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD)))
|
|
|
|
|
{
|
|
|
|
|
List<Npc> npcList = null;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
conn.Open();
|
|
|
|
|
npcList = conn.Query<Npc>("SELECT * FROM npc_list").ToList();
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return npcList;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-09-25 18:52:25 -04:00
|
|
|
|
}
|
|
|
|
|
}
|