mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-25 06:04:46 -04:00
Style: Use more modular code for DELETE FROM.
This commit is contained in:
parent
ad1dca0470
commit
8f4ad83ed6
@ -38,10 +38,8 @@ namespace MCGalaxy.Commands {
|
||||
if (message == "") {
|
||||
using (DataTable Inbox = Database.Backend.GetRows("Inbox" + p.name, "*", "ORDER BY TimeSent")) {
|
||||
if (Inbox.Rows.Count == 0) { Player.Message(p, "No messages found."); return; }
|
||||
int i = 0;
|
||||
foreach (DataRow row in Inbox.Rows) {
|
||||
OutputMessage(p, row);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
} else if (parts[0] == "del" || parts[0] == "delete") {
|
||||
@ -66,9 +64,9 @@ namespace MCGalaxy.Commands {
|
||||
Database.Backend.ClearTable("Inbox" + p.name);
|
||||
} else {
|
||||
DataRow row = Inbox.Rows[num];
|
||||
string syntax = "DELETE FROM `Inbox" + p.name + "` WHERE PlayerFrom=@0 AND TimeSent=@1";
|
||||
string time = Convert.ToDateTime(row["TimeSent"]).ToString("yyyy-MM-dd HH:mm:ss");
|
||||
Database.Execute(syntax, row["PlayerFrom"], time);
|
||||
Database.Backend.DeleteRows("Inbox" + p.name,
|
||||
"WHERE PlayerFrom=@0 AND TimeSent=@1", row["PlayerFrom"], time);
|
||||
}
|
||||
|
||||
if (num == -1) Player.Message(p, "Deleted all messages.");
|
||||
|
@ -106,5 +106,13 @@ namespace MCGalaxy.SQL {
|
||||
if (modifier != "") syntax += " " + modifier;
|
||||
Database.Execute(syntax, args);
|
||||
}
|
||||
|
||||
/// <summary> Deletes rows for the given table from the database. </summary>
|
||||
/// <remarks> modifier is optional SQL which can be used to delete only certain rows.</remarks>
|
||||
public virtual void DeleteRows(string table, string modifier = "", params object[] args) {
|
||||
string syntax = "DELETE FROM `" + table + "`";
|
||||
if (modifier != "") syntax += " " + modifier;
|
||||
Database.Execute(syntax, args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -125,7 +125,7 @@ namespace MCGalaxy {
|
||||
if (Block.Props[block].IsPortal) continue;
|
||||
}
|
||||
|
||||
Database.Execute("DELETE FROM `Portals" + name + "` WHERE EntryX=@0 AND EntryY=@1 AND EntryZ=@2", x, y, z);
|
||||
Database.Backend.DeleteRows("Portals" + name, "WHERE EntryX=@0 AND EntryY=@1 AND EntryZ=@2", x, y, z);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -145,9 +145,8 @@ namespace MCGalaxy {
|
||||
} else {
|
||||
if (Block.Props[block].IsMessageBlock) continue;
|
||||
}
|
||||
|
||||
//givenName is safe against SQL injections, it gets checked in CmdLoad.cs
|
||||
Database.Execute("DELETE FROM `Messages" + name + "` WHERE X=@0 AND Y=@1 AND Z=@2", x, y, z);
|
||||
|
||||
Database.Backend.DeleteRows("Messages" + name, "WHERE X=@0 AND Y=@1 AND Z=@2", x, y, z);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -156,9 +155,9 @@ namespace MCGalaxy {
|
||||
object locker = ThreadSafeCache.DBCache.Get(level);
|
||||
lock (locker) {
|
||||
if (!Database.TableExists("Zone" + level)) return;
|
||||
Database.Execute("DELETE FROM `Zone" + level + "` WHERE Owner=@0 AND SmallX=@1 AND " +
|
||||
"SMALLY=@2 AND SMALLZ=@3 AND BIGX=@4 AND BIGY=@5 AND BIGZ=@6",
|
||||
zn.Owner, zn.smallX, zn.smallY, zn.smallZ, zn.bigX, zn.bigY, zn.bigZ);
|
||||
Database.Backend.DeleteRows("Zone" + level, "WHERE Owner=@0 AND SmallX=@1 AND SMALLY=@2 " +
|
||||
"AND SMALLZ=@3 AND BIGX=@4 AND BIGY=@5 AND BIGZ=@6",
|
||||
zn.Owner, zn.smallX, zn.smallY, zn.smallZ, zn.bigX, zn.bigY, zn.bigZ);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user