Core/DataStores: Implemented WorldStateExpression

Port From (https://github.com/TrinityCore/TrinityCore/commit/548d79bb06cfba3517347070dfe606748dda55ab)
This commit is contained in:
hondacrx
2019-09-03 23:44:24 -04:00
parent 995e04b80d
commit 42d9ed78ee
9 changed files with 419 additions and 23 deletions
+78 -13
View File
@@ -640,7 +640,7 @@ namespace Game.Chat
[Command("raidreset", RBACPermissions.CommandInstanceUnbind)]
static bool HandleDebugRaidResetCommand(StringArguments args, CommandHandler handler)
{
string map_str = args.NextString();
string map_str = args.NextString();
string difficulty_str = args.NextString();
if (!int.TryParse(map_str, out int map) || map <= 0)
@@ -809,6 +809,82 @@ namespace Game.Chat
return true;
}
[CommandNonGroup("wpgps", RBACPermissions.CommandWpgps)]
static bool HandleWPGPSCommand(StringArguments args, CommandHandler handler)
{
Player player = handler.GetSession().GetPlayer();
Log.outInfo(LogFilter.SqlDev, "(@PATH, XX, {0}, {1}, {2}, 0, 0, 0, 100, 0),", player.GetPositionX(), player.GetPositionY(), player.GetPositionZ());
handler.SendSysMessage("Waypoint SQL written to SQL Developer log");
return true;
}
[Command("worldstate", RBACPermissions.CommandDebug)]
static bool HandleDebugWorldStateCommand(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
string worldStateIdStr = args.NextString();
string valueStr = args.NextString();
if (worldStateIdStr.IsEmpty())
return false;
Player target = handler.getSelectedPlayerOrSelf();
if (target == null)
{
handler.SendSysMessage(CypherStrings.PlayerNotFound);
return false;
}
uint worldStateId = uint.Parse(worldStateIdStr);
uint value = valueStr.IsEmpty() ? 0 : uint.Parse(valueStr);
if (value != 0)
{
Global.WorldMgr.setWorldState(worldStateId, value);
target.SendUpdateWorldState(worldStateId, value);
}
else
handler.SendSysMessage($"Worldstate {worldStateId} actual value : {Global.WorldMgr.getWorldState(worldStateId)}");
return true;
}
[Command("wsexpression", RBACPermissions.CommandDebug)]
static bool HandleDebugWSExpressionCommand(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
string expressionIdStr = args.NextString();
if (expressionIdStr.IsEmpty())
return false;
uint expressionId = uint.Parse(expressionIdStr);
Player target = handler.getSelectedPlayerOrSelf();
if (target == null)
{
handler.SendSysMessage(CypherStrings.PlayerNotFound);
return false;
}
WorldStateExpressionRecord wsExpressionEntry = CliDB.WorldStateExpressionStorage.LookupByKey(expressionId);
if (wsExpressionEntry == null)
return false;
if (ConditionManager.IsPlayerMeetingExpression(target, wsExpressionEntry))
handler.SendSysMessage($"Expression {expressionId} meet");
else
handler.SendSysMessage($"Expression {expressionId} not meet");
return true;
}
[CommandGroup("send", RBACPermissions.CommandDebugSend)]
class SendCommands
{
@@ -948,7 +1024,7 @@ namespace Game.Chat
if (args.Empty())
return false;
if (!byte.TryParse(args.NextString(), out byte failNum) ||failNum == 0)
if (!byte.TryParse(args.NextString(), out byte failNum) || failNum == 0)
return false;
int failArg1 = args.NextInt32();
@@ -1066,16 +1142,5 @@ namespace Game.Chat
return true;
}
}
[CommandNonGroup("wpgps", RBACPermissions.CommandWpgps)]
static bool HandleWPGPSCommand(StringArguments args, CommandHandler handler)
{
Player player = handler.GetSession().GetPlayer();
Log.outInfo(LogFilter.SqlDev, "(@PATH, XX, {0}, {1}, {2}, 0, 0, 0, 100, 0),", player.GetPositionX(), player.GetPositionY(), player.GetPositionZ());
handler.SendSysMessage("Waypoint SQL written to SQL Developer log");
return true;
}
}
}