Skip to content
Snippets Groups Projects
Commit b46b0724 authored by Rye Mutt's avatar Rye Mutt :bread:
Browse files

Fixes

parent 3509c647
No related branches found
No related tags found
No related merge requests found
...@@ -33,7 +33,7 @@ if (USE_DISCORD) ...@@ -33,7 +33,7 @@ if (USE_DISCORD)
endif (STANDALONE) endif (STANDALONE)
if(DEFINED ENV{DISCORD_CLIENTID}) if(DEFINED ENV{DISCORD_CLIENTID})
set(DISCORD_CLIENTID $ENV{SENTRY_DSN} CACHE STRING "Discord Client ID" FORCE) set(DISCORD_CLIENTID $ENV{DISCORD_CLIENTID} CACHE STRING "Discord Client ID" FORCE)
else() else()
set(DISCORD_CLIENTID "" CACHE STRING "Discord Client ID") set(DISCORD_CLIENTID "" CACHE STRING "Discord Client ID")
endif() endif()
......
...@@ -119,10 +119,12 @@ void ALDiscordManager::init() ...@@ -119,10 +119,12 @@ void ALDiscordManager::init()
}); });
LLEventPumps::instance().obtain("mainloop").listen("ALDiscordManager", boost::bind(&ALDiscordManager::update, this, _1)); LLEventPumps::instance().obtain("mainloop").listen("ALDiscordManager", boost::bind(&ALDiscordManager::update, this, _1));
mRegionChangeConnection = gAgent.addRegionChangedCallback(boost::bind(&ALDiscordManager::onRegionChange, this));
} }
void ALDiscordManager::shutdown() void ALDiscordManager::shutdown()
{ {
mRegionChangeConnection.disconnect();
LLEventPumps::instance().obtain("mainloop").stopListening("ALDiscordManager"); LLEventPumps::instance().obtain("mainloop").stopListening("ALDiscordManager");
mDiscord.reset(); mDiscord.reset();
} }
...@@ -145,9 +147,25 @@ bool ALDiscordManager::update(const LLSD&) ...@@ -145,9 +147,25 @@ bool ALDiscordManager::update(const LLSD&)
void ALDiscordManager::onLoginCompleted() void ALDiscordManager::onLoginCompleted()
{ {
mLoggedInTime = LLDate::now().secondsSinceEpoch(); mLoggedInTime = LLDate::now().secondsSinceEpoch();
onRegionChange();
updateActivity(); updateActivity();
} }
void ALDiscordManager::onRegionChange()
{
if (gAgent.getRegionHost() != mCurrentHost)
{
LLMessageSystem* msg = gMessageSystem;
msg->newMessageFast(_PREHASH_RequestRegionInfo);
msg->nextBlockFast(_PREHASH_AgentData);
msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
gAgent.sendReliableMessage();
mCurrentHost = gAgent.getRegionHost();
}
}
void ALDiscordManager::updateActivity() void ALDiscordManager::updateActivity()
{ {
LLViewerRegion* region = gAgent.getRegion(); LLViewerRegion* region = gAgent.getRegion();
...@@ -216,15 +234,6 @@ void ALDiscordManager::updateActivity() ...@@ -216,15 +234,6 @@ void ALDiscordManager::updateActivity()
{ {
activity.GetParty().GetSize().SetMaxSize(max_agents); activity.GetParty().GetSize().SetMaxSize(max_agents);
} }
else
{
LLMessageSystem* msg = gMessageSystem;
msg->newMessageFast(_PREHASH_RequestRegionInfo);
msg->nextBlockFast(_PREHASH_AgentData);
msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
gAgent.sendReliableMessage();
}
activity.GetParty().SetId(regionId.c_str()); activity.GetParty().SetId(regionId.c_str());
activity.GetParty().SetPrivacy(discord::ActivityPartyPrivacy::Public); activity.GetParty().SetPrivacy(discord::ActivityPartyPrivacy::Public);
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#define AL_DISCORDMANAGER_H #define AL_DISCORDMANAGER_H
#include "llsingleton.h" #include "llsingleton.h"
#include "llhost.h"
#include "discord.h" #include "discord.h"
...@@ -45,9 +46,12 @@ class ALDiscordManager final ...@@ -45,9 +46,12 @@ class ALDiscordManager final
private: private:
void onLoginCompleted(); void onLoginCompleted();
void onRegionChange();
void updateActivity(); void updateActivity();
boost::signals2::connection mRegionChangeConnection;
std::unique_ptr<discord::Core> mDiscord; std::unique_ptr<discord::Core> mDiscord;
LLHost mCurrentHost;
F64 mLoggedInTime = 0.0; F64 mLoggedInTime = 0.0;
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment