0% found this document useful (0 votes)
3 views3 pages

Message

The document outlines a script that interacts with Discord's application streaming and quest systems, checking for active quests and managing game states based on user status. It includes logic to handle different configurations of quests and to simulate game or streaming activity to fulfill quest requirements. The script also provides feedback to the user regarding their progress and necessary actions to complete quests within the Discord application environment.

Uploaded by

baianostore69
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views3 pages

Message

The document outlines a script that interacts with Discord's application streaming and quest systems, checking for active quests and managing game states based on user status. It includes logic to handle different configurations of quests and to simulate game or streaming activity to fulfill quest requirements. The script also provides feedback to the user regarding their progress and necessary actions to complete quests within the Discord application environment.

Uploaded by

baianostore69
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

let wpRequire;

window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire =


req; }]);

let ApplicationStreamingStore, RunningGameStore, QuestsStore, ExperimentStore,


FluxDispatcher, api
if(window.GLOBAL_ENV.SENTRY_TAGS.buildId ===
"366c746173a6ca0a801e9f4a4d7b6745e6de45d4") {
ApplicationStreamingStore = Object.values(wpRequire.c).find(x =>
x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
RunningGameStore = Object.values(wpRequire.c).find(x =>
x?.exports?.default?.getRunningGames).exports.default;
QuestsStore = Object.values(wpRequire.c).find(x =>
x?.exports?.default?.getQuest).exports.default;
ExperimentStore = Object.values(wpRequire.c).find(x =>
x?.exports?.default?.getGuildExperiments).exports.default;
FluxDispatcher = Object.values(wpRequire.c).find(x =>
x?.exports?.default?.flushWaitQueue).exports.default;
api = Object.values(wpRequire.c).find(x =>
x?.exports?.getAPIBaseURL).exports.HTTP;
} else {
ApplicationStreamingStore = Object.values(wpRequire.c).find(x =>
x?.exports?.Z?.getStreamerActiveStreamMetadata).exports.Z;
RunningGameStore = Object.values(wpRequire.c).find(x =>
x?.exports?.ZP?.getRunningGames).exports.ZP;
QuestsStore = Object.values(wpRequire.c).find(x =>
x?.exports?.Z?.getQuest).exports.Z;
ExperimentStore = Object.values(wpRequire.c).find(x =>
x?.exports?.Z?.getGuildExperiments).exports.Z;
FluxDispatcher = Object.values(wpRequire.c).find(x =>
x?.exports?.Z?.flushWaitQueue).exports.Z;
api = Object.values(wpRequire.c).find(x => x?.exports?.tn?.get).exports.tn;
}

let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt


&& !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() >
Date.now())
let isApp = navigator.userAgent.includes("Electron/")
if(!isApp) {
console.log("Isso não funciona mais no navegador. Use o aplicativo de
desktop!")
} else if(!quest) {
console.log("Você não tem nenhuma missão incompleta!")
} else {
const pid = Math.floor(Math.random() * 30000) + 1000

let applicationId, applicationName, secondsNeeded, secondsDone, canPlay


if(quest.config.configVersion === 1) {
applicationId = quest.config.applicationId
applicationName = quest.config.applicationName
secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
secondsDone = quest.userStatus?.streamProgressSeconds ?? 0
canPlay = quest.config.variants.includes(2)
} else if(quest.config.configVersion === 2) {
applicationId = quest.config.application.id
applicationName = quest.config.application.name
canPlay = ExperimentStore.getUserExperimentBucket("2024-
04_quest_playtime_task") > 0 && quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]
const taskName = canPlay ? "PLAY_ON_DESKTOP" : "STREAM_ON_DESKTOP"
secondsNeeded = quest.config.taskConfig.tasks[taskName].target
secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
}

if(canPlay) {
api.get({url: `/applications/public?application_ids=$
{applicationId}`}).then(res => {
const appData = res.body[0]
const exeName = appData.executables.find(x => x.os ===
"win32").name.replace(">","")

const games = RunningGameStore.getRunningGames()


const fakeGame = {
cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`,
exeName,
exePath: `c:/program files/${appData.name.toLowerCase()}/$
{exeName}`,
hidden: false,
isLauncher: false,
id: applicationId,
name: appData.name,
pid: pid,
pidPath: [pid],
processName: appData.name,
start: Date.now(),
}
games.push(fakeGame)
FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed:
[], added: [fakeGame], games: games})

let fn = data => {


let progress = data.userStatus.streamProgressSeconds
console.log(`Progresso da missão: ${progress}/$
{secondsNeeded}`)

if(progress >= secondsNeeded) {


console.log("Missão concluída!")

const idx = games.indexOf(fakeGame)


if(idx > -1) {
games.splice(idx, 1)
FluxDispatcher.dispatch({type:
"RUNNING_GAMES_CHANGE", removed: [fakeGame], added: [], games: []})
}

FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
}
}
FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)

console.log(`Falsificou seu jogo para ${applicationName}. Aguarde


mais ${Math.ceil((secondsNeeded - secondsDone) / 60)} minutos.`)
})
} else {
let realFunc =
ApplicationStreamingStore.getStreamerActiveStreamMetadata
ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
id: applicationId,
pid,
sourceName: null
})

let fn = data => {


let progress = data.userStatus.streamProgressSeconds
console.log(`Progresso da missão: ${progress}/${secondsNeeded}`)

if(progress >= secondsNeeded) {


console.log("Missão concluída!")

ApplicationStreamingStore.getStreamerActiveStreamMetadata =
realFunc
FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS",
fn)
}
}
FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)

console.log(`Falsificou sua transmissão para ${applicationName}.


Transmita qualquer janela em vc para ${Math.ceil((secondsNeeded - secondsDone) /
60)} mais minutos.`)
console.log("Lembre-se que você precisa que pelo menos mais 1 pessoa
esteja no vc!")
}
}

You might also like