Minecraft 本身已是一款出色的游戏,但对于服务器管理员而言,为玩家提供更多独特内容往往是关键。每个玩家都渴望不同的体验:有人想要新机制,有人想要更强的武器;有人想帮助朋友,有人则想一较高下。大多数插件提供的是通用方案,虽能满足部分玩家,却难以让所有人满意。与其通过复杂的权限来限制参与,不如直接赋予每位玩家真正想要的能力。
S86 Powers 正是为此而生,它允许您为每位玩家分配独特的个人能力与增益效果,实现真正的个性化体验。
工作原理
S86 Powers 允许为用户分配“能力”。核心插件自带多种内置能力,同时也支持导入由他人创建的能力。
快速开始
- 将
S86Powers.jar文件放入服务器的plugins文件夹。 - 注意:S86 Powers 需要 ProtocolLib 4.5.0 或更高版本 才能运行。
- 首次运行时,插件会生成带有默认值的配置文件。建议在服务器关闭时再编辑这些文件,否则输入的值可能在下次服务器关闭或重启时被覆盖。
权限与配置
- 默认情况下,管理员(OP)拥有所有权限。或者,赋予
s86powers.admin权限也可达到相同效果。 - 要查看配置选项,请使用命令
/p config list [页码](例如,/p config list 2显示第二页)。 - 要了解某个选项的具体作用,请使用
/p config info [配置项]。 - 要更改配置,请使用
/p config set [配置项] [值]。
分配与使用能力
玩家必须先被分配能力才能使用。首先,您可以了解有哪些可用能力:
- 使用
/p power list获取已加载的能力列表。 - 使用
/p power [能力名]查看特定能力的详细信息。 - 如果您想调整某个能力的设置,可以使用
/p power [能力名] option来检查和设置其可配置选项。请注意,对能力选项的更改会影响所有用户,并且可能需要重新加载/重启服务器才能生效。
分配能力主要有两种方式
- 管理员分配:需要拥有
s86powers.manage.user权限的用户使用命令/p user [玩家名] add [能力名]。此权限允许用户为任何人设置能力,不应轻易授予普通玩家。 - 自行分配:需要拥有
s86powers.manage.self权限的用户使用命令/p add [能力名]。此方法更安全,因为用户只能修改自己的能力。
什么是“能力”?
能力主要分为三类:攻击型、防御型和被动型。此外还有实用型能力。
- 攻击型与防御型:操作方式类似。玩家使用指定物品执行动作以触发效果。攻击型通常对他人造成伤害,防御型通常以某种方式保护玩家。
- 被动型:通常自动生效,提供某种增益,既不伤害他人也不直接保护玩家(但也有例外)。
- 实用型:任何人都可以使用,包括未分配任何能力的玩家。
能力示例
- 激光 (Laser) - 攻击型
- 默认配置下,手持发射器左键点击会向玩家注视方向发射激光。
- 激光对击中的目标持续造成伤害,但需要红石粉作为燃料。
- 再次左键点击或红石粉耗尽时,激光关闭。
- 使用后有 10 秒冷却时间。
- 天界之柱 (Celestial Pillars) - 防御型
- 手持海晶灯左键点击地面,会在周围生成光柱。
- 光柱存在时,除了玩家自己,任何事物都无法穿过光柱之间的区域。
- 光柱持续 45 秒,在此期间无法创建新的光柱。
- 伐木工 (Lumberjack) - 被动型
- 分配此能力后,用斧头破坏树木的一个原木方块,会导致所有相邻的树木方块同时被破坏,从而实现一键砍树。
- 默认设有阈值,防止玩家瞬间砍光整片丛林。
- 能力进阶效果
- 部分能力在频繁使用后会获得额外效果。例如,使用“天界之柱”创建 60 个光柱后,你将获得再次左键点击同一方块以创建第二组光柱的能力。
- 能力类型限制
- 默认情况下,玩家只能分配每种类型(攻击、防御、被动)的能力各一个,但可以通过配置选项取消此限制。
- 实用型能力示例
- 中和手雷 (Neutralizer Grenade):玩家可以像投掷手雷一样扔出青金石,击中时暂时禁用附近玩家的能力。
- 中和信标 (Neutralizer Beacon):玩家可以创建一个方块,持续禁用靠近它的玩家的能力。
命令与权限
S86 Powers 的命令可以使用 /powers、/power 或 /p(如果别名可用)来执行。<尖括号> 内的词为必填参数,[方括号] 内的词为可选参数。大多数命令支持 Tab 键补全。
通用帮助
- 命令:
/powers help [#] - 说明:显示所有命令的帮助信息。此命令会根据用户的权限过滤显示内容。
- 权限:
s86powers.help
配置管理
所有配置命令都需要 s86powers.manage.config 权限。
- 命令:
/powers config help [#] - 说明:显示配置命令的帮助信息。
- 权限:
s86powers.manage.config.help
- 命令:
/powers config info <选项> - 说明:显示指定配置选项的信息,如其作用和当前值。
- 权限:
s86powers.manage.config.info
- 命令:
/powers config list [#] - 说明:显示配置选项列表及其当前值。
- 权限:
s86powers.manage.config.list
- 命令:
/powers config reload - 说明:从磁盘重新加载所有配置选项,丢弃未保存的更改。
- 权限:
s86powers.manage.config.reload
- 命令:
/powers config save - 说明:将所有配置选项保存到磁盘。
- 权限:
s86powers.manage.config.save
群组管理
所有群组命令都需要 s86powers.manage.group 权限。
- 命令:
/powers group help [#] - 权限:
s86powers.manage.group.help
- 命令:
/powers group <群组名> add <能力名> - 说明:将指定能力添加到指定群组。
- 权限:
s86powers.manage.group.add
- 命令:
/powers group <群组名> assign <用户名> - 说明:将指定用户添加到指定群组。
- 权限:
s86powers.manage.group.assign
- 命令:
/powers group <群组名> create - 说明:创建指定名称的新群组。
- 权限:
s86powers.manage.group.create
- 命令:
/powers group <群组名> delete - 说明:删除指定群组。
- 权限:
s86powers.manage.group.delete
- 命令:
/powers group <群组名> info - 说明:显示指定群组的详细信息。
- 权限:
s86powers.manage.group.info
- 命令:
/powers group <群组名> kick <用户名> - 说明:将指定用户从指定群组中移除。
- 权限:
s86powers.manage.group.kick
- 命令:
/powers group list [#] - 说明:显示所有已创建群组的列表。
- 权限:
s86powers.manage.group.list
- 命令:
/powers group <群组名> remove <能力名> - 说明:从指定群组中移除指定能力。
- 权限:
s86powers.manage.group.remove
玩家管理
所有玩家命令都需要 s86powers.manage.player 权限。
- 命令:
/powers player help [#] - 权限:
s86powers.manage.player.help
- 命令:
/powers player <玩家名> add <能力名> - 说明:为指定玩家添加指定能力。
- 权限:
s86powers.manage.player.add
- 命令:
/powers player <玩家名> info - 说明:获取指定玩家的详细信息。
- 权限:
s86powers.manage.player.info
- 命令:
/powers player list [#] - 说明:显示玩家列表。
- 权限:
s86powers.manage.player.info
- 命令:
/powers player <玩家名> remove <能力名> - 说明:移除指定玩家的指定能力。
- 权限:
s86powers.manage.player.remove
- 命令:
/powers player <玩家名> stats [能力名] - 说明:显示玩家所有能力或指定能力的统计信息。
- 权限:
s86powers.manage.player.stats
- 命令:
/powers player <玩家名> supply [能力名] - 说明:为玩家补充所有能力或指定能力所需的物品。
- 权限:
s86powers.manage.player.supply
- 命令:
/powers player <玩家名> toggle [能力名] - 说明:切换指定玩家所有能力或指定能力的使用状态。
- 权限:
s86powers.manage.player.toggle
能力管理
所有能力命令都需要 s86powers.manage.power 权限。
- 命令:
/powers power help [#] - 权限:
s86powers.manage.power.help
- 命令:
/powers power <能力名> block - 说明:阻止指定能力,使其在下次服务器重启时不会加载。
- 权限:
s86powers.manage.power.block
- 命令:
/powers power <能力名> disable - 说明:强制禁用该能力,立即终止所有正在使用该能力的玩家的效果。
- 权限:
s86powers.manage.power.disable
- 命令:
/powers power <能力名> enable - 说明:重新启用一个被禁用的能力。
- 权限:
s86powers.manage.power.enable
- 命令:
/powers power <能力名> info - 说明:显示指定能力的详细信息。
- 权限:
s86powers.manage.power.info
- 命令:
/powers power <能力名> kill - 说明:尝试从内存中卸载该能力。这在能力导致服务器问题时非常有用。
- 权限:
s86powers.manage.power.kill
- 命令:
/powers power list [#|类型] - 说明:显示所有已加载能力的列表,可按类型(defense, offense, passive, utility)筛选。
- 权限:
s86powers.manage.power.list
- 命令:
/powers power <能力名> lock - 说明:锁定指定能力,防止其被禁用或启用。
- 权限:
s86powers.manage.power.lock
- 命令:
/powers power <能力名> option [选项] [值] - 说明:显示给定能力的选项及其当前值。指定选项可获取更多信息,指定值则可更改选项值。
- 权限:
s86powers.manage.power.option
- 命令:
/powers power <能力名> reload - 说明:从磁盘重新加载该能力。注意,未保存的选项更改将被丢弃。
- 权限:
s86powers.manage.power.reload
- 命令:
/powers power <能力名> save - 说明:将指定能力的选项保存到磁盘。可能需要重新加载能力才能使更改生效。
- 权限:
s86powers.manage.power.save
- 命令:
/powers power <能力名> supply [#] [物品|null] [数量] - 说明:显示给定能力所需的物品。也可用于更改物品配置。
- 权限:
s86powers.manage.power.supply
- 命令:
/powers power <能力名> unlock - 说明:解锁指定能力,允许再次禁用或启用它。
- 权限:
s86powers.manage.power.unlock
- 命令:
/powers power <能力名> unblock - 说明:解除对指定能力的阻止,允许其在下次服务器重启时加载。
- 权限:
s86powers.manage.power.unblock
自我管理命令
所有自我命令都需要 s86powers.manage.self 权限。
- 命令:
/powers add <能力名> - 说明:为命令使用者自己添加指定能力。
- 权限:
s86powers.manage.self.add
- 命令:
/powers info - 说明:显示命令使用者自己的信息。
- 权限:
s86powers.manage.self.info
- 命令:
/powers remove <能力名> - 说明:从命令使用者自己身上移除指定能力。
- 权限:
s86powers.manage.self.remove
- 命令:
/powers stats [能力名] - 说明:显示命令使用者自己所有能力或指定能力的统计信息。
- 权限:
s86powers.manage.self.stats
- 命令:
/powers supply [能力名] - 说明:为命令使用者自己补充所有能力或指定能力所需的物品。
- 权限:
s86powers.manage.self.supply
- 命令:
/powers toggle [能力名] - 说明:切换命令使用者自己所有能力或指定能力的使用状态。
- 权限:
s86powers.manage.self.toggle
附加权限
s86powers.enable- 允许玩家/等级/世界使用能力。默认对所有人启用。s86powers.assign.<能力名>- 允许玩家分配该能力。默认对所有能力启用。s86powers.power.<能力名>- 允许玩家使用该能力,无论是否已分配。默认对所有能力禁用。s86powers.group.<群组名>- 允许用户使用分配给该群组的能力。默认对所有群组禁用。s86powers.admin- 赋予用户对插件的完全控制权。默认对管理员(OP)启用。
背景故事
S86 Powers 最初是我为自己游玩的服务器创建的,之后才在 Bukkit 上公开发布。早期版本常因性能问题受到诟病,那时我刚接触 Java 编程,常使用低效的方法实现功能。我曾决心在 5.0 版本进行全面重写,但因生活变故,项目搁置了数年。
多年来,许多插件爱好者联系我,这激励我最终重新拾起了这个项目。此版本进行了多项改进以提升效率(至少我希望如此)。它仍处于早期阶段,但我已上传当前版本供大家测试。
需要支持?有关于新能力的创意?欢迎加入我的 Discord 服务器!