Skip to content

Restructure#380

Draft
theBGuy wants to merge 755 commits into
mainlinefrom
restructure
Draft

Restructure#380
theBGuy wants to merge 755 commits into
mainlinefrom
restructure

Conversation

@theBGuy
Copy link
Copy Markdown
Contributor

@theBGuy theBGuy commented Jun 19, 2023

  • Pretty much a complete re-write

@jaenster
Copy link
Copy Markdown
Collaborator

jaenster commented Apr 6, 2025

So this restructure is the main repo for a long time, and this is open for years now. Can we just merge this at some point?

@theBGuy
Copy link
Copy Markdown
Contributor Author

theBGuy commented Apr 6, 2025

So this restructure is the main repo for a long time, and this is open for years now. Can we just merge this at some point?

I don't feel it's done yet and haven't had enough time to test all features

theBGuy added 16 commits April 6, 2025 13:05
- This feature enables more control over when we want to enable/disable recipes dynamically. Users can now choose to enable a recipe by the current quantity they have of the result, i.e only cubing a Ber if they don't already have n amount of them, for further control users can pass a condition callback to be checked if for instance they want to only roll a recipe if they have a certain amount of space in their stash like
```js
Config.Recipes.push([Recipe.Socket.Armor, "Archon Plate", {
  Ethereal: Roll.Eth,
  condition: function () {
    return Storage.Stash.UsedSpacePercent() < 85;
  },
}]);
```
- Allow passing a range or quantity param for the pick and stack actions
- This version of spidermonkey doesn't support arrow methods well
…ldown

- Add cain to available rush commands
- Give better timed out message including the players name in the message
- Track voting period with a configurable cooldown period to stop users from spamming it when they lose the vote
- Auto squlch shitlisted players so they don't cause the bot to be muted by having it repeatedly say, "no commands for the shitlisted"
- Squelch flooders instead of just ignoring their messages, this prevents us from even having to process it for the 60 seconds which lets d2bs work better
- Catch errors and move on during autochanting, sometimes players left or summons would dissapear causing an error to be thrown. Just log it and move on as this isn't fatal
- Add `stopWatcher` to the givewp command so players can end the wait early if they requested something they didn't mean too (still see lots of users get this command wrong idk how)
- Clean the input message before attempting to process it
- Add messages for den and forge, as users often request these over and over even after seeing the help message that lists available commands
- Add message for when users try to cancel the active command
- Add message for when users call cancel with no action
- Add message for when users request the command that is already running
- Make NGVoting configurable like other commands
- Change a1 location from portalspot to stash
- Add a message after users vote so they know their vote was counted
- Add a message for when users vote and their vote has already been counted
- Broke up a lot of the logic into smaller pieces and removed most of the large switch cases in favor of maps
- Removed redundant usage of array when we were always accessing the first/and only element
- Add back `UnpartyForMinGameTimeWait: false,` it got removed in 09ce5b6
…ordering

- Needed to define the Worldstone chamber exit manually which resulted in the wsk3 exit being out of order so add to special cases and return early from add like we do for durance and palace
…ing opaque

- Allow configuring the Box opacity with createContainer
- Made the settings box opaque so the life text doesn't make it hard to read
- This was causing chickens occasionally if the first script didn't heal before starting. Was redundant anyway since Town.heal checks the config values
- Mostly useful for characters using physical damage attacks like zeal or frenzy with weapons or other gear that does elemental damage allowing us to kill physical immunes without breaking the immunity itself.
theBGuy and others added 30 commits March 21, 2026 20:14
- Don't throw the script event if we are actively doing chores
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.1 to 3.4.2.
- [Commits](WebReflection/flatted@v3.3.1...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Don't log entire object, just the action we are starting and if the action is `doDrop` the items we are preparing to drop
- Sometimes items were getting stuck on cursor due to scriptevents bubbling up, handle it here
…r delay

- We sometimes don't want to allow background work while polling for something since game might not be in a ready state.
- HallsoftheDeadLvl3 -> MaggotLairLvl3 for taxi staff
- Replace incorrect uses of this.wpAreas (and related references) with Pather.wpAreas to ensure the module consistently accesses the shared waypoint arrays. These changes fix failures when methods or callbacks lose the correct this context (e.g., useWaypoint validation, waypoint checks in random selection and target checks, plotCourse logic, and town waypoint handling), preventing incorrect "this.wpAreas is undefined"
- Add game info logging in Experience.js when DataFile stats are not present. Add documentation comment for NTItemParser's alias in/notin parsing. Normalize braces and reformat complex conditions in Pickit.js for readability (no logic changes). Use nativeDelay in manualplay to avoid the previous delay call. Warn on attempts to access unknown properties in LazyLoader. Extend Town.d.ts with choresActive and tighten ignoredItemTypes to number[], and reformat drinkPots signature. Add ignoreDeprecations setting to tsconfig.json.
- Move item position (x,y,area) into ItemStats and replace the static dist/useTk calculation with a dynamic useTk getter/setter that computes distance and collision via CollMap.checkColl, ensuring up-to-date decisions for telekinesis. Replace delay(500) with nativeDelay(500) before cancelling UI to avoid timing/interaction issues. Tidy up a collision condition in the pickup loop and enhance the "not enough room" warning to include current inventory used percent. These changes improve accuracy of pickup logic and provide clearer logging for automule triggers.
Invoke Town.doChores() when the loader finishes the last script to clear leftover inventory (prevents false postive muling).
- Also add a /// <reference> to TorchSystem.d.ts in globals.d.ts so TorchSystem types are available globally.
- Add a guard in d2bs/kolbot/libs/core/Pickit.js to detect when _item is falsy or missing a gid while attempting to pick it. When detected, log a warning, remove the entry from Pickit.pickList, and continue, preventing errors or crashes caused by items that disappear or become invalid during the pick process.
- Add .gitattributes with a linguist override so files matching *.dbj are treated as JavaScript by GitHub Linguist, ensuring correct syntax highlighting and language stats.
- Based on https://github.com/orgs/community/discussions/45157#discussioncomment-16856678
Added event listener to handle updates for D2Bot.
- Add Fara, Hratli, Halbu, and Larzuk to the shop-case in Unit.prototype.startTrade so they return sdk.menu.TradeRepair when mode === 'shop'. Ensures these NPCs open the repair/shop menu correctly (d2bs/kolbot/libs/core/Prototypes.js).
- Add logic to detect low TP/ID scroll counts and prefer visiting the Shop NPC. When scrolls are needed (TP < 13 or ID < 13 with FieldID enabled) Town choices now favor the shop and remove Repair/Gamble/Key options. After selling, if the shop UI is open the bot will buy TP/ID scrolls, purchase needed potions, and repair equipment when appropriate. Also includes a small refactor/comment repositioning around the NPC initialization retry loop.
- Introduce the AutoRush system: add D2BotAutoRush.dbj entry script and new autorush config (systems/autorush/RushConfig.js) with setup installer entry.
- Update .gitignore and setup script to handle the new config. Refactor rushee logic into a Runnable with updated overrides (Rushee.js), load RushConfig automatically from core Config when the auto-rush script is present, and add RushConstants. Misc fixes and improvements: handle CharSelect connecting retry and randomized delays in OOG.js, add Pather.init(force) to allow forced initialization, add Pickit.enabled gating and guard fastPick/pickItems, and replace per-class auto-rush comments to point to the new central RushConfig. These changes integrate the new autorush workflow and stabilize login/creation/join behavior.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

5 participants