diff --git a/src/equicordplugins/questCompleter/index.tsx b/src/equicordplugins/questCompleter/index.tsx
index ff62200c..b72d1924 100644
--- a/src/equicordplugins/questCompleter/index.tsx
+++ b/src/equicordplugins/questCompleter/index.tsx
@@ -16,8 +16,8 @@
* along with this program. If not, see .
*/
+import "./styles.css";
import "@equicordplugins/_misc/styles.css";
-
import { showNotification } from "@api/Notifications";
import ErrorBoundary from "@components/ErrorBoundary";
import { Devs } from "@utils/constants";
@@ -25,27 +25,30 @@ import { getTheme, Theme } from "@utils/discord";
import { classes } from "@utils/misc";
import definePlugin from "@utils/types";
import { findByProps, findExportedComponentLazy } from "@webpack";
-import { Button, FluxDispatcher, Forms, RestAPI, Tooltip, UserStore } from "@webpack/common";
+import { addServerListElement, removeServerListElement, ServerListRenderPosition } from "@api/ServerList";
+import { Button, FluxDispatcher, NavigationRouter, Forms, RestAPI, Tooltip, UserStore } from "@webpack/common";
const HeaderBarIcon = findExportedComponentLazy("Icon", "Divider");
const isApp = navigator.userAgent.includes("Electron/");
-
function ToolBarQuestsIcon() {
return (
);
}
+
+
function ToolBarHeader() {
return (
@@ -66,11 +69,13 @@ async function openCompleteQuestUI() {
const RunningGameStore = findByProps("getRunningGames");
const QuestsStore = findByProps("getQuest");
const quest = [...QuestsStore.quests.values()].find(x => x.id !== "1248385850622869556" && x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now());
-
if (!quest) {
showNotification({
title: "Quest Completer",
body: "No Quests To Complete",
+ onClick() {
+ NavigationRouter.transitionTo("/discovery/quests");
+ },
});
} else {
const pid = Math.floor(Math.random() * 30000) + 1000;
@@ -233,6 +238,12 @@ export default definePlugin({
Game Quests do not work on Equibop/Web Platforms. Only Video Quests do.
>,
+ start() {
+ addServerListElement(ServerListRenderPosition.Above, this.renderQuestButton);
+ },
+ stop() {
+ removeServerListElement(ServerListRenderPosition.Above, this.renderQuestButton);
+ },
patches: [
{
find: "\"invite-button\"",
@@ -244,25 +255,30 @@ export default definePlugin({
{
find: "toolbar:function",
replacement: {
- match: /(function \i\(\i\){)(.{1,200}toolbar.{1,300}mobileToolbar)/,
+ match: /(function\s+\w+\s*\([\w\s,]*\)\s*\{)([\s\S]{1,500}toolbar[\s\S]{1,500}mobileToolbar)/,
replace: "$1$self.toolbarAction(arguments[0]);$2"
}
- }
+ }
],
renderQuestButton() {
return (
-
- {tooltipProps => (
-
- )}
-
+
+
+
);
},
toolbarAction(e) {
diff --git a/src/equicordplugins/questCompleter/styles.css b/src/equicordplugins/questCompleter/styles.css
new file mode 100644
index 00000000..d945ff57
--- /dev/null
+++ b/src/equicordplugins/questCompleter/styles.css
@@ -0,0 +1,25 @@
+#vc-questbutton-container {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 8px;
+}
+
+#vc-questbutton {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ background-color: var(--background-primary);
+ height: 48px;
+ width: 48px;
+ border-radius: 100%;
+ transition: border-radius 0.15s ease-out, background-color 0.15s ease-out;
+}
+
+#vc-questbutton:hover {
+ border-radius: 34%;
+ background-color: var(--blue-360);
+ cursor: pointer;
+}