The text can be found in the ingamelocalization/localizegeneratestrings.lua files -> constant is :SI_JUMP_TO_GROUP_LEADER_OCCURANCE_PROMPT
Code:
"This group's leader is located in a different version of |cffffff<<1>>|r.\n\nWould you like to travel to their version, which will place you at the wayshrine nearest to them?", -- SI_JUMP_TO_GROUP_LEADER_OCCURANCE_PROMPT
You can search the esoui sources for that constant then:
SI_JUMP_TO_GROUP_LEADER_OCCURANCE_PROMPT
-> playertoplayer.lua, local function OnTravelToLeaderPromptReceived()
lines 767 ff
Code:
promptData.messageFormat = GetString(GetUnitZone("player") == groupLeaderZoneName and SI_JUMP_TO_GROUP_LEADER_OCCUR
ANCE_PROMPT or SI_JUMP_TO_GROUP_LEADER_WORLD_PROMPT)
lines 785ff shows where this local function is used:
Lua Code:
local function OnUnitCreated(unitTag)
if ZO_Group_IsGroupUnitTag(unitTag) then
OnTravelToLeaderPromptReceived()
end
end
local function OnZoneUpdate(unitTag, newZone)
if ZO_Group_IsGroupUnitTag(unitTag) then
OnTravelToLeaderPromptReceived()
end
end
local function OnGroupMemberJoined(characterName, displayName, isLocalPlayer)
if isLocalPlayer then
local groupLeaderUnitTag = GetGroupLeaderUnitTag()
if not AreUnitsEqual(groupLeaderUnitTag, "player") then
pendingJumpToGroupLeaderPrompt = true
OnTravelToLeaderPromptReceived()
end
end
end
local function OnPlayerActivateOrLeaderUpdate()
if pendingJumpToGroupLeaderPrompt then
OnTravelToLeaderPromptReceived()
end
end
As the funcs are local you cannot hack into them directly
But they are registered as event callbacks:
Lua Code:
self.control:RegisterForEvent(EVENT_UNIT_CREATED, function(event, ...) OnUnitCreated(...) end)
self.control:RegisterForEvent(EVENT_ZONE_UPDATE, function(event, ...) OnZoneUpdate(...) end)
self.control:RegisterForEvent(EVENT_GROUP_MEMBER_JOINED, function(event, ...) OnGroupMemberJoined(...) end)
self.control:RegisterForEvent(EVENT_LEADER_UPDATE, function(event, ...) OnGroupMemberJoined(...) end)
self.control:RegisterForEvent(EVENT_GROUP_MEMBER_LEFT, function(event, ...) OnGroupMemberLeft(...) end)
self = ZO_PlayerToPlayer -> object created is PLAYER_TO_PLAYER in func
Lua Code:
function ZO_PlayerToPlayer_Initialize(control)
PLAYER_TO_PLAYER = ZO_PlayerToPlayer:New(control)
end
Try the following in chat as script:
Code:
/script PLAYER_TO_PLAYER.control:UnregisterForEvent(EVENT_GROUP_MEMBER_JOINED)
Or try one of the others like EVENT_UNIT_CREATED
But beware: This might damage the grouping tools and other addons!
Another approach would be to prehook the function self:AddPromptToIncomingQueue which is used in OnTravelToLeaderPromptReceived()
self = PLAYER_TO_PLAYER again
The function starts in line 1075
Lua Code:
function ZO_PlayerToPlayer:AddPromptToIncomingQueue(interactType, characterName, displayName, targetLabel, acceptCallback, declineCallback, deferDecisionCallback)
Just add something like
Lua Code:
ZO_PreHook(PLAYER_TO_PLAYER, "AddPromptToIncomingQueue", function(interactType, characterName, displayName, targetLabel, acceptCallback, declineCallback, deferDecisionCallback)
if interactType == INTERACT_TYPE_TRAVEL_TO_LEADER then return true end
--return true will exit here adn NOT call the original code after that
end)