QuestCompleter: Add Mobile Support
Some checks failed
Test / Test (push) Has been cancelled

This commit is contained in:
thororen1234 2025-06-22 00:29:08 -04:00
parent fbc444df8a
commit 30ce325377
No known key found for this signature in database

View file

@ -31,6 +31,7 @@ import { Button, ChannelStore, FluxDispatcher, GuildChannelStore, NavigationRout
const QuestIcon = findComponentByCodeLazy("10.47a.76.76"); const QuestIcon = findComponentByCodeLazy("10.47a.76.76");
const HeaderBarIcon = findComponentByCodeLazy(".HEADER_BAR_BADGE_TOP:", '.iconBadge,"top"'); const HeaderBarIcon = findComponentByCodeLazy(".HEADER_BAR_BADGE_TOP:", '.iconBadge,"top"');
let questIdCheck = 0;
function ToolBarHeader() { function ToolBarHeader() {
return ( return (
@ -70,13 +71,13 @@ async function openCompleteQuestUI() {
const applicationId = quest.config.application.id; const applicationId = quest.config.application.id;
const applicationName = quest.config.application.name; const applicationName = quest.config.application.name;
const taskName = ["WATCH_VIDEO", "PLAY_ON_DESKTOP", "STREAM_ON_DESKTOP", "PLAY_ACTIVITY"].find(x => quest.config.taskConfig.tasks[x] != null); const taskName = ["WATCH_VIDEO", "PLAY_ON_DESKTOP", "STREAM_ON_DESKTOP", "PLAY_ACTIVITY", "WATCH_VIDEO_ON_MOBILE"].find(x => quest.config.taskConfig.tasks[x] != null);
const icon = `https://cdn.discordapp.com/quests/${quest.id}/${theme}/${quest.config.assets.gameTile}`; const icon = `https://cdn.discordapp.com/quests/${quest.id}/${theme}/${quest.config.assets.gameTile}`;
// @ts-ignore // @ts-ignore
const secondsNeeded = quest.config.taskConfig.tasks[taskName].target; const secondsNeeded = quest.config.taskConfig.tasks[taskName].target;
// @ts-ignore // @ts-ignore
let secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0; let secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0;
if (taskName === "WATCH_VIDEO") { if (taskName === "WATCH_VIDEO" || taskName === "WATCH_VIDEO_ON_MOBILE") {
const maxFuture = 10, speed = 7, interval = 1; const maxFuture = 10, speed = 7, interval = 1;
const enrolledAt = new Date(quest.userStatus.enrolledAt).getTime(); const enrolledAt = new Date(quest.userStatus.enrolledAt).getTime();
const fn = async () => { const fn = async () => {
@ -247,6 +248,13 @@ export default definePlugin({
authors: [Devs.amia], authors: [Devs.amia],
settings, settings,
patches: [ patches: [
{
find: "BkZhUF)}",
replacement: {
match: /(?<=questId:(\i\.id).*?\.PRIMARY,)disabled:!0/,
replace: "onClick: () => $self.mobileQuestPatch($1)"
},
},
{ {
find: "AppTitleBar", find: "AppTitleBar",
replacement: { replacement: {
@ -264,6 +272,16 @@ export default definePlugin({
predicate: () => settings.store.useNavBar predicate: () => settings.store.useNavBar
} }
], ],
mobileQuestPatch(questId) {
if (questId === questIdCheck) return;
questIdCheck = questId;
Vencord.Webpack.Common.RestAPI.post({
url: `/quests/${questId}/enroll`,
body: {
location: 11
}
});
},
renderQuestButton() { renderQuestButton() {
return ( return (
<Tooltip text="Complete Quest"> <Tooltip text="Complete Quest">