2016-12-03 12:19:59 -05:00
|
|
|
|
using MySql.Data.MySqlClient;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
2016-12-12 19:03:25 -05:00
|
|
|
|
using FFXIVClassic_World_Server.DataObjects;
|
|
|
|
|
using FFXIVClassic_World_Server.DataObjects.Group;
|
2016-12-03 12:19:59 -05:00
|
|
|
|
|
|
|
|
|
namespace FFXIVClassic_World_Server
|
|
|
|
|
{
|
|
|
|
|
class Database
|
|
|
|
|
{
|
2016-12-21 09:27:51 -05:00
|
|
|
|
public static DBWorld GetServer(uint serverId)
|
|
|
|
|
{
|
|
|
|
|
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)))
|
|
|
|
|
{
|
|
|
|
|
DBWorld world = null;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
conn.Open();
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand("SELECT name, address, port FROM servers WHERE id = @serverId", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@serverId", serverId);
|
|
|
|
|
using (MySqlDataReader Reader = cmd.ExecuteReader())
|
|
|
|
|
{
|
|
|
|
|
while (Reader.Read())
|
|
|
|
|
{
|
|
|
|
|
world = new DBWorld();
|
|
|
|
|
world.id = serverId;
|
|
|
|
|
world.name = Reader.GetString("name");
|
|
|
|
|
world.address = Reader.GetString("address");
|
|
|
|
|
world.port = Reader.GetUInt16("port");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return world;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-12-13 15:02:28 -05:00
|
|
|
|
public static bool LoadZoneSessionInfo(Session session)
|
|
|
|
|
{
|
2017-01-09 23:12:56 -05:00
|
|
|
|
string characterName, currentLinkshell;
|
2016-12-13 15:02:28 -05:00
|
|
|
|
uint currentZone = 0;
|
|
|
|
|
uint destinationZone = 0;
|
|
|
|
|
bool readIn = false;
|
|
|
|
|
|
|
|
|
|
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();
|
2017-01-09 23:12:56 -05:00
|
|
|
|
MySqlCommand cmd = new MySqlCommand("SELECT name, currentZoneId, destinationZoneId, currentActiveLinkshell FROM characters WHERE id = @charaId", conn);
|
2016-12-13 15:02:28 -05:00
|
|
|
|
cmd.Parameters.AddWithValue("@charaId", session.sessionId);
|
|
|
|
|
using (MySqlDataReader Reader = cmd.ExecuteReader())
|
|
|
|
|
{
|
|
|
|
|
while (Reader.Read())
|
|
|
|
|
{
|
|
|
|
|
characterName = Reader.GetString("name");
|
|
|
|
|
currentZone = Reader.GetUInt32("currentZoneId");
|
|
|
|
|
destinationZone = Reader.GetUInt32("destinationZoneId");
|
2017-01-09 23:12:56 -05:00
|
|
|
|
currentLinkshell = Reader.GetString("currentActiveLinkshell");
|
2016-12-13 15:02:28 -05:00
|
|
|
|
|
|
|
|
|
session.characterName = characterName;
|
|
|
|
|
session.currentZoneId = currentZone;
|
2017-01-09 23:12:56 -05:00
|
|
|
|
session.activeLinkshellName = currentLinkshell;
|
2016-12-13 15:02:28 -05:00
|
|
|
|
|
|
|
|
|
readIn = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return readIn;
|
|
|
|
|
}
|
|
|
|
|
|
2016-12-15 12:19:44 -05:00
|
|
|
|
public static void GetAllCharaNames(Dictionary<uint, string> mIdToNameMap)
|
|
|
|
|
{
|
|
|
|
|
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 id, name FROM characters", conn);
|
|
|
|
|
using (MySqlDataReader Reader = cmd.ExecuteReader())
|
|
|
|
|
{
|
|
|
|
|
while (Reader.Read())
|
|
|
|
|
{
|
|
|
|
|
uint id = Reader.GetUInt32("id");
|
|
|
|
|
string name = Reader.GetString("name");
|
|
|
|
|
mIdToNameMap.Add(id, name);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-12-03 12:19:59 -05:00
|
|
|
|
public static uint GetCurrentZoneForSession(uint charId)
|
|
|
|
|
{
|
|
|
|
|
uint currentZone = 0;
|
|
|
|
|
uint destinationZone = 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 currentZoneId, destinationZoneId FROM characters WHERE id = @charaId", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@charaId", charId);
|
|
|
|
|
using (MySqlDataReader Reader = cmd.ExecuteReader())
|
|
|
|
|
{
|
|
|
|
|
while (Reader.Read())
|
|
|
|
|
{
|
|
|
|
|
currentZone = Reader.GetUInt32("currentZoneId");
|
|
|
|
|
destinationZone = Reader.GetUInt32("destinationZoneId");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (currentZone == 0 && destinationZone != 0)
|
|
|
|
|
return destinationZone;
|
|
|
|
|
if (currentZone != 0 && destinationZone == 0)
|
|
|
|
|
return currentZone;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
2016-12-18 09:50:23 -05:00
|
|
|
|
}
|
2016-12-12 19:03:25 -05:00
|
|
|
|
|
2016-12-18 09:50:23 -05:00
|
|
|
|
public static List<RetainerGroupMember> GetRetainers(uint charaId)
|
2016-12-12 19:03:25 -05:00
|
|
|
|
{
|
2016-12-18 09:50:23 -05:00
|
|
|
|
List<RetainerGroupMember> members = new List<RetainerGroupMember>();
|
|
|
|
|
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();
|
2017-09-05 12:37:23 -04:00
|
|
|
|
MySqlCommand cmd = new MySqlCommand("SELECT id, name, actorClassId, cdIDOffset, placeName, conditions, level FROM server_retainers INNER JOIN characters_retainers ON retainerId = server_retainers.id WHERE characterId = @charaId", conn);
|
2016-12-18 09:50:23 -05:00
|
|
|
|
cmd.Parameters.AddWithValue("@charaId", charaId);
|
|
|
|
|
using (MySqlDataReader Reader = cmd.ExecuteReader())
|
|
|
|
|
{
|
|
|
|
|
while (Reader.Read())
|
|
|
|
|
{
|
|
|
|
|
uint id = Reader.GetUInt32("id") | 0xE0000000;
|
|
|
|
|
string name = Reader.GetString("name");
|
2017-09-05 12:37:23 -04:00
|
|
|
|
uint actorClassId = Reader.GetUInt32("actorClassId");
|
2016-12-18 09:50:23 -05:00
|
|
|
|
byte cdIDOffset = Reader.GetByte("cdIDOffset");
|
|
|
|
|
ushort placeName = Reader.GetUInt16("placeName");
|
|
|
|
|
byte conditions = Reader.GetByte("conditions");
|
|
|
|
|
byte level = Reader.GetByte("level");
|
|
|
|
|
|
2017-09-05 12:37:23 -04:00
|
|
|
|
members.Add(new RetainerGroupMember(id, name, actorClassId, cdIDOffset, placeName, conditions, level));
|
2016-12-18 09:50:23 -05:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return members;
|
2016-12-12 19:03:25 -05:00
|
|
|
|
}
|
|
|
|
|
|
2016-12-21 18:02:50 -05:00
|
|
|
|
public static Linkshell GetLinkshell(ulong groupIndex, string lsName)
|
|
|
|
|
{
|
|
|
|
|
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 id, name, crestIcon, master FROM server_linkshells WHERE name = @lsName", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@lsName", lsName);
|
|
|
|
|
using (MySqlDataReader Reader = cmd.ExecuteReader())
|
|
|
|
|
{
|
|
|
|
|
while (Reader.Read())
|
|
|
|
|
{
|
|
|
|
|
ulong lsId = Reader.GetUInt64("id");
|
|
|
|
|
string name = Reader.GetString("name");
|
|
|
|
|
ushort crest = Reader.GetUInt16("crestIcon");
|
|
|
|
|
uint master = Reader.GetUInt32("master");
|
|
|
|
|
|
|
|
|
|
Linkshell linkshell = new Linkshell(lsId, groupIndex, name, crest, master, 0xa);
|
|
|
|
|
return linkshell;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2016-12-21 08:27:23 -05:00
|
|
|
|
public static Linkshell GetLinkshell(ulong groupIndex, ulong lsId)
|
2016-12-12 19:03:25 -05:00
|
|
|
|
{
|
|
|
|
|
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 name, crestIcon, master FROM server_linkshells WHERE id = @lsId", conn);
|
2016-12-21 08:27:23 -05:00
|
|
|
|
cmd.Parameters.AddWithValue("@lsId", lsId);
|
2016-12-12 19:03:25 -05:00
|
|
|
|
using (MySqlDataReader Reader = cmd.ExecuteReader())
|
|
|
|
|
{
|
|
|
|
|
while (Reader.Read())
|
|
|
|
|
{
|
|
|
|
|
string name = Reader.GetString("name");
|
|
|
|
|
ushort crest = Reader.GetUInt16("crestIcon");
|
|
|
|
|
uint master = Reader.GetUInt32("master");
|
|
|
|
|
|
2016-12-21 08:27:23 -05:00
|
|
|
|
Linkshell linkshell = new Linkshell(lsId, groupIndex, name, crest, master, 0xa);
|
2016-12-12 19:03:25 -05:00
|
|
|
|
return linkshell;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2016-12-16 20:06:17 -05:00
|
|
|
|
public static List<LinkshellMember> GetLSMembers(Linkshell ls)
|
2016-12-12 19:03:25 -05:00
|
|
|
|
{
|
2016-12-16 20:06:17 -05:00
|
|
|
|
List<LinkshellMember> memberList = new List<LinkshellMember>();
|
2016-12-12 19:03:25 -05:00
|
|
|
|
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();
|
2016-12-16 20:06:17 -05:00
|
|
|
|
MySqlCommand cmd = new MySqlCommand("SELECT characterId, linkshellId, rank FROM characters_linkshells WHERE linkshellId = @lsId", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@lsId", ls.dbId);
|
2016-12-12 19:03:25 -05:00
|
|
|
|
using (MySqlDataReader Reader = cmd.ExecuteReader())
|
|
|
|
|
{
|
|
|
|
|
while (Reader.Read())
|
|
|
|
|
{
|
|
|
|
|
uint characterId = Reader.GetUInt32("characterId");
|
|
|
|
|
ulong linkshellId = Reader.GetUInt64("linkshellId");
|
2016-12-16 20:06:17 -05:00
|
|
|
|
byte rank = Reader.GetByte("rank");
|
2016-12-12 19:03:25 -05:00
|
|
|
|
|
2016-12-16 20:06:17 -05:00
|
|
|
|
LinkshellMember member = new LinkshellMember(characterId, linkshellId, rank);
|
|
|
|
|
memberList.Add(member);
|
2016-12-12 19:03:25 -05:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
2016-12-16 20:06:17 -05:00
|
|
|
|
memberList.Sort();
|
2016-12-12 19:03:25 -05:00
|
|
|
|
return memberList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static List<LinkshellMember> GetPlayerLSMembership(uint charaId)
|
|
|
|
|
{
|
|
|
|
|
List<LinkshellMember> memberList = new List<LinkshellMember>();
|
|
|
|
|
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();
|
2016-12-18 09:50:23 -05:00
|
|
|
|
MySqlCommand cmd = new MySqlCommand("SELECT characterId, linkshellId, rank FROM characters_linkshells WHERE characterId = @charaId", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@charaId", charaId);
|
2016-12-12 19:03:25 -05:00
|
|
|
|
using (MySqlDataReader Reader = cmd.ExecuteReader())
|
|
|
|
|
{
|
|
|
|
|
while (Reader.Read())
|
|
|
|
|
{
|
|
|
|
|
uint characterId = Reader.GetUInt32("characterId");
|
|
|
|
|
ulong linkshellId = Reader.GetUInt64("linkshellId");
|
2016-12-16 20:06:17 -05:00
|
|
|
|
byte rank = Reader.GetByte("rank");
|
2016-12-12 19:03:25 -05:00
|
|
|
|
|
2016-12-16 20:06:17 -05:00
|
|
|
|
LinkshellMember member = new LinkshellMember(characterId, linkshellId, rank);
|
2016-12-12 19:03:25 -05:00
|
|
|
|
memberList.Add(member);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return memberList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static ulong CreateLinkshell(string name, ushort crest, uint master)
|
|
|
|
|
{
|
2016-12-18 09:50:23 -05:00
|
|
|
|
string query;
|
|
|
|
|
MySqlCommand cmd;
|
|
|
|
|
ulong lastId = 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();
|
|
|
|
|
|
|
|
|
|
query = @"
|
|
|
|
|
INSERT INTO server_linkshells
|
|
|
|
|
(name, crestIcon, master, rank)
|
|
|
|
|
VALUES
|
2016-12-18 10:13:04 -05:00
|
|
|
|
(@name, @crestIcon, @master, @rank)
|
2016-12-18 09:50:23 -05:00
|
|
|
|
";
|
|
|
|
|
|
|
|
|
|
cmd = new MySqlCommand(query, conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@name", name);
|
|
|
|
|
cmd.Parameters.AddWithValue("@crestIcon", crest);
|
|
|
|
|
cmd.Parameters.AddWithValue("@master", master);
|
|
|
|
|
cmd.Parameters.AddWithValue("@rank", 0xa);
|
|
|
|
|
|
|
|
|
|
if (cmd.ExecuteNonQuery() == 1)
|
|
|
|
|
lastId = (ulong)cmd.LastInsertedId;
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return lastId;
|
2016-12-12 19:03:25 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static bool DeleteLinkshell(ulong lsId)
|
|
|
|
|
{
|
|
|
|
|
throw new NotImplementedException();
|
|
|
|
|
}
|
|
|
|
|
|
2016-12-18 09:50:23 -05:00
|
|
|
|
public static bool LinkshellAddPlayer(ulong lsId, uint charaId)
|
2016-12-12 19:03:25 -05:00
|
|
|
|
{
|
2017-01-08 21:42:43 -05:00
|
|
|
|
string query;
|
|
|
|
|
MySqlCommand cmd;
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
|
|
|
|
|
query = @"
|
|
|
|
|
INSERT INTO characters_linkshells
|
|
|
|
|
(characterId, linkshellId)
|
|
|
|
|
VALUES
|
|
|
|
|
(@charaId, @lsId)
|
|
|
|
|
";
|
|
|
|
|
|
|
|
|
|
cmd = new MySqlCommand(query, conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@charaId", charaId);
|
|
|
|
|
cmd.Parameters.AddWithValue("@lsId", lsId);
|
|
|
|
|
cmd.ExecuteNonQuery();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
2016-12-12 19:03:25 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static bool LinkshellRemovePlayer(ulong lsId, uint charaId)
|
|
|
|
|
{
|
2017-01-09 00:12:11 -05:00
|
|
|
|
bool success = false;
|
|
|
|
|
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();
|
|
|
|
|
|
|
|
|
|
string query = @"
|
|
|
|
|
DELETE FROM characters_linkshells
|
|
|
|
|
WHERE characterId = @charaId AND linkshellId = @lsId;
|
|
|
|
|
";
|
|
|
|
|
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand(query, conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@charaId", charaId);
|
|
|
|
|
cmd.Parameters.AddWithValue("@lsId", lsId);
|
|
|
|
|
cmd.ExecuteNonQuery();
|
|
|
|
|
success = true;
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return success;
|
2016-12-12 19:03:25 -05:00
|
|
|
|
}
|
2016-12-18 09:50:23 -05:00
|
|
|
|
|
|
|
|
|
public static bool ChangeLinkshellCrest(ulong lsId, ushort newCrestId)
|
|
|
|
|
{
|
|
|
|
|
bool success = false;
|
|
|
|
|
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("UPDATE server_linkshells SET crestIcon = @crestIcon WHERE id = @lsId", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@lsId", lsId);
|
|
|
|
|
cmd.Parameters.AddWithValue("@crestIcon", newCrestId);
|
|
|
|
|
cmd.ExecuteNonQuery();
|
|
|
|
|
success = true;
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return success;
|
|
|
|
|
}
|
2017-01-09 00:12:11 -05:00
|
|
|
|
|
|
|
|
|
public static bool LinkshellChangeRank(uint charaId, byte rank)
|
|
|
|
|
{
|
|
|
|
|
bool success = false;
|
|
|
|
|
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("UPDATE characters_linkshells SET rank = @rank WHERE characterId = @charaId", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@charaId", charaId);
|
|
|
|
|
cmd.Parameters.AddWithValue("@rank", rank);
|
|
|
|
|
cmd.ExecuteNonQuery();
|
|
|
|
|
success = true;
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return success;
|
|
|
|
|
}
|
2017-01-09 23:12:56 -05:00
|
|
|
|
|
|
|
|
|
public static bool SetActiveLS(Session session, string name)
|
|
|
|
|
{
|
|
|
|
|
bool success = false;
|
|
|
|
|
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("UPDATE characters SET currentActiveLinkshell = @lsName WHERE id = @charaId", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@charaId", session.sessionId);
|
|
|
|
|
cmd.Parameters.AddWithValue("@lsName", name);
|
|
|
|
|
cmd.ExecuteNonQuery();
|
|
|
|
|
success = true;
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return success;
|
|
|
|
|
}
|
2018-04-10 01:07:11 -04:00
|
|
|
|
|
|
|
|
|
public static bool LinkshellIsBannedName(string name)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static bool LinkshellExists(string name)
|
|
|
|
|
{
|
|
|
|
|
bool hasLS = false;
|
|
|
|
|
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 server_linkshells WHERE name = @lsName", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@lsName", name);
|
|
|
|
|
object result = cmd.ExecuteScalar();
|
|
|
|
|
hasLS = result != null && ((uint)result > 0);
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
Program.Log.Error(e.ToString());
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
conn.Dispose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return hasLS;
|
|
|
|
|
}
|
2016-12-03 12:19:59 -05:00
|
|
|
|
}
|
|
|
|
|
}
|