import {Config} from "data"; import Utilities from "./utilities"; import WebpackModules, {Filters} from "./webpackmodules"; import DiscordModules from "./discordmodules"; import DataStore from "./datastore"; import DOMManager from "./dommanager"; import Toasts from "../ui/toasts"; import Notices from "../ui/notices"; import Modals from "../ui/modals"; import PluginManager from "./pluginmanager"; import ThemeManager from "./thememanager"; import Settings from "./settingsmanager"; import Logger from "common/logger"; import Patcher from "./patcher"; import Emotes from "../builtins/emotes/emotes"; import ipc from "./ipc"; /** * `BdApi` is a globally (`window.BdApi`) accessible object for use by plugins and developers to make their lives easier. * @name BdApi */ const BdApi = { /** * The React module being used inside Discord. * @type React * */ get React() {return DiscordModules.React;}, /** * The ReactDOM module being used inside Discord. * @type ReactDOM */ get ReactDOM() {return DiscordModules.ReactDOM;}, /** * A reference object to get BD's settings. * @type object * @deprecated */ get settings() {return Settings.collections;}, /** * A reference object for BD's emotes. * @type object * @deprecated */ get emotes() { return new Proxy(Emotes.Emotes, { get(obj, category) { if (category === "blocklist") return Emotes.blocklist; const group = Emotes.Emotes[category]; if (!group) return undefined; return new Proxy(group, { get(cat, emote) {return group[emote];}, set() {Logger.warn("BdApi.emotes", "Addon policy for plugins #5 https://github.com/BetterDiscord/BetterDiscord/wiki/Addon-Policies#plugins");} }); }, set() {Logger.warn("BdApi.emotes", "Addon policy for plugins #5 https://github.com/BetterDiscord/BetterDiscord/wiki/Addon-Policies#plugins");} }); }, /** * A reference string for BD's version. * @type string */ get version() {return Config.version;} }; /** * Adds a `