fix(db): Fix casing for regions and warps

This commit is contained in:
Sakura Akeno Isayeki 2025-04-29 02:05:51 +02:00
parent de602a91d4
commit 4c13084eb3
No known key found for this signature in database
GPG key ID: BAB781B71FD2E7E6
2 changed files with 17 additions and 9 deletions

View file

@ -65,8 +65,13 @@ namespace TShockAPI.DB
{
try
{
if (database.Query("INSERT INTO Warps (X, Y, WarpName, WorldID) VALUES (@0, @1, @2, @3);",
x, y, name, Main.worldID.ToString()) > 0)
string query = database.GetSqlType() switch
{
SqlType.Postgres => "INSERT INTO Warps (\"X\", \"Y\", \"WarpName\", \"WorldID\") VALUES (@0, @1, @2, @3);",
_ => "INSERT INTO Warps (X, Y, WarpName, WorldID) VALUES (@0, @1, @2, @3);"
};
if (database.Query(query, x, y, name, Main.worldID.ToString()) > 0)
{
Warps.Add(new Warp(new Point(x, y), name));
return true;
@ -76,6 +81,7 @@ namespace TShockAPI.DB
{
TShock.Log.Error(ex.ToString());
}
return false;
}
@ -106,7 +112,7 @@ namespace TShockAPI.DB
{
try
{
if (database.Query("DELETE FROM Warps WHERE WarpName = @0 AND WorldID = @1",
if (database.Query($"DELETE FROM Warps WHERE {"WarpName".EscapeSqlId(database)} = @0 AND {"WorldID".EscapeSqlId(database)} = @1",
warpName, Main.worldID.ToString()) > 0)
{
Warps.RemoveAll(w => string.Equals(w.Name, warpName, StringComparison.OrdinalIgnoreCase));
@ -141,7 +147,7 @@ namespace TShockAPI.DB
{
try
{
if (database.Query("UPDATE Warps SET X = @0, Y = @1 WHERE WarpName = @2 AND WorldID = @3",
if (database.Query($"UPDATE Warps SET X = @0, Y = @1 WHERE {"WarpName".EscapeSqlId(database)} = @2 AND WorldID = @3",
x, y, warpName, Main.worldID.ToString()) > 0)
{
Warps.Find(w => string.Equals(w.Name, warpName, StringComparison.OrdinalIgnoreCase)).Position = new Point(x, y);
@ -165,7 +171,7 @@ namespace TShockAPI.DB
{
try
{
if (database.Query("UPDATE Warps SET Private = @0 WHERE WarpName = @1 AND WorldID = @2",
if (database.Query($"UPDATE Warps SET {"Private".EscapeSqlId(database)} = @0 WHERE {"WarpName".EscapeSqlId(database)} = @1 AND {"WorldID".EscapeSqlId(database)} = @2",
state ? "1" : "0", warpName, Main.worldID.ToString()) > 0)
{
Warps.Find(w => string.Equals(w.Name, warpName, StringComparison.OrdinalIgnoreCase)).IsPrivate = state;