如何在BetterDiscord插件中从设置获取输入变量?
如何获取Discord插件设置中的输入变量
嘿,刚入门Discord插件开发碰到这个问题太正常了!我来给你梳理下目前主流的两种插件框架(BetterDiscord和Vencord)里,获取用户在设置中输入变量的具体方法,都是非常基础且实用的操作~
在BetterDiscord中获取设置变量
BetterDiscord自带了专门的Settings API来管理插件设置,步骤很清晰:
1. 先注册你的设置项
首先你需要定义好插件的设置面板,比如添加一个文本输入框让用户输入内容:
// 调用BetterDiscord的Settings API const settings = BdApi.Settings; // 注册插件设置 settings.register("MyFirstPlugin", { // 第一个参数是你的插件唯一标识ID category: "基础设置", settings: [ { type: "textbox", id: "customNickname", // 这个ID是后续获取值的关键 name: "自定义昵称", note: "输入你想要在插件中使用的自定义昵称", defaultValue: "", // 默认空值 } ] });
2. 获取用户输入的变量
当用户在设置面板输入内容后,你可以通过get方法拿到对应的值:
// 格式:settings.get(插件ID, 设置项ID) const userNickname = settings.get("MyFirstPlugin", "customNickname"); console.log("用户设置的昵称:", userNickname); // 输出用户输入的内容
在Vencord中获取设置变量
Vencord的设置系统更偏向React生态,但同样有简洁的API可以用:
1. 定义设置Schema
先通过definePluginSettings来声明你的设置项:
import { definePluginSettings } from "@api/Settings"; // 导出设置对象,方便后续调用 export const settings = definePluginSettings({ customStatusText: { type: "string", default: "", description: "输入你想要展示的自定义状态文本", } });
2. 获取设置值
- 普通JS代码中:直接访问设置对象的
store属性就能拿到值
const statusText = settings.store.customStatusText; console.log("用户设置的状态:", statusText);
- React组件中:可以用
useSetting钩子来实现响应式获取(值变化时自动更新)
import { useSetting } from "@api/Settings"; function MyPluginComponent() { // 解构出当前值和修改方法 const [statusText, setStatusText] = useSetting(settings.keys.customStatusText); return ( <input value={statusText} onChange={(e) => setStatusText(e.target.value)} placeholder="输入自定义状态" /> ); }
通用提示
不管你用的是哪种插件框架,核心逻辑都是一致的:先通过框架提供的API注册你的设置项(给每个输入项分配唯一ID),再通过框架的读取API,结合插件标识和设置项ID来获取用户输入的变量。如果是其他小众框架,建议去查它的官方文档,找「Settings API」相关的读取方法,思路都是相通的~
内容的提问来源于stack exchange,提问作者Thoth
相关产品推荐
相关产品推荐

