diff --git a/ArchiSteamFarm/Plugins/Interfaces/IBotCommand.cs b/ArchiSteamFarm/Plugins/Interfaces/IBotCommand.cs
deleted file mode 100644
index 77357d3da..000000000
--- a/ArchiSteamFarm/Plugins/Interfaces/IBotCommand.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-// _ _ _ ____ _ _____
-// / \ _ __ ___ | |__ (_)/ ___| | |_ ___ __ _ _ __ ___ | ___|__ _ _ __ _ __ ___
-// / _ \ | '__|/ __|| '_ \ | |\___ \ | __|/ _ \ / _` || '_ ` _ \ | |_ / _` || '__|| '_ ` _ \
-// / ___ \ | | | (__ | | | || | ___) || |_| __/| (_| || | | | | || _|| (_| || | | | | | | |
-// /_/ \_\|_| \___||_| |_||_||____/ \__|\___| \__,_||_| |_| |_||_| \__,_||_| |_| |_| |_|
-// |
-// Copyright 2015-2022 Ćukasz "JustArchi" Domeradzki
-// Contact: JustArchi@JustArchi.net
-// |
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-// |
-// http://www.apache.org/licenses/LICENSE-2.0
-// |
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-using System;
-using System.Threading.Tasks;
-using ArchiSteamFarm.Steam;
-using ArchiSteamFarm.Storage;
-using JetBrains.Annotations;
-
-namespace ArchiSteamFarm.Plugins.Interfaces;
-
-[PublicAPI]
-[Obsolete($"Use {nameof(IBotCommand2)} instead, this one will be removed soon.", true)]
-public interface IBotCommand : IPlugin {
- ///
- /// ASF will call this method for unrecognized commands.
- ///
- /// Bot object related to this callback.
- /// 64-bit long unsigned integer of steamID executing the command.
- /// Command message in its raw format, stripped of .
- /// Pre-parsed message using standard ASF delimiters.
- /// Response to the command, or null/empty (as the task value) if the command isn't handled by this plugin.
- Task OnBotCommand(Bot bot, ulong steamID, string message, string[] args);
-}
diff --git a/ArchiSteamFarm/Plugins/PluginsCore.cs b/ArchiSteamFarm/Plugins/PluginsCore.cs
index eb4a6a921..ee75e8efb 100644
--- a/ArchiSteamFarm/Plugins/PluginsCore.cs
+++ b/ArchiSteamFarm/Plugins/PluginsCore.cs
@@ -40,7 +40,6 @@ using ArchiSteamFarm.Steam;
using ArchiSteamFarm.Steam.Data;
using ArchiSteamFarm.Steam.Exchange;
using ArchiSteamFarm.Steam.Integration.Callbacks;
-using ArchiSteamFarm.Storage;
using Newtonsoft.Json.Linq;
using SteamKit2;
@@ -297,36 +296,6 @@ internal static class PluginsCore {
return null;
}
- ulong oldSteamID = steamID;
-
- if (oldSteamID == 0) {
- oldSteamID = ASF.GlobalConfig?.SteamOwnerID ?? GlobalConfig.DefaultSteamOwnerID;
- }
-
- if ((oldSteamID != 0) && new SteamID(oldSteamID).IsIndividualAccount) {
- IList oldResponses;
-
- try {
-#pragma warning disable CS0618 // We intentionally support deprecated interface for a while longer
- oldResponses = await Utilities.InParallel(ActivePlugins.OfType().Select(plugin => plugin.OnBotCommand(bot, oldSteamID, message, args))).ConfigureAwait(false);
-#pragma warning restore CS0618 // We intentionally support deprecated interface for a while longer
- } catch (Exception e) {
- ASF.ArchiLogger.LogGenericException(e);
-
- return null;
- }
-
- if (oldResponses.Count > 0) {
- // Due to fact that responses is string[] array, not a List, we need to reinitialize it
- // Normally I'd wrote it differently but this is temporary code to be removed soon, so this will suffice
- responses = new List(responses);
-
- foreach (string? oldResponse in oldResponses) {
- responses.Add(oldResponse);
- }
- }
- }
-
return string.Join(Environment.NewLine, responses.Where(static response => !string.IsNullOrEmpty(response)));
}
diff --git a/ArchiSteamFarm/Steam/Bot.cs b/ArchiSteamFarm/Steam/Bot.cs
index fb1f65030..9d6ae17b6 100644
--- a/ArchiSteamFarm/Steam/Bot.cs
+++ b/ArchiSteamFarm/Steam/Bot.cs
@@ -753,27 +753,6 @@ public sealed class Bot : IAsyncDisposable {
return await ArchiWebHandler.GetTradeHoldDurationForTrade(tradeID).ConfigureAwait(false);
}
- [PublicAPI]
- [Obsolete($"Use {nameof(GetAccess)} instead (if you still need it), this one will be removed soon.", true)]
- public bool HasAccess(ulong steamID, BotConfig.EAccess access) {
- if ((steamID == 0) || !new SteamID(steamID).IsIndividualAccount) {
- throw new ArgumentOutOfRangeException(nameof(steamID));
- }
-
- if ((access == BotConfig.EAccess.None) || !Enum.IsDefined(access)) {
- throw new InvalidEnumArgumentException(nameof(access), (int) access, typeof(BotConfig.EAccess));
- }
-
- if (ASF.IsOwner(steamID)) {
- return true;
- }
-
- return access switch {
- BotConfig.EAccess.FamilySharing when SteamFamilySharingIDs.Contains(steamID) => true,
- _ => BotConfig.SteamUserPermissions.TryGetValue(steamID, out BotConfig.EAccess realPermission) && (realPermission >= access)
- };
- }
-
[PublicAPI]
public async Task?> LoadCardsPerSet(IReadOnlyCollection appIDs) {
if ((appIDs == null) || (appIDs.Count == 0)) {
diff --git a/ArchiSteamFarm/Steam/Interaction/Commands.cs b/ArchiSteamFarm/Steam/Interaction/Commands.cs
index 3afb87cfe..71644b113 100644
--- a/ArchiSteamFarm/Steam/Interaction/Commands.cs
+++ b/ArchiSteamFarm/Steam/Interaction/Commands.cs
@@ -81,18 +81,6 @@ public sealed class Commands {
return $"<{SharedInfo.ASF}> {response}";
}
- [PublicAPI]
- [Obsolete($"Use overload which accepts {nameof(EAccess)} instead, this one will be removed soon.", true)]
- public async Task Response(ulong steamID, string message) {
- if ((steamID == 0) || !new SteamID(steamID).IsIndividualAccount) {
- throw new ArgumentOutOfRangeException(nameof(steamID));
- }
-
- EAccess access = Bot.GetAccess(steamID);
-
- return await Response(access, message, steamID).ConfigureAwait(false);
- }
-
[PublicAPI]
public async Task Response(EAccess access, string message, ulong steamID = 0) {
if (!Enum.IsDefined(access)) {
diff --git a/ArchiSteamFarm/Steam/Storage/BotDatabase.cs b/ArchiSteamFarm/Steam/Storage/BotDatabase.cs
index 2f403564b..3f761b793 100644
--- a/ArchiSteamFarm/Steam/Storage/BotDatabase.cs
+++ b/ArchiSteamFarm/Steam/Storage/BotDatabase.cs
@@ -96,46 +96,6 @@ internal sealed class BotDatabase : SerializableFile {
private bool SaveNeededDueToMigration;
- [JsonProperty(Required = Required.DisallowNull)]
- [Obsolete("Available for limited time and only to migrate existing databases")]
- private ConcurrentHashSet BlacklistedFromTradesSteamIDs {
- set {
- if (TradingBlacklistSteamIDs.AddRange(value) && string.IsNullOrEmpty(FilePath)) {
- SaveNeededDueToMigration = true;
- }
- }
- }
-
- [JsonProperty(Required = Required.DisallowNull)]
- [Obsolete("Available for limited time and only to migrate existing databases")]
- private ConcurrentHashSet IdlingBlacklistedAppIDs {
- set {
- if (FarmingBlacklistAppIDs.AddRange(value) && string.IsNullOrEmpty(FilePath)) {
- SaveNeededDueToMigration = true;
- }
- }
- }
-
- [JsonProperty(Required = Required.DisallowNull)]
- [Obsolete("Available for limited time and only to migrate existing databases")]
- private ConcurrentHashSet IdlingPriorityAppIDs {
- set {
- if (FarmingPriorityQueueAppIDs.AddRange(value) && string.IsNullOrEmpty(FilePath)) {
- SaveNeededDueToMigration = true;
- }
- }
- }
-
- [JsonProperty(Required = Required.DisallowNull)]
- [Obsolete("Available for limited time and only to migrate existing databases")]
- private ConcurrentHashSet MatchActivelyBlacklistedAppIDs {
- set {
- if (MatchActivelyBlacklistAppIDs.AddRange(value) && string.IsNullOrEmpty(FilePath)) {
- SaveNeededDueToMigration = true;
- }
- }
- }
-
private BotDatabase(string filePath) {
if (string.IsNullOrEmpty(filePath)) {
throw new ArgumentNullException(nameof(filePath));