private void OnGamePostInitialize(EventArgs Args) => Overrides.Reload();
private static void ItemBan(CommandArgs args) { switch (args.Parameters.FirstOrDefault()?.ToLower()) { #region Add case "+": case "a": case "add": { if ((args.Parameters.Count < 3) || !GetType(args, out bool whitelist)) { args.Player.SendErrorMessage(TShock.Config.Settings.CommandSpecifier + "witemban <add/+> <Item Name or ID> <whitelist/w/blacklist/b>"); return; } string name = string.Join(" ", args.Parameters.Skip(1).Take(args.Parameters.Count - 2)); List <Item> items = TShock.Utils.GetItemByIdOrName(name); if (items.Count == 0) { args.Player.SendErrorMessage($"Invalid item '{name}'."); return; } else if (items.Count > 1) { args.Player.SendMultipleMatchError(items.Select(i => $"{i.Name}({i.netID})")); return; } Item item = items[0]; if (whitelist == Overrides.IsBannedItem(item.netID, out bool locally)) { Overrides.OverrideItemBan(item.netID, whitelist); args.Player.SendSuccessMessage($"{(whitelist ? "Unb" : "B")}anned " + $"item {item.Name} in the current world."); } else { args.Player.SendErrorMessage($"Item {item.Name} is " + $"{(whitelist ? "not" : "already")} banned" + $"{(locally ? " in the current world" : "")}."); } return; } #endregion #region Delete case "-": case "d": case "del": case "delete": { if (args.Parameters.Count < 2) { args.Player.SendErrorMessage(TShock.Config.Settings.CommandSpecifier + "witemban <delete/-> <Item Name or ID>"); return; } string name = string.Join(" ", args.Parameters.Skip(1)); List <Item> items = TShock.Utils.GetItemByIdOrName(args.Parameters[1]); if (items.Count == 0) { args.Player.SendErrorMessage($"Invalid item '{args.Parameters[1]}'."); return; } else if (items.Count > 1) { args.Player.SendMultipleMatchError(items.Select(i => $"{i.Name}({i.netID})")); return; } Item item = items[0]; if (Overrides.RemoveItemBanOverride(item.netID, out bool banned, out bool whitelist)) { args.Player.SendSuccessMessage($"{(banned ? "B" : "Unb")}anned " + $"item {item.Name}."); }
private void OnReload(ReloadEventArgs Args) => Overrides.Reload();