Experiments: support playground & remove bug report button (#4577)
Co-authored-by: Vendicated <vendicated@riseup.net>
This commit is contained in:
parent
6fef6b5179
commit
af114dab7c
2 changed files with 44 additions and 63 deletions
|
|
@ -1,3 +0,0 @@
|
|||
#staff-help-popout-staff-help-bug-reporter {
|
||||
display: none;
|
||||
}
|
||||
|
|
@ -16,33 +16,22 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { definePluginSettings } from "@api/Settings";
|
||||
import { disableStyle, enableStyle } from "@api/Styles";
|
||||
import { BaseText } from "@components/BaseText";
|
||||
import ErrorBoundary from "@components/ErrorBoundary";
|
||||
import { ErrorCard } from "@components/ErrorCard";
|
||||
import { Flex } from "@components/Flex";
|
||||
import { Paragraph } from "@components/Paragraph";
|
||||
import { Devs, IS_MAC } from "@utils/constants";
|
||||
import { Margins } from "@utils/margins";
|
||||
import definePlugin, { OptionType } from "@utils/types";
|
||||
import definePlugin from "@utils/types";
|
||||
import { findByPropsLazy } from "@webpack";
|
||||
import { ExperimentStore, Forms, React } from "@webpack/common";
|
||||
import { React } from "@webpack/common";
|
||||
|
||||
import hideBugReport from "./hideBugReport.css?managed";
|
||||
|
||||
const KbdStyles = findByPropsLazy("key", "combo");
|
||||
|
||||
const modKey = IS_MAC ? "cmd" : "ctrl";
|
||||
const altKey = IS_MAC ? "opt" : "alt";
|
||||
|
||||
const settings = definePluginSettings({
|
||||
toolbarDevMenu: {
|
||||
type: OptionType.BOOLEAN,
|
||||
description: "Change the Help (?) toolbar button (top right in chat) to Discord's developer menu",
|
||||
default: false,
|
||||
restartNeeded: true
|
||||
}
|
||||
});
|
||||
|
||||
export default definePlugin({
|
||||
name: "Experiments",
|
||||
description: "Enable Access to Experiments & other dev-only features in Discord!",
|
||||
|
|
@ -55,8 +44,6 @@ export default definePlugin({
|
|||
Devs.Nuckyz,
|
||||
],
|
||||
|
||||
settings,
|
||||
|
||||
patches: [
|
||||
{
|
||||
find: "Object.defineProperties(this,{isDeveloper",
|
||||
|
|
@ -87,23 +74,6 @@ export default definePlugin({
|
|||
}
|
||||
]
|
||||
},
|
||||
// Change top right toolbar button from the help one to the dev one
|
||||
{
|
||||
find: '?"BACK_FORWARD_NAVIGATION":',
|
||||
replacement: {
|
||||
match: /hasBugReporterAccess:(\i)/,
|
||||
replace: "_hasBugReporterAccess:$1=true"
|
||||
},
|
||||
predicate: () => settings.store.toolbarDevMenu
|
||||
},
|
||||
// Disable opening the bug report menu when clicking the top right toolbar dev button
|
||||
{
|
||||
find: 'navId:"staff-help-popout"',
|
||||
replacement: {
|
||||
match: /(isShown.+?)onClick:\i/,
|
||||
replace: (_, rest) => `${rest}onClick:()=>{}`
|
||||
}
|
||||
},
|
||||
// Enable experiment embed on sent experiment links
|
||||
{
|
||||
find: "Clear Treatment ",
|
||||
|
|
@ -127,45 +97,59 @@ export default definePlugin({
|
|||
replace: "$&if($1==null)return;"
|
||||
}
|
||||
},
|
||||
|
||||
// Enable playground embed on sent playground links
|
||||
// dev://playground/mana, dev://playground/payments, dev://playground/virtual-currency,
|
||||
// dev://playground/nitro, dev://playground/mfa, dev://playground/cms, dev://playground/void
|
||||
{
|
||||
find: '"Open Playground',
|
||||
replacement: {
|
||||
match: "isStaff()||",
|
||||
replace: "$& true||"
|
||||
}
|
||||
},
|
||||
{
|
||||
// Expands the experiment uri regex to allow negative numbers, e.g. dev://experiment/2026-02-mana-playground-access/-1
|
||||
// -1 is "Not Eligible"
|
||||
find: '"^dev://experiment/',
|
||||
replacement: {
|
||||
match: /(?<=dev:\/\/experiment.{0,20}?)\[0-9\]\+/,
|
||||
replace: "[0-9-]+"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
start: () => ExperimentStore.getUserExperimentBucket("2026-01-bug-reporter") > 0 && enableStyle(hideBugReport),
|
||||
stop: () => disableStyle(hideBugReport),
|
||||
|
||||
settingsAboutComponent: () => {
|
||||
return (
|
||||
<React.Fragment>
|
||||
<Forms.FormTitle tag="h3">More Information</Forms.FormTitle>
|
||||
<Paragraph size="md">
|
||||
You can open Discord's DevTools via {" "}
|
||||
<div className={KbdStyles.combo} style={{ display: "inline-flex" }}>
|
||||
<kbd className={KbdStyles.key}>{modKey}</kbd>{" "}
|
||||
<kbd className={KbdStyles.key}>{altKey}</kbd>{" "}
|
||||
<kbd className={KbdStyles.key}>O</kbd>{" "}
|
||||
</div>
|
||||
</Paragraph>
|
||||
</React.Fragment>
|
||||
<Paragraph size="md">
|
||||
Tip: You can open Discord's DevTools via {" "}
|
||||
<div className={KbdStyles.combo} style={{ display: "inline-flex" }}>
|
||||
<kbd className={KbdStyles.key}>{modKey}</kbd>{" "}
|
||||
<kbd className={KbdStyles.key}>{altKey}</kbd>{" "}
|
||||
<kbd className={KbdStyles.key}>O</kbd>{" "}
|
||||
</div>
|
||||
</Paragraph>
|
||||
);
|
||||
},
|
||||
|
||||
WarningCard: ErrorBoundary.wrap(() => (
|
||||
<ErrorCard id="vc-experiments-warning-card" className={Margins.bottom16}>
|
||||
<Forms.FormTitle tag="h2">Hold on!!</Forms.FormTitle>
|
||||
<Flex flexDirection="column" gap={8}>
|
||||
<BaseText tag="h2" weight="bold" size="lg">Hold on!!</BaseText>
|
||||
|
||||
<Forms.FormText>
|
||||
Experiments are unreleased Discord features. They might not work, or even break your client or get your account disabled.
|
||||
</Forms.FormText>
|
||||
<Paragraph>
|
||||
Experiments are unreleased Discord features. They might not work, or even break your client or get your account disabled.
|
||||
</Paragraph>
|
||||
|
||||
<Forms.FormText className={Margins.top8}>
|
||||
Only use experiments if you know what you're doing. Vencord is not responsible for any damage caused by enabling experiments.
|
||||
<Paragraph>
|
||||
Only use experiments if you know what you're doing. Vencord is not responsible for any damage caused by enabling experiments.
|
||||
|
||||
If you don't know what an experiment does, ignore it. Do not ask us what experiments do either, we probably don't know.
|
||||
</Forms.FormText>
|
||||
If you don't know what an experiment does, ignore it. Do not ask us what experiments do either, we probably don't know.
|
||||
</Paragraph>
|
||||
|
||||
<Forms.FormText className={Margins.top8}>
|
||||
No, you cannot use server-side features like checking the "Send to Client" box.
|
||||
</Forms.FormText>
|
||||
<Paragraph>
|
||||
<b>You cannot use server-side features like checking the "Send to Client" box.</b>
|
||||
</Paragraph>
|
||||
</Flex>
|
||||
</ErrorCard>
|
||||
), { noop: true })
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue