
# BigSpender
BigSpender 是一个适用于 Paper 和 Spigot 的简单插件,允许玩家在与经济相关的命令中输入数字缩写。这消除了在命令中输入大量零的需求,从而节省时间和减少打字错误。对于经济规模非常大的服务器(余额达到数万亿甚至更高)来说,这尤其有用。换句话说,如果一名玩家需要支付 3 万亿美元(通常显示为“3T”),他们只需要输入“/pay Steve 3t”而不是输入九个零。
**v1.1 新特性:使用 PlaceholderAPI 支持格式化大数字!** 详情请参阅“占位符”部分。
## 特性
- **简单:** 它只做它所设定的事情;不多也不少。 这种简单性使其能够与任何插件的任何命令配合使用。
- **轻量级:** 使用 OG Bukkit API 并且仅注册一个事件。 运行流畅且与所有游戏版本兼容。
- **可配置:** 您可以精确定义 BigSpender 应处理哪些命令(以及哪些子命令!),以及针对哪些参数。 还可以自定义数字后缀和 *非常大* 的数字。 请参阅 [config.yml](https://hangar.papermc.io/hjk321/BigSpender/pages/ExampleConfig) 了解更多详情。
## 使用方法
将 jar 文件放入您的插件文件夹并运行您的服务器。 BigSpender 将在配置中启动一些默认设置,但您应该进入并定义自己的缩写和命令。 截至目前,您需要重新加载插件才能应用配置更改。
## 权限
玩家需要 **bigspender.use** 权限才能处理他们的命令。 如果未安装权限插件,则默认情况下会授予所有玩家此权限。
## 占位符
BigSpender 可选地支持 PlaceholderAPI,允许您使用配置文件中定义的缩写来格式化和解析数字。 无需额外下载——占位符包含在插件中。
`%bigspender_%` - 格式化给定的数字。 例如:`12300` -> `12.3k`。 默认为小数点后最多三位小数。
`%bigspender__%` - 允许您定义小数点后的最大位数。 0 表示您将获得整数(`12300` -> `12k`)。
`%bigspender_format_%` 和 `%bigspender_format__%` - 与上述相同,只是明确指定了格式化操作。
`%bigspender_parse_%` - 反向工作,接收格式化的数字并返回原始数字。 例如:`12.3k` -> `12300`
所有参数都支持括号占位符,例如,如果您有 rng 模块,则可以执行 `%bigspender_{rng_random}%`。这的主要用例将是格式化玩家的余额。
## 示例配置
如果您想更好地了解如何使用该插件,请查看 [默认配置文件](https://hangar.papermc.io/hjk321/BigSpender/pages/ExampleConfig)。
## 支持
如果您遇到问题,一个好的开始是在配置中启用“详细模式”并尝试运行一个有问题的命令。 这将在控制台中打印额外的信息,以帮助您找出问题所在。 如果这不起作用,请随时在 [Github Issues](https://github.com/hjk321/BigSpender/issues) 上联系。 请务必发布您的完整配置以及详细模式的输出,我将尽力提供帮助。
## 常见问题解答
**Q:它是如何工作的?**
**A:** 它通过在命令到达处理命令的插件之前读取和修改命令文本来工作。 这通过一个很少使用的事件“PlayerCommandPreprocessEvent”完成。 这种方法的优点是,该插件无需了解实际命令的任何详细信息,只需要扩展数字缩写的哪些部分即可。
**Q:我如何替换每个命令中的所有缩写?**
**A:** 你不能。 这将导致许多 sneaky 问题,例如外观像可扩展数字,但实际上不是的参数——也许它们是玩家名称或消息的一部分。 更糟糕的是,玩家甚至不知道他们的命令出现问题的原因。 通过明确定义 BigSpender 处理哪些命令的哪些参数,您可以防止发生这些问题。
**Q:这适用于控制台吗?**
**A:** 不,原因与上述原因类似。 一些插件以控制台运行命令,你绝对不想以这种方式干扰其他插件。 这也可能构成安全风险。
## 需要改进的地方
如果我有时间,这些可能是需要改进的地方:
- 在运行时重新加载配置的命令
- 使用缩写前缀而不是后缀的选项
- 自动解析命令别名和命名空间命令
- 可配置事件优先级
- 更好地处理使用参数自动完成的命令