diff --git a/ASFEnhance/ASFEnhance.cs b/ASFEnhance/ASFEnhance.cs index e9a2b617..85383950 100644 --- a/ASFEnhance/ASFEnhance.cs +++ b/ASFEnhance/ASFEnhance.cs @@ -250,13 +250,13 @@ public Task OnLoaded() "C20" when access >= EAccess.Operator => Event.Command.ResponseClaim20Th(bot), - "V" or - "VOTE" when access >= EAccess.Operator => - Event.Command.ResponseSteamAwardVote(bot, ""), + // "V" or + // "VOTE" when access >= EAccess.Operator => + // Event.Command.ResponseSteamAwardVote(bot, ""), - "CV" or - "CHECKVOTE" when access >= EAccess.Operator => - Event.Command.ResponseCheckSteamAwardVote(bot), + // "CV" or + // "CHECKVOTE" when access >= EAccess.Operator => + // Event.Command.ResponseCheckSteamAwardVote(bot), //Shortcut "P" => @@ -480,16 +480,16 @@ public Task OnLoaded() "C20" when access >= EAccess.Operator => Event.Command.ResponseClaim20Th(Utilities.GetArgsAsText(args, 1, ",")), - "V" or - "VOTE" when argLength > 2 && access >= EAccess.Operator => - Event.Command.ResponseSteamAwardVote(args[1], Utilities.GetArgsAsText(args, 2, ",")), - "V" or - "VOTE" when access >= EAccess.Operator => - Event.Command.ResponseSteamAwardVote(args[1], ""), + // "V" or + // "VOTE" when argLength > 2 && access >= EAccess.Operator => + // Event.Command.ResponseSteamAwardVote(args[1], Utilities.GetArgsAsText(args, 2, ",")), + // "V" or + // "VOTE" when access >= EAccess.Operator => + // Event.Command.ResponseSteamAwardVote(args[1], ""), - "CV" or - "CHECKVOTE" when access >= EAccess.Operator => - Event.Command.ResponseCheckSteamAwardVote(Utilities.GetArgsAsText(args, 1, ",")), + // "CV" or + // "CHECKVOTE" when access >= EAccess.Operator => + // Event.Command.ResponseCheckSteamAwardVote(Utilities.GetArgsAsText(args, 1, ",")), //Shortcut "AL" => diff --git a/ASFEnhance/Cart/WebRequest.cs b/ASFEnhance/Cart/WebRequest.cs index c5b2c35a..129b71e6 100644 --- a/ASFEnhance/Cart/WebRequest.cs +++ b/ASFEnhance/Cart/WebRequest.cs @@ -334,7 +334,7 @@ internal static async Task CartSetCountry(Bot bot, string countryCode) /// internal static async Task GetFinalPrice(Bot bot, string TransId, bool asGift = false) { - string? shoppingCartId = bot.ArchiWebHandler.WebBrowser.CookieContainer.GetCookieValue(new(SteamCheckoutURL, "/checkout/"), "beginCheckoutCart"); + var shoppingCartId = bot.ArchiWebHandler.WebBrowser.CookieContainer.GetCookieValue(new(SteamCheckoutURL, "/checkout/"), "beginCheckoutCart"); if (string.IsNullOrEmpty(shoppingCartId) || shoppingCartId == "-1") { diff --git a/README.en.md b/README.en.md index f4bbe87b..97c4f6c0 100644 --- a/README.en.md +++ b/README.en.md @@ -22,19 +22,19 @@ ## EULA -> Please don't use this plugin to conduct repulsive behaviors, including but not limited to: post fake reviews, posting advertisements, etc. +> Please do not use this plugin to conduct repulsive behaviors, including but not limited to: post fake reviews, posting advertisements, etc. > > See [Plugin Configuration](#plugin-configuration) ## EVENT COMMAND -> This group of commands is only available in a limited time, and will be removed when next version of this plugin published if it lose efficacy +> This group of commands is only available for a limited time, and will be removed when the next version of this plugin is published if they lose efficacy | Command | Shorthand | Access | Description | | -------------------------- | --------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `CLAIM20TH [Bots]` | | `Operator` | Claim 20th free item in the Point shop | +| `CLAIM20TH [Bots]` | | `Operator` | Receive free 20th anniversary items in the Points Shop | | `C20 [Bots]` | | `Operator` | Same as `CLAIM20TH` | -| `CLAIMITEM [Bots]` | | `Operator` | Claim sale event's item, such as stickers or something else | +| `CLAIMITEM [Bots]` | | `Operator` | Claim sale event item, such as stickers or something else | | `CI [Bots]` | | `Operator` | Same as `CLAIMITEM` | | `SIM4 [Bots]` | | `Operator` | Claim the `The Sims™ 4` stickers [url](https://store.steampowered.com/sale/simscelebrationsale) | | `DL2 [Bots]` | | `Operator` | Claim the `Dying Light 2 Stay Human` items [url](https://store.steampowered.com/sale/dyinglight) | @@ -67,25 +67,26 @@ Supported Plugin List: | Command | Shorthand | Access | Description | | ------------------------------ | --------- | ---------- | -------------------------------------------------------------------- | -| `PLUGINSLIST` | `PL` | `Operator` | 获取当前安装的插件列表, 末尾带 [] 的为可被 ASFEnhance 管理的子模块 | -| `PLUGINLIST` | - | `Operator` | 同 `PLUGINSLIST` | -| `PLUGINSVERSION [Plugin Name]` | `PV` | `Master` | 获取指定模块的版本信息, 未指定插件名时检查所有受支持的插件的版本信息 | -| `PLUGINVERSION` | - | `Master` | 同 `PLUGINSVERSION` | -| `PLUGINSUPDATE [Plugin Name]` | `PU` | `Master` | 自动更新指定模块, 未指定插件名时自动更新所有受支持的插件 | -| `PLUGINUPDATE` | - | `Master` | 同 `PLUGINSUPDATE` | +| `pluginsLIST` | `PL` | `Operator` | Get the list of currently installed plugins. Those with [] at the end are submodules that can be managed by ASFEnhance. | +| `PLUGINLIST` | - | `Operator` | Same function as `pluginsLIST` | +| `pluginsVERSION [Plugin Name]` | `PV` | `Master` | Get the version information of the specified plugin. If the plugin name is not specified, check the version information of all supported plugins. | +| `PLUGINVERSION` | - | `Master` | Same function as `pluginsVERSION` | +| `pluginsUPDATE [Plugin Name]` | `PU` | `Master` | Automatically update the specified plugin(s), and automatically update all supported plugins if no plugin name is specified. | +| `PLUGINUPDATE` | - | `Master` | Same function as `pluginsUPDATE` | ### ChangeLog | ASFEnhance Version | Depended ASF Version | Description | | -------------------------------------------------------------------- | :------------------: | ---------------------------------------------------- | | [2.0.2.0](https://github.com/chr233/ASFEnhance/releases/tag/2.0.2.0) | 5.4.13.4 | ASF -> 5.4.13.4 | -| [2.0.1.3](https://github.com/chr233/ASFEnhance/releases/tag/2.0.1.3) | 5.4.12.5 | 新增 `VOTE` `CHECKVOTE` 命令 | -| [2.0.0.0](https://github.com/chr233/ASFEnhance/releases/tag/2.0.0.0) | 5.4.12.5 | ASF -> 5.4.12.5, 新的子模块系统, 新增 `EMAIL` 命令等 | +| [2.0.1.3](https://github.com/chr233/ASFEnhance/releases/tag/2.0.1.3) | 5.4.12.5 | New `VOTE` `CHECKVOTE` commands | +| [2.0.0.0](https://github.com/chr233/ASFEnhance/releases/tag/2.0.0.0) | 5.4.12.5 | ASF -> 5.4.12.5, new submodule system, new `EMAIL` commands, etc. | +
History Version -> ASF 5.4.10.3 以及之前的版本因为 Steam 的改动已经无法使用, 请使用新版本的 ASF 和 ASFEnhance +> ASF 5.4.10.3 and previous versions are no longer supported due to changes in Steam. Please use the new version of ASF and ASFEnhance. | ASFEnhance Version | Depended ASF Version | 5.4.7.3 | 5.4.8.3 | 5.4.9.3 | | ---------------------------------------------------------------------- | :------------------: | :-----: | :-----: | :-----: | @@ -162,7 +163,7 @@ Supported Plugin List: ## Plugin Configuration -> The configuration of this plugin is not required, and most functions is avilable in default settings +> The configuration of this plugin is not necessary. You can use most functions by keeping the default configuration. ASF.json @@ -200,23 +201,22 @@ ASF.json | Configuration | Type | Default | Description | | ----------------- | ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `EULA` | `bool` | `true` | If agree the [EULA](#EULA)\* | -| `Statistic` | `bool` | `true` | Allow send statistics data, it's used to count number of users, this will not send any other information | -| `DevFeature` | `bool` | `false` | Enabled developer feature (3 Commands) `May causing security risk, turn on with caution` | -| `DisabledCmds` | `list` | `null` | Optional, Cmd in the list will be disabled\*\* , **Case Insensitive**, only effects on `ASFEnhance` cmds | -| `Address`\*\*\* | `dict` | `null` | Optional, single billing address, when using `REDEEMWALLET` cmd requires billing address, plugin will use configured address | -| `Addresses`\*\*\* | `list` | `null` | Optional, multiple billing addresses, the same as `Address` | - -> \* When Agree [EULA](#EULA), ASFEnhance will let all commands avilable, in exchange, ASFEnhance will follow the author's [Curator](https://store.steampowered.com/curator/39487086/) and [Group](https://steamcommunity.com/groups/11012580) when execute `GROUPLIST` and `CURATORLIST` commands (if bot not following or joined) +| `EULA` | `bool` | `true` | Do you agree to the [EULA](#EULA)\* | +| `Statistic` | `bool` | `true` | Whether to allow sending statistical data. Which is only used to count the number of plugin users and will not send any other information. | +| `DevFeature` | `bool` | `false` | Enabled developer features (3 Commands) `May cause a security risk, proceed with caution and only if you know what you are doing!` | +| `DisabledCmds` | `list` | `null` | **Optional**, Cmd in the list will be disabled\*\* , **Case Insensitive**, only works on `ASFEnhance`'s cmds | +| `Address`\*\*\* | `dict` | `null` | **Optional**, single billing address, when using `REDEEMWALLET` cmd itrequires billing address, The plugin will use the configured address | +| `Addresses`\*\*\* | `list` | `null` | **Optional** configuration, multiple billing addresses, uses one randomly from the list when a billing address is required | +> \* After agreeing to the [EULA](#EULA), ASFEnhance will have all commands enabled, in exchange, ASFEnhance will follow the author's [Curator](https://store.steampowered.com/curator/39487086/) and [Group](https://steamcommunity.com/groups/11012580) when executing the commands `GROUPLIST` and `CURATORLIST` (if the bot is not already following or joined) > -> \* When Disagree [EULA](#EULA), ASFEnhance will limit features of curator/follow game/group/reviews, and ASFEnhance will not follow [Curator](https://store.steampowered.com/curator/39487086/) and [Group](https://steamcommunity.com/groups/11012580) +> \* if you disagree to the [EULA](#EULA), ASFEnhance will limit the features of curator/follow game/group/reviews, and ASFEnhance will not follow [Curator](https://store.steampowered.com/curator/39487086/) and [Group](https://steamcommunity.com/groups/11012580) > -> \*\* `DisabledCmds` description: every item in this configuration is **Case Insensitive**, and this only effects on `ASFEnhance` cmds -> For example, configure as `["foo","BAR"]` , it means `FOO` and `BAR` will be disabled -> If don't want to disable any cmds, please configure as `null` or `[]` -> If Some cmd is disabled, it's still avilable to call the command in the form of `ASFE.xxx`, for example `ASFE.EXPLORER` +> \*\* `DisabledCmds` description: This configuration is **case-insensitive** and is only valid for commands used in `ASFEnhance` +> For example, if configured as `["foo","BAR"]` , it means `FOO` and `BAR` will be disabled +> If there is no need to disable any command, please configure this item to `null` or `[]` +> When a command is disabled, you can still use the form of `ASFE.xxx` to call the disabled command, such as `ASFE.EXPLORER` > -> \*\*\* `Address` and `Addresses` is the same configuration +> \*\*\* `Address` and `Addresses` are the same configuration item. If you need to use the fixed area function, only configure one. You don’t need to configure both. If you don’t need this function, you don’t need to configure it. ## Commands Usage @@ -224,57 +224,57 @@ ASF.json | Command | Shorthand | Access | Description | | ------------- | --------- | --------------- | ------------------------------------------------------------------- | -| `ASFENHANCE` | `ASFE` | `FamilySharing` | Get the version of the ASFEnhance | +| `ASFENHANCE` | `ASFE` | `FamilySharing` | Get the current version of ASFEnhance | | `ASFEVERSION` | `AV` | `Owner` | Check ASFEnhance's latest version | -| `ASFEUPDATE` | `AU` | `Owner` | Update ASFEnhance to the latest version (need restart ASF manually) | +| `ASFEUPDATE` | `AU` | `Owner` | Update ASFEnhance to the latest version (You will need restart ASF manually) | ### Account Commands | Command | Shorthand | Access | Description | | ----------------------------------------- | --------- | ---------- | --------------------------------------------------------------------------------------- | -| `PURCHASEHISTORY [Bots]` | `PH` | `Operator` | Get bot's purchase history. | -| `FREELICENSES [Bots]` | `FL` | `Operator` | Get bot's all free sub licenses list | -| `FREELICENSE [Bots]` | | | Same as `FREELICENSES` | -| `LICENSES [Bots]` | `L` | `Operator` | Get bot's all licenses list | -| `LICENSE [Bots]` | | | Same as `LICENSES` | -| `REMOVEDEMOS [Bots]` | `RD` | `Master` | Remove bot's all demo licenses | -| `REMOVEDEMO [Bots]` | | | Same as `REMOVEDEMOS` | -| `REMOVELICENSES [Bots] ` | `RL` | `Master` | Remove bot's licenses with the specified subIDs | -| `REMOVELICENSE [Bots] ` | | | Same as `REMOVELICENSES` | -| `EMAILOPTIONS [Bots]` | `EO` | `Operator` | Get bot's email preferences [url](https://store.steampowered.com/account/emailoptout) | -| `EMAILOPTION [Bots]` | | | Same as `EMAILOPTIONS` | -| `SETEMAILOPTIONS [Bots] ` | `SEO` | `Master` | Set bot's email preferences | -| `SETEMAILOPTION [Bots] ` | | | Same as `SETEMAILOPTIONS` | -| `NOTIFICATIONOPTIONS [Bots]` | `NOO` | `Operator` | 读取账户中的通知选项 [url](https://store.steampowered.com/account/notificationsettings) | -| `NOTIFICATIONOPTION [Bots]` | | | 同 `NOTIFICATIONOPTIONS` | -| `SETNOTIFICATIONOPTIONS [Bots] ` | `SNOO` | `Master` | 设置账户中的通知选项 | -| `SETNOTIFICATIONOPTION [Bots] ` | | | 同 `SETNOTIFICATIONOPTIONS` | -| `GETBOTBANNED [Bots]` | `GBB` | `Operator` | 获取机器人的账户封禁情况 | -| `GETBOTBANN [Bots]` | | | 同 `GETBOTBANNED` | -| `GETACCOUNTBANNED ` | `GBB` | `Operator` | 获取指定账户封禁情况, 支持 SteamId 64 / SteamId 32 | -| `GETACCOUNTBAN ` | | | 同 `GETACCOUNTBANNED` | - -- `SETEMAILOPTION` arguments explanation - - `` receives at most 9 arguments, use space or `,` to split, the order is same as [this page](https://store.steampowered.com/account/emailoptout) - For each argument, if it is among the `on`, `yes`, `true`, `1`, `y`, that means enable, otherwise disable (default). +| `PURCHASEHISTORY [Bots]` | `PH` | `Operator` | Get the bot accounts purchase history. | +| `FREELICENSES [Bots]` | `FL` | `Operator` | Get the bot accounts list of free Sub Licenses | +| `FREELICENSE [Bots]` | | | Same command as `FREELICENSES` | +| `LICENSES [Bots]` | `L` | `Operator` | Get the bot accounts list of all licenses | +| `LICENSE [Bots]` | | | Same command as `LICENSES` | +| `REMOVEDEMOS [Bots]` | `RD` | `Master` | Remove all the demo licenses on the bots account | +| `REMOVEDEMO [Bots]` | | | Same command as `REMOVEDEMOS` | +| `REMOVELICENSES [Bots] ` | `RL` | `Master` | Remove licenses from the bot account with the specified SubIDs | +| `REMOVELICENSE [Bots] ` | | | Same command as `REMOVELICENSES` | +| `EMAILOPTIONS [Bots]` | `EO` | `Operator` | Check the bots email preferences [url](https://store.steampowered.com/account/emailoptout) | +| `EMAILOPTION [Bots]` | | | Same command as `EMAILOPTIONS` | +| `SETEMAILOPTIONS [Bots] ` | `SEO` | `Master` | Set the bots email preferences | +| `SETEMAILOPTION [Bots] ` | | | Same command as `SETEMAILOPTIONS` | +| `NOTIFICATIONOPTIONS [Bots]` | `NOO` | `Operator` | Check the notification options in the bots account [url](https://store.steampowered.com/account/notificationsettings) | +| `NOTIFICATIONOPTION [Bots]` | | | Same command as `NOTIFICATIONOPTIONS` | +| `SETNOTIFICATIONOPTIONS [Bots] ` | `SNOO` | `Master` | Set the notification options in the bots account | +| `SETNOTIFICATIONOPTION [Bots] ` | | | Same command as `SETNOTIFICATIONOPTIONS` | +| `GETBOTBANNED [Bots]` | `GBB` | `Operator` | Get the ban status of the bots account | +| `GETBOTBANN [Bots]` | | | Same command as `GETBOTBANNED` | +| `GETACCOUNTBANNED ` | `GBB` | `Operator` | Get the ban status of the specified account, supports SteamId 64 / SteamId 32 | +| `GETACCOUNTBAN ` | | | Same command as `GETACCOUNTBANNED` | + +- `SETEMAILOPTION` parameters explanation + + The `` parameters accepts up to 9 parameters, separated by spaces or `,`, and the order refers to [url](https://store.steampowered.com/account/emailoptout) + If the parameters are set to `on`, `yes`, `true`, `1`, `y`, it is considered to be enabled, otherwise it is regarded as disabled (default) | Index | Name | Description | | ----- | ------------------------------------------------------- | -------------------------------------------- | -| 1 | Enable email notification | If disabled, other arguments will be ignored | -| 2 | Send email when a item in wishlist has a discount | | -| 3 | Send email when a item in wishlist has released | | -| 4 | Send email when a greenlight item has released | | -| 5 | Send email when followed publishers has released a item | | -| 6 | Send email when sesonal promotion started | | -| 7 | Send email when receives a review copy of a curator | | -| 8 | Send email when receives Steam Community Awards | | -| 9 | Send email when there has a game-specific event | | +| 1 | Whether to enable email notifications | If disabled, the remaining options will have no effect | +| 2 | Send an email notification when an item in your wishlist has a discount | | +| 3 | Send an email notification when an item in your wishlist has been released | | +| 4 | Send an email notification when a Greenlight item you are following is released or leaves early access | | +| 5 | Send an email notification when a followed publisher has released an item | | +| 6 | Send an email notification when seasonal sales have started | | +| 7 | Send an email notification when you receive a review copy from a curator | | +| 8 | Send an email notification when you receive a Steam Community Award | | +| 9 | Send an email notification when there is a game-specific event | | -- `SETNOTIFICATIONS` 参数说明 +- `SETNOTIFICATIONS` parameter description - `` 参数接受最多 9 个参数, 使用空格或者 `,` 分隔, 顺序参照 [url](https://store.steampowered.com/account/notificationsettings) - 索引含义和设置值可选的范围见下表 + The `` parameter accepts up to 9 parameters, separated by spaces or `,`, and the order refers to [url](https://store.steampowered.com/account/notificationsettings) + The index meaning and the optional range of setting values ​​are shown in the table below | Index | Name | | ----- | ---------------------------------------- | @@ -292,25 +292,25 @@ ASF.json | ------ | ------------------------------------------------------------------------------------------------- | | 0 | Disable notifications | | 1 | Enable notifications | -| 2 | Enable notifications, Toast notification in the Steam Client | +| 2 | Enable notifications, Steam client pop-up notifications | | 3 | Enable notifications, Push notification in the Mobile App | -| 4 | Enable notifications, Toast notification in the Steam Client, Push notification in the Mobile App | +| 4 | Enable notifications, Steam client pop-up notifications, Push notification in the Mobile App | ### Other Commands | Command | Shorthand | Access | Description | | ---------------- | --------- | --------------- | ---------------------------- | | `KEY ` | `K` | `Any` | Extract keys from plain text | -| `ASFEHELP` | `EHELP` | `FamilySharing` | Get all command usage | -| `HELP ` | - | `FamilySharing` | Get command usage | +| `ASFEHELP` | `EHELP` | `FamilySharing` | Get a list of commands | +| `HELP ` | - | `FamilySharing` | Get help with a specific command | ## Group Commands | Command | Shorthand | Access | Description | | ----------------------------- | --------- | --------------- | -------------------------------- | -| `GROUPLIST [Bots]` | `GL` | `FamilySharing` | Get bot's joined group list | -| `JOINGROUP [Bots] ` | `JG` | `Master` | Let bot to join specified group | -| `LEAVEGROUP [Bots] ` | `LG` | `Master` | Let bot to leave specified group | +| `GROUPLIST [Bots]` | `GL` | `FamilySharing` | Get a list of groups the bot is in | +| `JOINGROUP [Bots] ` | `JG` | `Master` | Make the bot join the specified group | +| `LEAVEGROUP [Bots] ` | `LG` | `Master` | Make the bot leave the specified group | > `GroupID` can be found using `GROUPLIST` command @@ -318,22 +318,22 @@ ASF.json | Command | Shorthand | Access | Description | | -------------------------------------- | --------- | --------------- | --------------------------------------------------------------------------------------------------- | -| `PROFILE [Bots]` | `PF` | `FamilySharing` | Get bot's profile infomation | -| `PROFILELINK [Bots]` | `PFL` | `FamilySharing` | Get bot's profile link | -| `STEAMID [Bots]` | `SID` | `FamilySharing` | Get bot's steamID | -| `FRIENDCODE [Bots]` | `FC` | `FamilySharing` | Get bot's friend code | -| `TRADELINK [Bots]` | `TL` | `Operator` | Get bot's trade link | -| `REPLAY [Bots]` | `RP` | `Operator` | Get bot's «Steam Awards 2022» banner link (can get badge) | -| `REPLAYPRIVACY [Bots] Privacy` | `RPP` | `Operator` | Set privacy settings for `Steam Replay 2022`. `Privacy`: `1=Private` `2=Only friends` `3=Public` | -| `CLEARALIAS [Bots]` | | `Opetator` | Clear history of previous names | -| `GAMEAVATAR [Bots] [AvatarID]` | `GA` | `Master` | Set bot's avatar as given `AppID` and `AvatarID`, if not set `AvatarId`, plugin will use random one | -| `RANDOMGAMEAVATAR [Bots]` | `RGA` | `Master` | Set bot's avatar randomly | -| `ADVNICKNAME [Bots] Query` | `ANN` | `Master` | Set bot's nickname use `Placeholder`, avilable: `%dn%` `%ln%` `%un%` `%botn%`, case insensitive | -| `SETAVATAR [Bots] ImageUrl` 🐞 | `GA` | `Master` | Set bot's avatar to specified online image | -| `DELETEAVATAR [Bots]` 🐞 | | `Master` | Delete bot's avatar (reset to default) | -| `CRAFTBADGE [Bots]` | `CB` | `Master` | Automatically craft craftable badges (craft every craftable badge once at one time) | - -\*🐞: Required generic version of ASF (**not** generic-netf) +| `PROFILE [Bots]` | `PF` | `FamilySharing` | Get the bot(s) profile infomation | +| `PROFILELINK [Bots]` | `PFL` | `FamilySharing` | Get the bot(s) profile link | +| `STEAMID [Bots]` | `SID` | `FamilySharing` | Get the bot(s) steamID | +| `FRIENDCODE [Bots]` | `FC` | `FamilySharing` | Get the bot(s) friend code | +| `TRADELINK [Bots]` | `TL` | `Operator` | Get the bot(s) trade link | +| `REPLAY [Bots]` | `RP` | `Operator` | Get the bot(s) «Steam Awards 2022» banner link (can get badge) | +| `REPLAYPRIVACY [Bots] Privacy` | `RPP` | `Operator` | Set the privacy settings for `Steam Replay 2022`. `Privacy`: `1=Private` `2=Only friends` `3=Public` | +| `CLEARALIAS [Bots]` | | `Opetator` | Clear history of previously used names | +| `GAMEAVATAR [Bots] [AvatarID]` | `GA` | `Master` | Set the bot(s) avatar as given `AppID` and `AvatarID`, if not set `AvatarId`, plugin will use random one | +| `RANDOMGAMEAVATAR [Bots]` | `RGA` | `Master` | Set the bot(s) avatar randomly | +| `ADVNICKNAME [Bots] Query` | `ANN` | `Master` | Set the bot(s) nickname use `Placeholder`, avilable: `%dn%` `%ln%` `%un%` `%botn%`, case insensitive | +| `SETAVATAR [Bots] ImageUrl` 🐞 | `GA` | `Master` | Set the bot(s) avatar to specified online image | +| `DELETEAVATAR [Bots]` 🐞 | | `Master` | Delete the bots avatar (reset to default) | +| `CRAFTBADGE [Bots]` | `CB` | `Master` | Automatically craft ALL craftable badges (craft every craftable badge once at one time) | + +\*🐞: Requires the generic version of ASF (**not** generic-netf) - GAMEAVATAR Description @@ -353,18 +353,18 @@ All avatars are from [Game Avatars Page](https://steamcommunity.com/actions/Game | `%ln%` | n Random lowercase letters | `%d7%` -> `asfeadf` | | `%u%` | Random uppercase letter | `C` | | `%un%` | n Random uppercase letters | `%d8%` -> `ASXCGDFA` | -| `%bot%` | bot's nickname | `ASFE` | -| `%bot3%` | bot's nickname, repeat 3 times | `%bot3%` -> `ASFEASFEASFE` | +| `%bot%` | bots nickname | `ASFE` | +| `%bot3%` | bots nickname, repeated 3 times | `%bot3%` -> `ASFEASFEASFE` | ### Curator Commands | Command | Shorthand | Access | Description | | -------------------------------- | --------- | -------- | -------------------------------- | -| `CURATORLIST [Bots]` | `CL` | `Master` | Get bot's following curator list | -| `FOLLOWCURATOR [Bots] ` | `FCU` | `Master` | Follow specified curator | -| `UNFOLLOWCURATOR [Bots]` | `UFC` | `Master` | Unfollow specified curator | -| `UNFOLLOWALLCURATORS [Bots]` | `UFACU` | `Master` | Unfollow all curators | -| `UNFOLLOWALLCURATOR [Bots]` | | | Same as `UNFOLLOWALLCURATORS` | +| `CURATORLIST [Bots]` | `CL` | `Master` | Get a list of the bots followed curators | +| `FOLLOWCURATOR [Bots] ` | `FCU` | `Master` | Follow the specified curator | +| `UNFOLLOWCURATOR [Bots]` | `UFC` | `Master` | Unfollow the specified curator | +| `UNFOLLOWALLCURATORS [Bots]` | `UFACU` | `Master` | Unfollow **all** curators | +| `UNFOLLOWALLCURATOR [Bots]` | | | Same command as `UNFOLLOWALLCURATORS` | > `ClanID` can be found in curator's web link or using `CURATORLIST` command @@ -372,88 +372,88 @@ All avatars are from [Game Avatars Page](https://steamcommunity.com/actions/Game | Command | Shorthand | Access | Description | | -------------------------------- | --------- | -------- | ---------------------------------------------- | -| `ADDWISHLIST [Bots] ` | `AW` | `Master` | Add game to bot's wishlist | -| `REMOVEWISHLIST [Bots] ` | `RW` | `Master` | Delete game from bot's wishlist | -| `FOLLOWGAME [Bots] ` | `FG` | `Master` | Follow specified game | -| `UNFOLLOWGAME [Bots] ` | `UFG` | `Master` | Unfollow specified game | -| `CHECK [Bots] ` | `CK` | `Master` | Check if following / wishlisted specified game | +| `ADDWISHLIST [Bots] ` | `AW` | `Master` | Add the game to the bots wishlist | +| `REMOVEWISHLIST [Bots] ` | `RW` | `Master` | Delete the game from the bots wishlist | +| `FOLLOWGAME [Bots] ` | `FG` | `Master` | Follow the specified game | +| `UNFOLLOWGAME [Bots] ` | `UFG` | `Master` | Unfollow the specified game | +| `CHECK [Bots] ` | `CK` | `Master` | Check if bot is following / or has wishlisted specified game | ### Store Commands | Command | Shorthand | Access | Description | | ------------------------------------------ | --------- | ---------- | ------------------------------------------------------------------------------------ | | `APPDETAIL [Bots] ` | `AD` | `Operator` | Get app detail from steam API, support `APP` | -| `SEARCH [Bots] Keywords` | `SS` | `Operator` | Search in Steam store | -| `SUBS [Bots] ` | `S` | `Operator` | Get available subs from store page, support `APP/SUB/BUNDLE` | -| `PUBLISHRECOMMENT [Bots] COMMENT` | `PREC` | `Operator` | Publish a recomment for game, `appd` or `+appId` rateUp, `-appId` rateDown | -| `DELETERECOMMENT [Bots] ` | `DREC` | `Operator` | Delete a recomment for game | -| `REQUESTACCESS [Bots] ` | `RA` | `Operator` | Send join playtest request to specified appIDs, equivalent to click `Request Access` | +| `SEARCH [Bots] Keywords` | `SS` | `Operator` | Search in the Steam store | +| `SUBS [Bots] ` | `S` | `Operator` | Get available subs from the store page, supports `APP/SUB/BUNDLE` | +| `PUBLISHRECOMMENT [Bots] COMMENT` | `PREC` | `Operator` | Publish a recommendation for the game/app, `appd` or `+appId` rateUp, `-appId` rateDown | +| `DELETERECOMMENT [Bots] ` | `DREC` | `Operator` | Delete a recommendation for the game/app | +| `REQUESTACCESS [Bots] ` | `RA` | `Operator` | Request playtest/access from specific appIDs, equivalent to clicking `Request Access` | | `VIEWPAGE [Bots] Url` | `VP` | `Operator` | Visit the specified page | ### Cart Commands -> Steam saves cart information via cookies, restart bot instance will let shopping cart being emptied +> Steam saves cart information via cookies, restarting ASF instance will cause the shopping cart to be emptied | Command | Shorthand | Access | Description | | ------------------------------------ | --------- | ---------- | ---------------------------------------------------------------------------------------- | -| `CART [Bots]` | `C` | `Operator` | Get bot's cart information | -| `ADDCART [Bots] ` | `AC` | `Operator` | Add game to bot's cart, only support `SUB/BUNDLE` | -| `CARTRESET [Bots]` | `CR` | `Operator` | Clear bot's cart | -| `CARTCOUNTRY [Bots]` | `CC` | `Operator` | Get bot's available currency area (Depends to wallet area and the IP location) | -| `FAKEPURCHASE [Bots]` | `FPC` | `Master` | Simulate purchase bot's cart, and generate a failed record without actually checking out | -| `PURCHASE [Bots]` | `PC` | `Master` | Purchase bot's cart items for it self (paid via steam wallet) | -| `PURCHASEGIFT [BotA] BotB` | `PCG` | `Master` | Purchase botA's cart items for botB as gift (paid via steam wallet) | +| `CART [Bots]` | `C` | `Operator` | Check what's in the bots cart | +| `ADDCART [Bots] ` | `AC` | `Operator` | Add game to bots cart, only supports `SUB/BUNDLE` | +| `CARTRESET [Bots]` | `CR` | `Operator` | Empty the bots cart | +| `CARTCOUNTRY [Bots]` | `CC` | `Operator` | Get the bots available currency area (Depends on wallet currency and the IP location) | +| `FAKEPURCHASE [Bots]` | `FPC` | `Master` | Simulate a purchase of the bots cart, and generate a failed purchase record without actually checking out | +| `PURCHASE [Bots]` | `PC` | `Master` | Purchase the bots cart items for itself (Paid using the bots Steam wallet) | +| `PURCHASEGIFT [BotA] BotB` | `PCG` | `Master` | Purchase botA's cart items for botB as gift (Paid using the bots Steam wallet) | -> Steam allows duplicate purchases, please check cart before using PURCHASE command. +> Steam allows repeated purchases. Please confirm whether there is duplicated content before using the `PURCHASE` command. ### Community Commands | Command | Shorthand | Access | Description | | -------------------------- | --------- | ---------- | ------------------------------------------ | -| `CLEARNOTIFICATION [Bots]` | `CN` | `Operator` | Clear new item and new commit notification | +| `CLEARNOTIFICATION [Bots]` | `CN` | `Operator` | Clear new item and new message notifications | ### Friend Commands | Command | Shorthand | Access | Description | | ------------------------------ | --------- | ---------- | --------------------------------------------------------------------------------------------- | -| `ADDBOTFRIEND ` | `ABF` | `Master` | Let `Bots` add each other as friend | -| `ADDBOTFRIEND +` | | `Master` | Let `BotAs` add each other as friend, then let `BotAs` add `BotBs` as friend | -| `ADDFRIEND [Bots] ` | `AF` | `Master` | Let bots send friend request to others, `Text` support `custom Url`, `steamId`, `Friend code` | -| `DELETEFRIEND [Bots] ` | `DF` | `Master` | Let bots delete frined, `Text` support `custom Url`, `steamId`, `Friend code` | -| `DELETEALLFRIEND [Bots]` | | `Master` | Let bots delete all its friends | -| `INVITELINK [Bots]` | `IL` | `Operator` | Let bots generate friend invite link | +| `ADDBOTFRIEND ` | `ABF` | `Master` | Let `Bots` add each other as friends | +| `ADDBOTFRIEND +` | | `Master` | Let `BotAs` add each other as friends, then let `BotAs` add `BotBs` as a friend | +| `ADDFRIEND [Bots] ` | `AF` | `Master` | Make the bots send a friend request to others, `Text` support `custom Url`, `steamId`, `Friend code` | +| `DELETEFRIEND [Bots] ` | `DF` | `Master` | Make the bots delete the friend, `Text` support `custom Url`, `steamId`, `Friend code` | +| `DELETEALLFRIEND [Bots]` | | `Master` | Make the bots delete all of its friends | +| `INVITELINK [Bots]` | `IL` | `Operator` | Make the bots generate a friend invite link | - `ADDBOTFRIEND` Usage Example - - `ADDBOTFRIEND a,b c`: Let `a`,`b`,`c` add friends with each other - - `ADDBOTFRIEND a,b,c + d,e`: Let `a`,`b`,`c` add friends with each other, then let `a`,`b`,`c` add `d` and `e` as friend, `d` will not add `e` as friend - - `ADDBOTFRIEND ASF`: Allow use `ASF` of bots - - `ADDBOTFRIEND a b c + ASF`: Allow use `ASF` of bots - - `ADDBOTFRIEND ASF + ASF`: Allow, but meaningless + - `ADDBOTFRIEND a,b c`: Let `a`,`b`,`c` add eachother as friends + - `ADDBOTFRIEND a,b,c + d,e`: Let `a`,`b`,`c` add eachother as friends, then let `a`,`b`,`c` add `d` and `e` as friend, `d` will not add `e` as friend + - `ADDBOTFRIEND ASF`: You can use the wildcard `ASF` for all bots + - `ADDBOTFRIEND a b c + ASF`: You can use the wildcard `ASF` for all bots IE: AF ASF `Text` supports `custom link`, `SteamId`, `Friend Code` + - `ADDBOTFRIEND ASF + ASF`: Allowed, but completely meaningless ### Discovery Queue Commands | Command | Shorthand | Access | Description | | ----------------- | --------- | -------- | ------------------------------------------------------ | -| `EXPLORER [Bots]` | `EX` | `Master` | Invoke ASF's Explore Discovery Queue Task in 5 seconds | +| `EXPLORER [Bots]` | `EX` | `Master` | Trigger ASF exploration queue task after 5 seconds | -> Please try to let ASF explore discovery queue itself, this command is used to invoke ASF's Explore Discovery Queue Task as soon as possible +> Please try to let ASF explore the queue by itself. This command is only used as a supplementary method to forcefully trigger the exploration queue. -### Wallet Command +### Wallet Commands | Command | Shorthand | Access | Description | | -------------------------------- | --------- | -------- | ------------------------------------------------------------------------------------------- | -| `REDEEMWALLET [Bots] ` | `RWA` | `Master` | Redeem wallet code, if balance address is required, will use confitgred address in ASF.json | -| `REDEEMWALLETMULT [Bots] ` | `RWAM` | `Master` | Redeem wallet code, but every bot will only redeem one given code | +| `REDEEMWALLET [Bots] ` | `RWA` | `Master` | Redeem a wallet top up code, if address information is required, the address in the configuration file will be automatically filled in. | +| `REDEEMWALLETMULT [Bots] ` | `RWAM` | `Master` | Redeem a batch(multiple) of wallet codes, but each bot will only redeem one given code | ### Alias of ASF's Commands | Shorthand | Equivalent Command | Description | | ---------------------- | ------------------------------ | ------------------------------ | -| `AL [Bots] ` | `ADDLICENSE [Bots] ` | Add free `SUB` | -| `LA` | `LEVEL ASF` | Get All bot's level | -| `BA` | `BALANCE ASF` | Get All bot's wallet balance | -| `PA` | `POINTS ASF` | Get All bot's points balance | -| `P [Bots]` | `POINTS` | Get bot's points balance | +| `AL [Bots] ` | `ADDLICENSE [Bots] ` | Add a free License / `SUB` | +| `LA` | `LEVEL ASF` | Get All bots Steam levels | +| `BA` | `BALANCE ASF` | Get All bots wallet balances | +| `PA` | `POINTS ASF` | Get All bots points balances | +| `P [Bots]` | `POINTS` | Get [BotName] points balance | | `CA` | `CART ASF` | Get All bot's cart information | ### For Developer @@ -463,25 +463,25 @@ All avatars are from [Game Avatars Page](https://steamcommunity.com/actions/Game | Command | Access | Description | | -------------------- | -------- | ------------------------- | -| `COOKIES [Bots]` | `Master` | Get Steam store's Cookies | -| `APIKEY [Bots]` | `Master` | Get Bot's APIKey | -| `ACCESSTOKEN [Bots]` | `Master` | Get Bot's ACCESSTOKEN | +| `COOKIES [Bots]` | `Master` | View the bots Steam store Cookies | +| `APIKEY [Bots]` | `Master` | View the bots APIKey | +| `ACCESSTOKEN [Bots]` | `Master` | View the bots ACCESSTOKEN | ## IPC Interface -> You need to agree EULA before using IPC interface. See [Plugin Configuration](#plugin-configuration) +> You need to agree to the EULA before using this function. For details, see [Plug-in Configuration Instructions](#plug-in configuration instructions) | API | Method | Params | Description | | ---------------------------------------------- | ------ | -------------------------------------------------- | -------------------------- | | `/Api/ASFEnhance/{botNames}/FollowCurator` | POST | ClanIDs | Follow Curator | | `/Api/ASFEnhance/{botNames}/UnFollowCurator` | POST | ClanIDs | UnFollow Curator | -| `/Api/ASFEnhance/{botNames}/FollowingCurators` | POST | Start, Count | Get Following Curators | -| `/Api/ASFEnhance/{botNames}/GetAppDetail` | POST | AppIDs | Get AppDetail | -| `/Api/ASFEnhance/{botNames}/Purchase` | POST | SubIDs, BundleIDs, SkipOwned | Purchase | +| `/Api/ASFEnhance/{botNames}/FollowingCurators` | POST | Start, Count | Get the list of followed Curators | +| `/Api/ASFEnhance/{botNames}/GetAppDetail` | POST | AppIDs | Get Game / App Details | +| `/Api/ASFEnhance/{botNames}/Purchase` | POST | SubIDs, BundleIDs, SkipOwned | Buy games in bulk | | `/Api/ASFEnhance/{botNames}/PublishReview` | POST | AppIDs, RateUp, AllowReply, ForFree,Public,Comment | Publish Review | | `/Api/ASFEnhance/{botNames}/DeleteReview` | POST | AppIDs | Delete Review | -| `/Api/ASFEnhance/{botNames}/AddWishlist` | POST | AppIDs | Add Wishlist | -| `/Api/ASFEnhance/{botNames}/RemoveWishlist` | POST | AppIDs | Remove Wishlist | +| `/Api/ASFEnhance/{botNames}/AddWishlist` | POST | AppIDs | Add to Wishlist | +| `/Api/ASFEnhance/{botNames}/RemoveWishlist` | POST | AppIDs | Remove from Wishlist | | `/Api/ASFEnhance/{botNames}/FollowGame` | POST | AppIDs | Follow Game | | `/Api/ASFEnhance/{botNames}/UnFollowGame` | POST | AppIDs | UnFollow Game | | `/Api/ASFEnhance/{botNames}/CheckGame` | POST | AppIDs | Check Game Follow/Wishlist | diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 00000000..b6032c00 --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,3 @@ +files: + - source: /ASFEnhance/Localization/Langs.resx + translation: /ASFEnhance/Localization/%file_name%.%locale%.%file_extension%