first commit

This commit is contained in:
mikx
2025-06-28 15:38:37 -04:00
commit 9e08b88d81
22 changed files with 2910 additions and 0 deletions

133
PoEco.Net/DB/ClassGen.cs Normal file
View File

@@ -0,0 +1,133 @@
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace PoEco.Net.DB
{
internal class ClassGen
{
public static MySqlConnection MxPoEDB()
{
MySqlConnection conn;
string myConnectionString;
myConnectionString = $"server={JSON.Settings.GetdbHost()};port={JSON.Settings.GetdbPort()};uid={JSON.Settings.GetdbUser()};pwd={JSON.Settings.GetdbPass()};database={JSON.Settings.GetdbName()};";
conn = new MySqlConnection();
conn.ConnectionString = myConnectionString;
return conn;
}
public static void AddClass(int id, string name)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"INSERT INTO poeco_classes(cid, name) VALUES ('{id}','{name}')";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void AddBase(string querycmd)
{
MySqlConnection con = MxPoEDB();
//string cmdText = $"INSERT INTO poeco_bases(bid, cid, name) VALUES ('{bid}', '{cid}', '{MySql.Data.MySqlClient.MySqlHelper.EscapeString(name)}')";
string cmdText = querycmd;
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void AddImplicit(string querycmd)
{
MySqlConnection con = MxPoEDB();
//string cmdText = $"INSERT INTO poeco_implicit(bid, imp) VALUES ('{bid}', '{MySql.Data.MySqlClient.MySqlHelper.EscapeString(imp)}')";
string cmdText = querycmd;
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void DeleteClass()
{
MySqlConnection con = MxPoEDB();
string cmdText = $"DELETE FROM poeco_classes";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void DeleteBase()
{
MySqlConnection con = MxPoEDB();
string cmdText = $"DELETE FROM poeco_bases";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void DeleteImplicit()
{
MySqlConnection con = MxPoEDB();
string cmdText = $"DELETE FROM poeco_implicit";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void GenClass()
{
DeleteClass();
DeleteBase();
DeleteImplicit();
DirectoryInfo dir = new DirectoryInfo("data/lua");
int cid = 1;
int bid = 1;
StringBuilder sCommandBase = new StringBuilder("INSERT INTO poeco_bases(bid, cid, name) VALUES ");
List<string> RowsBase = new List<string>();
StringBuilder sCommandImp = new StringBuilder("INSERT INTO poeco_implicit(bid, imp) VALUES ");
List<string> RowsImp = new List<string>();
foreach (var f in dir.GetFiles())
{
var fnp = Path.GetFileNameWithoutExtension(f.FullName);
var fnpUp = char.ToUpper(f.Name[0]) + fnp.Substring(1);
AddClass(cid, fnpUp);
Utilities.Message.drawProgress(cid, dir.EnumerateFiles().Count());
foreach (var l in File.ReadLines(@"data/lua/" + f.Name))
{
int ll = l.Length;
if (l.Contains("itemBases["))
{
RowsBase.Add($"('{bid}','{cid}','{MySql.Data.MySqlClient.MySqlHelper.EscapeString(l.Split('"', '"')[1])}')");
}
if (l.Contains("\timplicit = \""))
{
RowsImp.Add($"('{bid}','{MySql.Data.MySqlClient.MySqlHelper.EscapeString(l.Split('"', '"')[1])}')");
bid++;
}
}
cid++;
}
sCommandBase.Append(string.Join(",", RowsBase));
sCommandBase.Append(";");
AddBase(sCommandBase.ToString());
sCommandImp.Append(string.Join(",", RowsImp));
sCommandImp.Append(";");
AddImplicit(sCommandImp.ToString());
sCommandBase.Clear();
sCommandImp.Clear();
}
}
}

87
PoEco.Net/DB/Item.cs Normal file
View File

@@ -0,0 +1,87 @@
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PoEco.Net.DB
{
internal class Item
{
public static MySqlConnection MxPoEDB()
{
MySqlConnection conn;
string myConnectionString;
myConnectionString = $"server={JSON.Settings.GetdbHost()};port={JSON.Settings.GetdbPort()};uid={JSON.Settings.GetdbUser()};pwd={JSON.Settings.GetdbPass()};database={JSON.Settings.GetdbName()};";
conn = new MySqlConnection();
conn.ConnectionString = myConnectionString;
return conn;
}
public static bool CheckItemExistsByUIID(string uuid)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_items WHERE uiid = '{uuid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows)
{
con.Close();
return true;
} else
{
con.Close();
return false;
}
}
public static int CountItemByUID(int uid, int tid)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT COUNT(*) FROM poeco_items WHERE uid = '{uid}' AND tid = '{tid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
int count = Convert.ToInt32(cmd.ExecuteScalar());
return count;
}
public static List<string> EnumerateItemByUID(int uid, int tid)
{
List<string> i = new List<string>();
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_items WHERE uid = '{uid}' AND tid = '{tid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
MySqlDataReader DR = cmd.ExecuteReader();
while (DR.Read())
{
i.Add(DR.GetString(2));
}
con.Close();
return i;
}
public static void DeleteItemByUIID(int uid, int tid, string uiid)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"DELETE FROM poeco_items WHERE uid = '{uid}' AND tid = '{tid}' AND uiid = '{uiid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void DeleteAllItemsByUID(int uid)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"DELETE FROM poeco_items WHERE uid = '{uid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}

174
PoEco.Net/DB/Stash.cs Normal file
View File

@@ -0,0 +1,174 @@
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace PoEco.Net.DB
{
internal class Stash
{
public static MySqlConnection MxPoEDB()
{
MySqlConnection conn;
string myConnectionString;
myConnectionString = $"server={JSON.Settings.GetdbHost()};port={JSON.Settings.GetdbPort()};uid={JSON.Settings.GetdbUser()};pwd={JSON.Settings.GetdbPass()};database={JSON.Settings.GetdbName()};;max pool size=200";
conn = new MySqlConnection();
conn.ConnectionString = myConnectionString;
return conn;
}
public static List<int> EnumerateTabByUID(int uid, string type)
{
List<int> t = new List<int>();
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_tabs WHERE uid = '{uid}' AND type = '{type}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
MySqlDataReader DR = cmd.ExecuteReader();
while (DR.Read())
{
t.Add(DR.GetInt32(1));
}
con.Close();
return t;
}
public static int GetClassIDByBase(string ibase)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_bases WHERE name LIKE '%{MySqlHelper.EscapeString(ibase)}%'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows)
{
row.Read();
int user = row.GetInt32(1);
con.Close();
return user;
}
else
{
con.Close();
return 0;
}
}
public static string GetClassByID(int iclass)
{
using (var con = MxPoEDB())
{
string cmdText = $"SELECT * FROM poeco_classes WHERE cid = '{iclass}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows)
{
row.Read();
string user = row.GetString(1);
con.Close();
return user;
}
else
{
con.Close();
return null;
}
}
}
public static int GetBaseIDByName(string ibase)
{
using (var con = MxPoEDB())
{
string cmdText = $"SELECT * FROM poeco_bases WHERE name LIKE '%{MySql.Data.MySqlClient.MySqlHelper.EscapeString(ibase)}%'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return row.GetInt32(0); } else { return 0; }
}
}
public static void AddItemTable(int uid, int ti, string uiid, int ilvl, int cid, int bid, string name, string mods, string img, string txt, string b64, double min, double max)
{
using (var con = MxPoEDB())
{
string cmdText = $"INSERT INTO poeco_items(uid, tid, uiid, ilvl, cid, bid, name, mods, img, txt, b64, min, max) VALUES ('{uid}','{ti}','{uiid}','{ilvl}','{cid}','{bid}','{name}','{mods}','{img}','{txt}','{b64}','{min}','{max}')";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
public static void AddProfitTable(int uid, string uiid, string type, string name, int stack, double value)
{
using (var con = MxPoEDB())
{
string cmdText = $"INSERT INTO poeco_profits(uid, uiid, type, name, stack, cvalue) VALUES ('{uid}','{uiid}','{type}','{name}','{stack}','{value}')";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
public static void SetTabNameByTID(int uid, int tid, string name)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"UPDATE poeco_tabs SET name = '{name}' WHERE uid = '{uid}' AND tid = '{tid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void SetTabRGBByTID(int uid, int tid, string rgb)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"UPDATE poeco_tabs SET rgb = '{rgb}' WHERE uid = '{uid}' AND tid = '{tid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static bool CheckItemExistsDB(string iid)
{
using (var con = MxPoEDB())
{
string cmdText = $"SELECT * FROM poeco_items WHERE uiid = '{iid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
return row.HasRows;
}
}
public static void DeleteSpecificItem(int userid, string uuid)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"DELETE FROM poeco_items WHERE uid = '{userid}' AND uiid = '{uuid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void DeleteItems(int userid)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"DELETE FROM poeco_items WHERE uid = '{userid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}

216
PoEco.Net/DB/User.cs Normal file
View File

@@ -0,0 +1,216 @@
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PoEco.Net.DB
{
internal class User
{
public static MySqlConnection MxPoEDB()
{
MySqlConnection conn;
string myConnectionString;
myConnectionString = $"server={JSON.Settings.GetdbHost()};port={JSON.Settings.GetdbPort()};uid={JSON.Settings.GetdbUser()};pwd={JSON.Settings.GetdbPass()};database={JSON.Settings.GetdbName()};";
conn = new MySqlConnection();
conn.ConnectionString = myConnectionString;
return conn;
}
public static bool CheckUserExists(string user, string discriminator)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_user WHERE account = '{user}|{discriminator}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { con.Close(); return true; } else { con.Close(); return false; }
}
public static int GetUserID(string user)
{
using (var con = MxPoEDB())
{
string cmdText = $"SELECT * FROM poeco_user WHERE account = '{user}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return Convert.ToInt32(row["uid"]); } else { return 0; }
}
}
public static string[] GetUserNameByID(int uid)
{
using (var con = MxPoEDB())
{
string cmdText = $"SELECT * FROM poeco_user WHERE uid = '{uid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows)
{
row.Read();
string[] user = row["account"].ToString().Split('|');
con.Close();
return user;
} else
{
con.Close();
return null;
}
}
}
public static string GetUserTokenByID(int uid)
{
using (var con = MxPoEDB())
{
string cmdText = $"SELECT * FROM poeco_user WHERE uid = '{uid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows)
{
row.Read();
string user = row["token"].ToString();
con.Close();
return user;
}
else
{
con.Close();
return null;
}
}
}
public static int GetUserTabIndex(string user)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_user WHERE account = '{user}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); con.Close(); return Convert.ToInt32(row["rareindex"]); } else { con.Close(); return 0; }
}
public static int GetUserProfitTabIndex(int uid)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_tabs WHERE type = 'profit'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return Convert.ToInt32(row["tid"]); } else { return 0; }
}
public static int GetUserCurrencyIndex(string user, string column)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_user WHERE account = '{user}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return Convert.ToInt32(row[column]); } else { return 0; }
}
public static int GetUserItemCount(string user)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_user WHERE account = '{user}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return Convert.ToInt32(row["itemcount"]); } else { return 0; }
}
public static string GetUserStashHash(string user)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_user WHERE account = '{user}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return row["stashb64"].ToString(); } else { return ""; }
}
public static string GetUserToken(string user)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_user WHERE account = '{user}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return row["token"].ToString(); } else { return ""; }
}
public static int GetTabValueByTID(int uid, int tid)
{
int tv = 0;
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_items WHERE uid = '{uid}' AND tid = '{tid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
MySqlDataReader DR = cmd.ExecuteReader();
while (DR.Read())
{
tv = tv + DR.GetInt32(12);
}
return tv;
}
public static int CountTabByUID(int uid)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT COUNT(*) FROM poeco_tabs WHERE uid = '{uid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
int count = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
return count;
}
public static void SetUserItemCount(int uid, int count, int index)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"UPDATE poeco_tabs SET count = '{count}' WHERE uid = '{uid}' AND tid = '{index}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void SetUserStashHash(string user, string b64)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"UPDATE poeco_user SET stashb64 = '{b64}' WHERE account = '{user}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void SetUserTabValue(int uid, int ti, double value)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"UPDATE poeco_tabs SET cvalue = '{value}' WHERE uid = '{uid}' AND tid = '{ti}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void DeleteProfits(int uid)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"DELETE FROM poeco_profits WHERE uid = '{uid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}