Add this validation in line 291 inside the IF before the count:
args != null &&
The whole function is:
[ChatCommand("info")]
private void ShowInfo(BasePlayer player, string command, string[] args)
{
if (player == null || _settings == null)
return;
if (!PlayerActiveTabs.ContainsKey(player.userID))
PlayerActiveTabs.Add(player.userID, new PlayerInfoState(_settings));
var container = new CuiElementContainer();
var mainPanelName = AddMainPanel(container);
PlayerActiveTabs[player.userID].MainPanelName = mainPanelName;
var tabFirstIndex = _settings.TabToOpenByDefault;
var tabToSelectIndex = tabFirstIndex;
int tabtoSelectArgumentIndex = 0;
if (args != null && args.Count() == 1)
{
if (int.TryParse(args[0], out tabtoSelectArgumentIndex))
{
tabToSelectIndex = tabtoSelectArgumentIndex;
PlayerActiveTabs[player.userID].ActiveTabIndex = tabtoSelectArgumentIndex;
}
}
var allowedTabs = _settings.Tabs
.Where((tab, tabIndex) => string.IsNullOrEmpty(tab.OxideGroup) ||
tab.OxideGroup.Split(',')
.Any(group => Permission.UserHasGroup(player.userID.ToString(CultureInfo.InvariantCulture), group)))
.ToList();
if (allowedTabs.Count <= 0)
{
SendReply(player, "[GUI Help] You don't have permissions to see info.");
return;
}
var activeAllowedTab = allowedTabs[tabToSelectIndex];
var tabContentPanelName = CreateTabContent(activeAllowedTab, container, mainPanelName);
var activeTabButtonName = AddActiveButton(tabToSelectIndex, activeAllowedTab, container, mainPanelName);
for (int tabIndex = 0; tabIndex < allowedTabs.Count; tabIndex++)
{
if (tabIndex == tabToSelectIndex)
continue;
AddNonActiveButton(tabIndex, container, allowedTabs[tabIndex], mainPanelName, activeTabButtonName);
}
PlayerActiveTabs[player.userID].ActiveTabContentPanelName = tabContentPanelName;
SendUI(player, container);
}