oldschoolgg / oldschoolbot

Old School Bot - A fanmade discord bot based on Old School RuneScape (OSRS)
https://www.oldschool.gg/
MIT License
139 stars 121 forks source link

Add drystreak forestry #5796

Open TastyPumPum opened 3 months ago

TastyPumPum commented 3 months ago

Add forestry to the drystreak command, have it compare fox whistle, golden pheasant egg, petal garland and sturdy beehive parts against forestry events completed.

TastyPumPum commented 3 weeks ago

hey @ellipsis-dev can you implement this?

ellipsis-dev[bot] commented 3 weeks ago

To have Ellipsis create a Pull Request with the implementation, comment below with "@ellipsis-dev". You can include suggestions or additional instructions. (Re-planning is not yet supported.)

Implementation Steps

Step 1: Modify the 'drystreak' command to include options for the specified items

In the file src/mahoji/commands/tools.ts, modify the 'drystreak' command to include options for the items 'fox whistle', 'golden pheasant egg', 'petal garland', and 'sturdy beehive parts'. You can do this by adding these items to the itemOption function call in the command options. Make sure to handle the case where these items are not part of the loot from a monster, as the current implementation of the command is focused on monster drops.

Step 2: Modify the 'drystreak' command to handle forestry events

In the file src/mahoji/commands/tools.ts, extend the dryStreakEntities array to include a new entity for forestry events. This new entity should have a custom query to fetch the dry streak data for forestry events, similar to the existing entities for monster drops. Also, ensure that the command can handle the item drops from forestry events, which might be different from the drops handled by the existing entities. You can do this by incorporating checks and logic similar to those used for monster drops, adjusting for the specific data structure and functionalities of forestry events.

Step 3: Add tests for the new functionality

Extend the existing tests in tests/integration/dryStreak.test.ts by adding new test cases that simulate forestry events and check the outcomes against expected results. Use the implementation in src/tasks/minions/woodcuttingActivity.ts as a reference for how forestry events are handled and what outcomes (like item drops) to expect. Handle any dependencies or setup required for these tests.


Questions? Check out our documentation.

TastyPumPum commented 3 weeks ago

@ellipsis-dev can you make the pr for this? However step 1 isn't required.

ellipsis-dev[bot] commented 3 weeks ago

To have Ellipsis create a Pull Request with the implementation, comment below with "@ellipsis-dev". You can include suggestions or additional instructions. (Re-planning is not yet supported.)

Implementation Steps

Step 1: Modify the 'drystreak' command to handle forestry events

In the file src/mahoji/commands/tools.ts, extend the dryStreakEntities array to include a new entity for forestry events. This new entity should have a custom query to fetch the dry streak data for forestry events, similar to the existing entities for monster drops. Also, ensure that the command can handle the item drops from forestry events, which might be different from the drops handled by the existing entities. You can do this by incorporating checks and logic similar to those used for monster drops, adjusting for the specific data structure and functionalities of forestry events.

Step 2: Add tests for the new functionality

Extend the existing tests in tests/integration/dryStreak.test.ts by adding new test cases that simulate forestry events and check the outcomes against expected results. Use the implementation in src/tasks/minions/woodcuttingActivity.ts as a reference for how forestry events are handled and what outcomes (like item drops) to expect. Handle any dependencies or setup required for these tests.


Questions? Check out our documentation.

TastyPumPum commented 3 weeks ago

@ellipsis-dev can you make the pr for the above?

ellipsis-dev[bot] commented 3 weeks ago

To have Ellipsis create a Pull Request with the implementation, comment below with "@ellipsis-dev". You can include suggestions or additional instructions. (Re-planning is not yet supported.)

Implementation Steps

Step 1: Modify the 'drystreak' command to handle forestry events

In the file src/mahoji/commands/tools.ts, extend the dryStreakEntities array to include a new entity for forestry events. This new entity should have a custom query to fetch the dry streak data for forestry events, similar to the existing entities for monster drops. Also, ensure that the command can handle the item drops from forestry events, which might be different from the drops handled by the existing entities. You can do this by incorporating checks and logic similar to those used for monster drops, adjusting for the specific data structure and functionalities of forestry events.

Step 2: Add tests for the new functionality

Extend the existing tests in tests/integration/dryStreak.test.ts by adding new test cases that simulate forestry events and check the outcomes against expected results. Use the implementation in src/tasks/minions/woodcuttingActivity.ts as a reference for how forestry events are handled and what outcomes (like item drops) to expect. Handle any dependencies or setup required for these tests.


Questions? Check out our documentation.

TastyPumPum commented 3 weeks ago

@ellipsis-dev

ellipsis-dev[bot] commented 3 weeks ago

To have Ellipsis create a Pull Request with the implementation, comment below with "@ellipsis-dev". You can include suggestions or additional instructions. (Re-planning is not yet supported.)

Implementation Steps

Step 1: Modify the 'drystreak' command to handle forestry events

In the file src/mahoji/commands/tools.ts, extend the dryStreakEntities array to include a new entity for forestry events. This new entity should have a custom query to fetch the dry streak data for forestry events, similar to the existing entities for monster drops. Also, ensure that the command can handle the item drops from forestry events, which might be different from the drops handled by the existing entities. You can do this by incorporating checks and logic similar to those used for monster drops, adjusting for the specific data structure and functionalities of forestry events.

Step 2: Add tests for the new functionality

Extend the existing tests in tests/integration/dryStreak.test.ts by adding new test cases that simulate forestry events and check the outcomes against expected results. Use the implementation in src/tasks/minions/woodcuttingActivity.ts as a reference for how forestry events are handled and what outcomes (like item drops) to expect. Handle any dependencies or setup required for these tests.


Questions? Check out our documentation.