Core/Waypoints: Drop waypoint_scripts table

Port From (https://github.com/TrinityCore/TrinityCore/commit/3f6f683ce4b5f4a95a2d70921de2c80de6b3a8fe)
This commit is contained in:
hondacrx
2024-02-03 11:47:02 -05:00
parent ee7b89560e
commit 284cb628c9
9 changed files with 5 additions and 345 deletions
@@ -929,26 +929,6 @@ namespace Game.Chat
return true;
}
[Command("waypoint_scripts", RBACPermissions.CommandReloadWaypointScripts, true)]
static bool HandleReloadWpScriptsCommand(CommandHandler handler, StringArguments args)
{
if (Global.MapMgr.IsScriptScheduled())
{
handler.SendSysMessage("DB scripts used currently, please attempt reload later.");
return false;
}
if (args != null)
Log.outInfo(LogFilter.Server, "Re-Loading Scripts from `waypoint_scripts`...");
Global.ObjectMgr.LoadWaypointScripts();
if (args != null)
handler.SendGlobalGMSysMessage("DB table `waypoint_scripts` reloaded.");
return true;
}
[CommandGroup("all")]
class AllCommand
{
@@ -1080,7 +1060,6 @@ namespace Game.Chat
HandleReloadEventScriptsCommand(handler, null);
HandleReloadSpellScriptsCommand(handler, null);
handler.SendGlobalGMSysMessage("DB tables `*_scripts` reloaded.");
HandleReloadWpScriptsCommand(handler, null);
HandleReloadWpCommand(handler, null);
return true;
}
-242
View File
@@ -72,244 +72,6 @@ namespace Game.Chat.Commands
return true;
}
[Command("event", RBACPermissions.CommandWpEvent)]
static bool HandleWpEventCommand(CommandHandler handler, string subCommand, uint id, [OptionalArg] string arg, [OptionalArg] string arg2)
{
PreparedStatement stmt;
// Check
if ((subCommand != "add") && (subCommand != "mod") && (subCommand != "del") && (subCommand != "listid"))
return false;
if (subCommand == "add")
{
if (id != 0)
{
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.SEL_WAYPOINT_SCRIPT_ID_BY_GUID);
stmt.AddValue(0, id);
SQLResult result = DB.World.Query(stmt);
if (result.IsEmpty())
{
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.INS_WAYPOINT_SCRIPT);
stmt.AddValue(0, id);
DB.World.Execute(stmt);
handler.SendSysMessage("|cff00ff00Wp Event: New waypoint event added: {0}|r", "", id);
}
else
handler.SendSysMessage("|cff00ff00Wp Event: You have choosed an existing waypoint script guid: {0}|r", id);
}
else
{
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.SEL_WAYPOINT_SCRIPTS_MAX_ID);
SQLResult result = DB.World.Query(stmt);
id = result.Read<uint>(0);
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.INS_WAYPOINT_SCRIPT);
stmt.AddValue(0, id + 1);
DB.World.Execute(stmt);
handler.SendSysMessage("|cff00ff00Wp Event: New waypoint event added: |r|cff00ffff{0}|r", id + 1);
}
return true;
}
if (subCommand == "listid")
{
if (id == 0)
{
handler.SendSysMessage("|cff33ffffWp Event: You must provide waypoint script id.|r");
return true;
}
uint a2, a3, a4, a5, a6;
float a8, a9, a10, a11;
string a7;
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.SEL_WAYPOINT_SCRIPT_BY_ID);
stmt.AddValue(0, id);
SQLResult result = DB.World.Query(stmt);
if (result.IsEmpty())
{
handler.SendSysMessage("|cff33ffffWp Event: No waypoint scripts found on id: {0}|r", id);
return true;
}
do
{
a2 = result.Read<uint>(0);
a3 = result.Read<uint>(1);
a4 = result.Read<uint>(2);
a5 = result.Read<uint>(3);
a6 = result.Read<uint>(4);
a7 = result.Read<string>(5);
a8 = result.Read<float>(6);
a9 = result.Read<float>(7);
a10 = result.Read<float>(8);
a11 = result.Read<float>(9);
handler.SendSysMessage("|cffff33ffid:|r|cff00ffff {0}|r|cff00ff00, guid: |r|cff00ffff{1}|r|cff00ff00, delay: |r|cff00ffff{2}|r|cff00ff00, command: |r|cff00ffff{3}|r|cff00ff00," +
"datalong: |r|cff00ffff{4}|r|cff00ff00, datalong2: |r|cff00ffff{5}|r|cff00ff00, datatext: |r|cff00ffff{6}|r|cff00ff00, posx: |r|cff00ffff{7}|r|cff00ff00, " +
"posy: |r|cff00ffff{8}|r|cff00ff00, posz: |r|cff00ffff{9}|r|cff00ff00, orientation: |r|cff00ffff{10}|r", id, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
}
while (result.NextRow());
}
if (subCommand == "del")
{
if (id == 0)
{
handler.SendSysMessage("|cffff33ffERROR: Waypoint script guid not present.|r");
return true;
}
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.SEL_WAYPOINT_SCRIPT_ID_BY_GUID);
stmt.AddValue(0, id);
SQLResult result = DB.World.Query(stmt);
if (!result.IsEmpty())
{
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.DEL_WAYPOINT_SCRIPT);
stmt.AddValue(0, id);
DB.World.Execute(stmt);
handler.SendSysMessage("|cff00ff00{0}{1}|r", "Wp Event: Waypoint script removed: ", id);
}
else
handler.SendSysMessage("|cffff33ffWp Event: ERROR: you have selected a non existing script: {0}|r", id);
return true;
}
if (subCommand == "mod")
{
if (id == 0)
{
handler.SendSysMessage("|cffff33ffERROR: No valid waypoint script id not present.|r");
return true;
}
if (arg.IsEmpty())
{
handler.SendSysMessage("|cffff33ffERROR: No argument present.|r");
return true;
}
if ((arg != "setid") && (arg != "delay") && (arg != "command")
&& (arg != "datalong") && (arg != "datalong2") && (arg != "dataint") && (arg != "posx")
&& (arg != "posy") && (arg != "posz") && (arg != "orientation"))
{
handler.SendSysMessage("|cffff33ffERROR: No valid argument present.|r");
return true;
}
if (arg2.IsEmpty())
{
handler.SendSysMessage("|cffff33ffERROR: No additional argument present.|r");
return true;
}
if (arg == "setid")
{
if (!uint.TryParse(arg2, out uint newid))
return false;
handler.SendSysMessage("|cff00ff00Wp Event: Waypoint script guid: {0}|r|cff00ffff id changed: |r|cff00ff00{1}|r", newid, id);
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.UPD_WAYPOINT_SCRIPT_ID);
stmt.AddValue(0, newid);
stmt.AddValue(1, id);
DB.World.Execute(stmt);
return true;
}
else
{
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.SEL_WAYPOINT_SCRIPT_ID_BY_GUID);
stmt.AddValue(0, id);
SQLResult result = DB.World.Query(stmt);
if (result.IsEmpty())
{
handler.SendSysMessage("|cffff33ffERROR: You have selected an non existing waypoint script guid.|r");
return true;
}
if (arg == "posx")
{
if (!float.TryParse(arg2, out float arg3))
return false;
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.UPD_WAYPOINT_SCRIPT_X);
stmt.AddValue(0, arg3);
stmt.AddValue(1, id);
DB.World.Execute(stmt);
handler.SendSysMessage("|cff00ff00Waypoint script:|r|cff00ffff {0}|r|cff00ff00 position_x updated.|r", id);
return true;
}
else if (arg == "posy")
{
if (!float.TryParse(arg2, out float arg3))
return false;
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.UPD_WAYPOINT_SCRIPT_Y);
stmt.AddValue(0, arg3);
stmt.AddValue(1, id);
DB.World.Execute(stmt);
handler.SendSysMessage("|cff00ff00Waypoint script: {0} position_y updated.|r", id);
return true;
}
else if (arg == "posz")
{
if (!float.TryParse(arg2, out float arg3))
return false;
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.UPD_WAYPOINT_SCRIPT_Z);
stmt.AddValue(0, arg3);
stmt.AddValue(1, id);
DB.World.Execute(stmt);
handler.SendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff{0}|r|cff00ff00 position_z updated.|r", id);
return true;
}
else if (arg == "orientation")
{
if (!float.TryParse(arg2, out float arg3))
return false;
stmt = WorldDatabase.GetPreparedStatement(WorldStatements.UPD_WAYPOINT_SCRIPT_O);
stmt.AddValue(0, arg3);
stmt.AddValue(1, id);
DB.World.Execute(stmt);
handler.SendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff{0}|r|cff00ff00 orientation updated.|r", id);
return true;
}
else if (arg == "dataint")
{
if (!uint.TryParse(arg2, out uint arg3))
return false;
DB.World.Execute("UPDATE waypoint_scripts SET {0}='{1}' WHERE guid='{2}'", arg, arg3, id); // Query can't be a prepared statement
handler.SendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff{0}|r|cff00ff00 dataint updated.|r", id);
return true;
}
else
{
DB.World.Execute("UPDATE waypoint_scripts SET {0}='{1}' WHERE guid='{2}'", arg, arg, id); // Query can't be a prepared statement
}
}
handler.SendSysMessage("|cff00ff00Waypoint script:|r|cff00ffff{0}:|r|cff00ff00 {1} updated.|r", id, arg);
}
return true;
}
[Command("load", RBACPermissions.CommandWpLoad)]
static bool HandleWpLoadCommand(CommandHandler handler, uint? optionalPathId)
{
@@ -621,14 +383,10 @@ namespace Game.Chat.Commands
uint point = result.Read<uint>(1);
uint delay = result.Read<uint>(2);
uint flag = result.Read<uint>(3);
uint ev_id = result.Read<uint>(4);
uint ev_chance = result.Read<ushort>(5);
handler.SendSysMessage("|cff00ff00Show info: for current point: |r|cff00ffff{0}|r|cff00ff00, Path ID: |r|cff00ffff{1}|r", point, pathId);
handler.SendSysMessage("|cff00ff00Show info: delay: |r|cff00ffff{0}|r", delay);
handler.SendSysMessage("|cff00ff00Show info: Move flag: |r|cff00ffff{0}|r", flag);
handler.SendSysMessage("|cff00ff00Show info: Waypoint event: |r|cff00ffff{0}|r", ev_id);
handler.SendSysMessage("|cff00ff00Show info: Event chance: |r|cff00ffff{0}|r", ev_chance);
}
while (result.NextRow());