Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Core/LFG): Add config to prevent LFG teleportation #20973

Open
wants to merge 22 commits into
base: master
Choose a base branch
from

Conversation

Exitare
Copy link
Member

@Exitare Exitare commented Dec 19, 2024

Config added that disables LFG teleportation, defaults to 1 (activate). Does not disable the tool, only the teleport. Groups are still formed.

Changes Proposed:

This PR proposes changes to:

  • Core (units, players, creatures, game systems).
  • Scripts (bosses, spell scripts, creature scripts).
  • Database (SAI, creatures, etc).

Issues Addressed:

SOURCE:

The changes have been validated through:

  • Live research (checked on live servers, e.g Classic WotLK, Retail, etc.)
  • Sniffs (remember to share them with the open source community!)
  • Video evidence, knowledge databases or other public sources (e.g forums, Wowhead, etc.)
  • The changes promoted by this pull request come partially or entirely from another project (cherry-pick). Cherry-picks must be committed using the proper --author tag in order to be accepted, thus crediting the original authors, unless otherwise unable to be found

Tests Performed:

This PR has been:

  • Tested in-game by the author.
  • Tested in-game by other community members/someone else other than the author/has been live on production servers.
  • This pull request requires further testing and may have edge cases to be tested.

How to Test the Changes:

  • This pull request can be tested by following the reproduction steps provided in the linked issue
  • This pull request requires further testing. Provide steps to test your changes. If it requires any specific setup e.g multiple players please specify it as well.
  1. Open 5 different clients with 5 different accounts ( 1xtank, 1xheal, 3dds)
  2. Join lfg
  3. Accept invitation to join the lfg group.
  4. After all accepted, nothing should happen. The panel will disappear after a few seconds, message will be displayed to inform player about randomly selected dungeon.
  5. Walk manually to the dungeon

Known Issues and TODO List:

  • [ ]
  • [ ]

How to Test AzerothCore PRs

When a PR is ready to be tested, it will be marked as [WAITING TO BE TESTED].

You can help by testing PRs and writing your feedback here on the PR's page on GitHub. Follow the instructions here:

http://www.azerothcore.org/wiki/How-to-test-a-PR

REMEMBER: when testing a PR that changes something generic (i.e. a part of code that handles more than one specific thing), the tester should not only check that the PR does its job (e.g. fixing spell XXX) but especially check that the PR does not cause any regression (i.e. introducing new bugs).

For example: if a PR fixes spell X by changing a part of code that handles spells X, Y, and Z, we should not only test X, but we should test Y and Z as well.

@github-actions github-actions bot added CORE Related to the core file-cpp Used to trigger the matrix build labels Dec 19, 2024
@TheSCREWEDSoftware
Copy link
Contributor

Ready to be reviewed? @Exitare

@Exitare
Copy link
Member Author

Exitare commented Dec 19, 2024

Yes, it's ready to be reviewed :)

src/server/game/DungeonFinding/LFGMgr.cpp Outdated Show resolved Hide resolved
src/server/game/DungeonFinding/LFGMgr.cpp Outdated Show resolved Hide resolved
@sudlud
Copy link
Member

sudlud commented Dec 19, 2024

Are you actually loading the new config value in World.cpp?

@Kitzunu
Copy link
Member

Kitzunu commented Dec 19, 2024

No he is not

@Exitare
Copy link
Member Author

Exitare commented Dec 19, 2024

Yes I missed that tiny one liner ;)

@github-actions github-actions bot added the DB related to the SQL database label Dec 20, 2024
src/server/game/DungeonFinding/LFGMgr.cpp Outdated Show resolved Hide resolved
src/server/game/World/World.cpp Outdated Show resolved Hide resolved
src/server/game/DungeonFinding/LFGMgr.cpp Outdated Show resolved Hide resolved
src/server/game/DungeonFinding/LFGMgr.cpp Outdated Show resolved Hide resolved
src/server/game/DungeonFinding/LFGMgr.cpp Outdated Show resolved Hide resolved
src/server/game/DungeonFinding/LFGMgr.cpp Outdated Show resolved Hide resolved
@sudlud
Copy link
Member

sudlud commented Dec 30, 2024

just tested this (again, after actually running the SQL of this PR) with a single lvl 70 character and The Botanica as the specific instance.

I would say this breaks the functionality of .debug lfg if LFG.Teleport = 0


.debug lfg
list for "The Botanica" as damage dealer
accept invite

LFG.Teleport = 1

  • get teleported to instance
  • the LFG icon is available at the minimap

LFG.Teleport = 0

  • receive a message in chat to walk to the dungeon The Botanica
  • get NOT teleported to instance
  • the LFG icon is NOT available at the minimap

So I would expect that after accepting the invite the minimap icon should always appear (?)

@Exitare
Copy link
Member Author

Exitare commented Jan 4, 2025

@sudlud Thanks for checking. I will work on this in the coming days, to make sure it doesn't break the debug command.

@sudlud sudlud changed the title feat(Core/LFG)Add config to prevent LFG teleportation feat(Core/LFG): Add config to prevent LFG teleportation Jan 5, 2025
@sudlud
Copy link
Member

sudlud commented Jan 6, 2025

just tested this again, behaviour is the same with .debug lfg on as before. did you test this yourself and did it work for you? maybe i'm doing something wrong here

@sudlud
Copy link
Member

sudlud commented Jan 6, 2025

if i'm already inside the target instance when lfg pops, the lfg icon appears correctly

@Exitare
Copy link
Member Author

Exitare commented Jan 6, 2025

Yes I did test it.
With ".debug lfg" active it shouldn't even block the teleport anymore. The design is that ".debug lfg" is unaffected by this option.

@@ -2148,12 +2148,15 @@ namespace lfg
{
error = LFG_TELEPORTERROR_COMBAT;
}
else if (!sWorld->getBoolConfig(CONFIG_LFG_TELEPORT) && !m_Testing)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should only trigger if debug lfg is not active and the config is not active.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CORE Related to the core DB related to the SQL database file-cpp Used to trigger the matrix build Ready to be Reviewed Waiting to be Tested
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature: Disabling LFG Teleport, but keeping the tool
5 participants