Skip to content

Commit a5ba5f6

Browse files
committed
Fix EntWatch config dump crashing server when used from console
1 parent 3c61a71 commit a5ba5f6

2 files changed

Lines changed: 30 additions & 32 deletions

File tree

src/entwatch.cpp

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1139,12 +1139,11 @@ void CEWHandler::LoadConfig(const char* sFilePath)
11391139
bConfigLoaded = true;
11401140
}
11411141

1142-
void CEWHandler::PrintLoadedConfig(CPlayerSlot slot)
1142+
void CEWHandler::PrintLoadedConfig(CCSPlayerController* pController)
11431143
{
1144-
CCSPlayerController* player = CCSPlayerController::FromSlot(slot);
11451144
if (!bConfigLoaded)
11461145
{
1147-
ClientPrint(player, HUD_PRINTTALK, EW_PREFIX "No config loaded.");
1146+
ClientPrint(pController, HUD_PRINTTALK, EW_PREFIX "No config loaded.");
11481147
return;
11491148
}
11501149

@@ -1154,55 +1153,55 @@ void CEWHandler::PrintLoadedConfig(CPlayerSlot slot)
11541153
i++;
11551154
if (!item)
11561155
{
1157-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX "Null item in the item map at pos %d", i);
1156+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX "Null item in the item map at pos %d", i);
11581157
continue;
11591158
}
11601159

1161-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX "------------ Item %02d ------------", i);
1162-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Name: %s", item->szItemName.c_str());
1163-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX "ShortName: %s", item->szShortName.c_str());
1164-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Hammerid: %s", item->szHammerid.c_str());
1165-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Message: %s", item->bShowPickup ? "True" : "False");
1166-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " UI: %s", item->bShowHud ? "True" : "False");
1160+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX "------------ Item %02d ------------", i);
1161+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Name: %s", item->szItemName.c_str());
1162+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX "ShortName: %s", item->szShortName.c_str());
1163+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Hammerid: %s", item->szHammerid.c_str());
1164+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Message: %s", item->bShowPickup ? "True" : "False");
1165+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " UI: %s", item->bShowHud ? "True" : "False");
11671166
if (item->transfer == EWCfg_Auto)
1168-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Transfer: Auto");
1167+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Transfer: Auto");
11691168
else if (item->transfer == EWCfg_Yes)
1170-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Transfer: True");
1169+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Transfer: True");
11711170
else
1172-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Transfer: False");
1171+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Transfer: False");
11731172

1174-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " ");
1173+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " ");
11751174
if (item->vecHandlers.size() == 0)
11761175
{
1177-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " No handlers set.");
1176+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " No handlers set.");
11781177
}
11791178
else
11801179
{
11811180
for (int j = 0; j < (item->vecHandlers).size(); j++)
11821181
{
11831182
// " "
1184-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " --------- Handler %d ---------", j);
1185-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Type: %s", item->vecHandlers[j]->type == EWHandlerType::Button ? "Button" : "GameUi");
1186-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Mode: %d", (int)item->vecHandlers[j]->mode);
1187-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Hammerid: %s", item->vecHandlers[j]->szHammerid.c_str());
1188-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Event: %s", item->vecHandlers[j]->szOutput.c_str());
1189-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Cooldown: %.1f", item->vecHandlers[j]->flCooldown);
1190-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Max Uses: %d", item->vecHandlers[j]->iMaxUses);
1191-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Message: %s", item->vecHandlers[j]->bShowUse ? "True" : "False");
1192-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " --------- --------- ---------");
1183+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " --------- Handler %d ---------", j);
1184+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Type: %s", item->vecHandlers[j]->type == EWHandlerType::Button ? "Button" : "GameUi");
1185+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Mode: %d", (int)item->vecHandlers[j]->mode);
1186+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Hammerid: %s", item->vecHandlers[j]->szHammerid.c_str());
1187+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Event: %s", item->vecHandlers[j]->szOutput.c_str());
1188+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Cooldown: %.1f", item->vecHandlers[j]->flCooldown);
1189+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Max Uses: %d", item->vecHandlers[j]->iMaxUses);
1190+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Message: %s", item->vecHandlers[j]->bShowUse ? "True" : "False");
1191+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " --------- --------- ---------");
11931192
}
11941193
}
11951194

1196-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " ");
1195+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " ");
11971196
if (item->vecTriggers.size() == 0)
1198-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " No triggers set.");
1197+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " No triggers set.");
11991198
else
12001199
for (int j = 0; j < item->vecTriggers.size(); j++)
1201-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX " Trigger %d: %s", j, item->vecTriggers[j].c_str());
1200+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX " Trigger %d: %s", j, item->vecTriggers[j].c_str());
12021201

1203-
ClientPrint(player, HUD_PRINTCONSOLE, EW_PREFIX "------------ ------- ------------");
1202+
ClientPrint(pController, HUD_PRINTCONSOLE, EW_PREFIX "------------ ------- ------------");
12041203
}
1205-
ClientPrint(player, HUD_PRINTTALK, EW_PREFIX "See console for output.");
1204+
ClientPrint(pController, HUD_PRINTTALK, EW_PREFIX "See console for output.");
12061205
}
12071206

12081207
void CEWHandler::ClearItems()
@@ -2654,7 +2653,7 @@ CON_COMMAND_CHAT(ew_dump, "- Prints the currently loaded config to console")
26542653
return;
26552654
}
26562655

2657-
g_pEWHandler->PrintLoadedConfig(player->GetPlayerSlot());
2656+
g_pEWHandler->PrintLoadedConfig(player);
26582657
}
26592658

26602659
CON_COMMAND_CHAT(hud, "- Toggle EntWatch HUD")

src/entwatch.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,7 @@ class CEWHandler
240240
void LoadMapConfig(const char* sMapName);
241241
void LoadConfig(const char* sFilePath);
242242

243-
void PrintLoadedConfig(int iSlot) { PrintLoadedConfig(CPlayerSlot(iSlot)); };
244-
void PrintLoadedConfig(CPlayerSlot slot);
243+
void PrintLoadedConfig(CCSPlayerController* pController);
245244

246245
void ClearItems();
247246

0 commit comments

Comments
 (0)