Skip to content

Commit

Permalink
swc
Browse files Browse the repository at this point in the history
  • Loading branch information
yofukashino committed Jun 25, 2024
1 parent fe57a1b commit 61ad44e
Show file tree
Hide file tree
Showing 9 changed files with 2,143 additions and 1,715 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-react": "^7.33.2",
"prettier": "^2.8.8",
"replugged": "4.7.9",
"replugged": "4.8.0",
"typescript": "^5.0.0"
}
}
3,743 changes: 2,064 additions & 1,679 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/Components/ContextMenu.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { flux as Flux, React } from "replugged/common";
import { fluxHooks as FluxHooks, React } from "replugged/common";
import { ContextMenu } from "replugged/components";
import Modules from "../lib/requiredModules";
import Icons from "./Icons";
import Utils from "../lib/utils";
const { MenuCheckboxItem, ContextMenu: Menu, MenuSeparator, MenuItem } = ContextMenu;

export default (props) => {
const { SpotifyAccounts } = Flux.useStateFromStores([Modules.ConnectedAccountsStore], () => {
const { SpotifyAccounts } = FluxHooks.useStateFromStores([Modules.ConnectedAccountsStore], () => {
const ConnectedAccounts = Modules.ConnectedAccountsStore.getAccounts();
return {
SpotifyAccounts: ConnectedAccounts.filter((a) => a.type === "spotify"),
Expand Down
4 changes: 2 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { defaultSettings } from "./lib/consts";
import "./style.css";
export const PluginInjector = new Injector();
export const { utils: PluginInjectorUtils } = PluginInjector;
export const PluginLogger = Logger.plugin("ReGameActivityToggle");
export const PluginLogger = Logger.plugin("ReGameActivityToggle", "#b380ff");
export const SettingValues = await settings.init(
"dev.tharki.ReGameActivityToggle",
defaultSettings,
Expand All @@ -15,7 +15,7 @@ import Listeners from "./listeners/index";

export const start = (): void => {
Settings.registerSettings();
void Injections.applyInjections();
void Injections.applyInjections().catch((err) => PluginLogger.error(err));
void Listeners.addListeners();
};

Expand Down
17 changes: 10 additions & 7 deletions src/injections/AccountContextMenu.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { flux as Flux, React } from "replugged/common";
import { fluxHooks as FluxHooks, React } from "replugged/common";
import { ContextMenu } from "replugged/components";
import { PluginInjectorUtils, SettingValues } from "../index";
import { defaultSettings } from "../lib/consts";
Expand All @@ -13,12 +13,15 @@ export default (): void => {
Types.DefaultTypes.ContextMenuTypes.Account,
(_data, { children }: Types.MenuProps) => {
if (!SettingValues.get("statusPicker", defaultSettings.statusPicker)) return;
const { SpotifyAccounts } = Flux.useStateFromStores([Modules.ConnectedAccountsStore], () => {
const ConnectedAccounts = Modules.ConnectedAccountsStore.getAccounts();
return {
SpotifyAccounts: ConnectedAccounts.filter((a) => a.type === "spotify"),
};
});
const { SpotifyAccounts } = FluxHooks.useStateFromStores(
[Modules.ConnectedAccountsStore],
() => {
const ConnectedAccounts = Modules.ConnectedAccountsStore.getAccounts();
return {
SpotifyAccounts: ConnectedAccounts.filter((a) => a.type === "spotify"),
};
},
);
const enabled = UserSettingStore.useSetting("status", "showCurrentGame");
const Icon = (
<Icons.controller
Expand Down
4 changes: 2 additions & 2 deletions src/lib/UserSettingStore.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { flux as Flux } from "replugged/common";
import { fluxHooks as FluxHooks } from "replugged/common";
import Modules from "./requiredModules";
export const getSetting = (category: string, key: string): boolean => {
if (!category || !key) return;
return Boolean(Modules.UserSettingsProtoStore?.settings?.[category]?.[key]?.value);
};
export const useSetting = (category: string, key: string): boolean => {
if (!category || !key) return false;
const { setting } = Flux.useStateFromStores([Modules.UserSettingsProtoStore], () => {
const { setting } = FluxHooks.useStateFromStores([Modules.UserSettingsProtoStore], () => {
return {
setting: Boolean(Modules.UserSettingsProtoStore?.settings?.[category]?.[key]?.value),
};
Expand Down
60 changes: 48 additions & 12 deletions src/lib/requiredModules.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,54 @@ import Types from "../types";
export const Modules: Types.Modules = {};

Modules.loadModules = async (): Promise<void> => {
Modules.SoundUtils ??= await webpack.waitForProps<Types.SoundUtils>(
"playSound",
"createSound",
"createSoundForPack",
);
Modules.KeybindUtils ??= await webpack.waitForProps<Types.KeybindUtils>("toCombo");
Modules.UserSettingsActionUtils ??= await webpack.waitForProps<Types.UserSettingsActionUtils>(
"PreloadedUserSettingsActionCreators",
);
Modules.PanelButton = await webpack.waitForModule<Types.PanelButton>(
webpack.filters.bySource("Masks.PANEL_BUTTON"),
);
Modules.SoundUtilsModule = await webpack
.waitForModule<Types.GenericModule>(webpack.filters.bySource("SoundUtils"), {
timeout: 10000,
})
.catch(() => {
throw new Error("Failed To Find SoundUtils Module");
});

Modules.SoundUtils ??= {
createSound: webpack.getFunctionBySource(Modules.SoundUtilsModule, "return new"),
createSoundForPack: webpack.getFunctionBySource(Modules.SoundUtilsModule, /return .\(null/),
playSound: webpack.getFunctionBySource(Modules.SoundUtilsModule, ".play()"),
};

Modules.KeybindUtilsModule ??= await webpack
.waitForModule<Types.GenericModule>(webpack.filters.bySource("numpad plus"), {
timeout: 10000,
})
.catch(() => {
throw new Error("Failed To Find KeybindUtils Module");
});

Modules.KeybindUtils ??= {
toCombo: webpack.getFunctionBySource(Modules.KeybindUtilsModule, "numpad plus"),
toBrowserEvents: webpack.getFunctionBySource(Modules.KeybindUtilsModule, "{keyCode:0,"),
};
Modules.UserSettingsActionUtilsModule ??= await webpack.waitForModule<
Record<string, Types.SettingsActionCreators>
>(webpack.filters.bySource("UserSettingsProtoLastWriteTimes"));

Modules.UserSettingsActionUtils ??= {
PreloadedUserSettingsActionCreators: Object.values(
Modules.UserSettingsActionUtilsModule,
)?.find?.((n) => n?.updateAsync && n?.ProtoClass?.typeName?.endsWith(".PreloadedUserSettings")),
UserSettingsDelay: webpack.getExportsForProps(Modules.UserSettingsActionUtilsModule, [
"AUTOMATED",
"DAILY",
]),
};

Modules.PanelButton ??= await webpack
.waitForModule<Types.PanelButton>(webpack.filters.bySource("Masks.PANEL_BUTTON"), {
timeout: 10000,
})
.catch(() => {
throw new Error("Failed To Find PanelButton Module");
});

Modules.ConnectedAccountsUtils ??= await webpack.waitForProps<Types.ConnectedAccountsUtils>(
"setShowActivity",
"refreshAccessToken",
Expand Down
5 changes: 3 additions & 2 deletions src/style.css
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
[class*="withTagAsButton"] {
[class^="panels_"] > [class^="container_"] > [class^="avatarWrapper_"] + div {
min-width: 0;
flex: 1;
flex: 1 1 min-content !important;
}


.keybindRecorder-container:not(:hover) .closeButton {
display: none;
}
19 changes: 11 additions & 8 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,16 +66,16 @@ export namespace Types {
) => void;
}
export interface UserSettingsActionUtils {
FrecencyUserSettingsActionCreators: SettingsActionCreators;
FrecencyUserSettingsActionCreators?: SettingsActionCreators;
PreloadedUserSettingsActionCreators: SettingsActionCreators;
UserSettingsActionCreatorsByType: Record<number, SettingsActionCreators>;
UserSettingsActionCreatorsByType?: Record<number, SettingsActionCreators>;
UserSettingsDelay: typeof UserSettingsDelay;
addDismissedContent: DefaultTypes.AnyFunction;
checkAllDismissedContents: DefaultTypes.AnyFunction;
clearDismissedContents: DefaultTypes.AnyFunction;
removeDismissedContent: DefaultTypes.AnyFunction;
updateUserChannelSettings: DefaultTypes.AnyFunction;
updateUserGuildSettings: DefaultTypes.AnyFunction;
addDismissedContent?: DefaultTypes.AnyFunction;
checkAllDismissedContents?: DefaultTypes.AnyFunction;
clearDismissedContents?: DefaultTypes.AnyFunction;
removeDismissedContent?: DefaultTypes.AnyFunction;
updateUserChannelSettings?: DefaultTypes.AnyFunction;
updateUserGuildSettings?: DefaultTypes.AnyFunction;
}
export interface WindowStore extends Store {
isFocused: () => boolean;
Expand Down Expand Up @@ -177,9 +177,12 @@ export namespace Types {
export interface Modules {
loadModules?: () => Promise<void>;
WindowStore?: WindowStore;
SoundUtilsModule?: GenericModule;
SoundUtils?: SoundUtils;
KeybindUtilsModule?: GenericModule;
KeybindUtils?: KeybindUtils;
UserSettingsProtoStore?: UserSettingsProtoStore;
UserSettingsActionUtilsModule?: Record<string, Types.SettingsActionCreators>;
UserSettingsActionUtils?: UserSettingsActionUtils;
PanelButton?: PanelButton;
ConnectedAccountsStore?: ConnectedAccountsStore;
Expand Down

0 comments on commit 61ad44e

Please sign in to comment.