示例#1
0
 private void OnGamePostInitialize(EventArgs Args) =>
 Overrides.Reload();
示例#2
0
        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}.");
                }
示例#3
0
 private void OnReload(ReloadEventArgs Args) =>
 Overrides.Reload();