ShiroGoma 白芝麻
插件

聚落 ShiroGomaSettlement

白芝麻服轻量聚落管理插件使用说明 —— 创建聚落、领袖/副领袖权限、前缀、传送点、GUI 列表、PlaceholderAPI 变量

简介

ShiroGomaSettlement 是白芝麻服的轻量聚落(阵营)管理插件。管理员或玩家可以创建聚落,设定领袖与副领袖,邀请成员加入,设置 1 字符的聚落前缀(用于聊天前缀 / TAB 列表),为聚落挂一个传送点,通过 GUI 查看和传送。所有数据独立持久化,完全不依赖领地系统。

  • 玩家侧:加入聚落、查看聚落信息、传送回聚落、查看聚落列表
  • 聚落长 / 副领袖:改名、改前缀、改传送点、设置副领袖、踢出成员
  • 管理侧:创建 / 删除聚落、转移领袖、任意聚落改名 / 改传送点 / 踢人 / 设副领袖
  • 输出:PlaceholderAPI 变量,用于聊天前缀、TAB 列表、头顶名等场景

本插件为 Bukkit / Spigot / Paper 系插件(api-version 1.16),在 Youer 这类 NeoForge + Bukkit 混合端上运行于 Bukkit 侧。软依赖 PlaceholderAPI。

安装

  1. 将 ShiroGomaSettlement-version.jar 放入服务端 plugins/ 文件夹
  2. 重启服务器
  3. 首次启动会自动创建 plugins/ShiroGomaSettlement/config.yml 与 settlements.yml

聚落结构

每个聚落由以下字段组成:

字段说明
id自动生成的 UUID(内部主键,命令也能用)
name聚落显示名(全局唯一)
prefix1 字符前缀(含 & 颜色代码后过滤到纯文本不超过 1 个字符;可留空)
leader领袖 UUID(聚落创建者自动成为领袖)
vice-leaders副领袖 UUID 集合(可 0 人、多人)
members普通成员 UUID 集合
spawn传送点坐标 + 世界名(可选;未设置时 /settlement warp 会提示)

权限层级:管理员 (shirogoma.admin) > 领袖 > 副领袖 > 普通成员 > 无成员。子命令会按此约束可用范围。

玩家使用

操作命令
打开聚落列表/settlement list(GUI:左键传送 / 右键详情)
查看聚落详情`/settlement info [名称
传送到自己的聚落/settlement warp 或指定聚落 /settlement warp <名称>
离开聚落/settlement leave(保留聚落,直到无成员再清理)

/settlement warp 必须该聚落已设置传送点,否则会提示「该聚落未设置传送点」。成员可以传送到本聚落传送点,但不能传送到其他聚落(管理员例外)。

聚落管理命令

权限节点(来自 plugin.yml):

节点默认作用
shirogoma.adminOP任意操作(创建 / 删除 / 转移领袖 / 任意聚落改名改传送点改前缀踢人设副领袖)
shirogoma.member所有玩家基础成员权限(查看 / 传送自己的聚落 / 离开 / 加入)

子命令 + 权限矩阵(admin 全能覆盖):

命令成员副领袖领袖admin说明
/settlement create <名称>✅创建聚落,创建者自动成领袖;名称全局唯一
/settlement delete <名称|ID>✅删除聚落,数据从 settlements.yml 移除
/settlement info [名称|ID]✅✅✅✅查看聚落详情
/settlement list✅✅✅✅打开聚落列表 GUI
/settlement invite <玩家> [聚落]✅✅✅邀请玩家加入;玩家必须在线(管理员可指定任意聚落)
/settlement leave✅✅✅✅离开当前聚落
/settlement setleader <玩家> [聚落]✅转移领袖;目标必须已是该聚落成员
/settlement setname <新名称> [聚落]✅✅改名;领袖改自己的,admin 改任意的;名称全局唯一
/settlement setprefix [前缀] [聚落]✅✅设置或清除 1 字符前缀;过滤颜色代码后纯文本 ≤ 1 字符
/settlement setviceleader <玩家> [聚落]✅✅切换副领袖身份(toggle);不能设领袖自己
/settlement kick <玩家> [聚落]✅✅✅踢出成员(不能踢领袖);踢到副领袖先撤副领袖身份
/settlement setwarp [聚落]✅✅✅把传送点设在你当前位置;admin 可指定任意聚落
/settlement delwarp [聚落]✅✅✅清除传送点
/settlement warp [名称]✅✅✅✅传送到聚落传送点

前缀的「1 字符」限制是过滤 &X / §X 颜色代码之后的纯文本长度,所以可以写 &6白(过滤后只剩「白」,刚好 1 字),不能写 白芝麻(过滤后 3 字)。留空表示清除前缀。

GUI 列表

/settlement list 会打开一个聚落列表界面:

  • 左键 某格 → 传送到该聚落的传送点(必须已设置传送点,否则提示)
  • 右键 某格 → 打开聚落详情,列出领袖、副领袖、成员数、前缀

GUI 的每格图标由代码根据聚落动态生成(领袖 / 副领袖 / 普通成员身份会显示不同标识)。

PlaceholderAPI 变量

需要安装 PlaceholderAPI。扩展标识符为 settlement(不是 shirogoma)。

变量输出
%settlement_prefix%按 prefix-format 包裹的带颜色前缀;无前缀时为空
%settlement_prefix_raw%过滤颜色代码后的纯文本前缀
%settlement_prefix_raw_full%按 prefix-format-raw 包裹的纯文本前缀
%settlement_name%聚落名称
%settlement_title%同 %settlement_prefix%,兼容旧版变量名(按 title-format 包裹)

配置(config.yml)

# %settlement_prefix% 的包裹格式,{prefix} 被替换为带颜色前缀
prefix-format: "&7[{prefix}&7]"

# %settlement_prefix_raw_full% 的包裹格式(纯文本)
prefix-format-raw: "[{prefix}]"

# %settlement_title% 的包裹格式(兼容旧变量)
title-format: "&7[{prefix}&7]"
  • {prefix} 替换为带颜色的前缀(&6白 这种,不会被过滤)
  • 没前缀时 %settlement_prefix% / %settlement_title% / %settlement_prefix_raw_full% 都会返回空串,不会输出 []
  • 变量的颜色代码(&)由调用方(聊天 / TAB / 头顶)自行解析

数据存储

  • plugins/ShiroGomaSettlement/settlements.yml — 聚落列表(领袖 UUID、副领袖列表、成员列表、名称、前缀、传送点坐标 + 世界名)
  • 每次 create / delete / 改名 / 前缀 / 传送点 / 成员变更后自动保存

插件没有显式 reload 子命令(plugin.yml 里也没声明),改完数据直接重启服务器即可。

常见问题

Q:创建聚落为什么提示「没有权限」? 创建聚落只给了 shirogoma.admin(OP);普通玩家不能创建,只能被邀请加入,或者由管理员先建个空聚落再拉人。

Q:前缀设成 &7白芝麻 被拒了? 过滤颜色代码后变成 3 个字符了(「白芝麻」),超过 1 字上限。试试 &7白 或 &7[S] 这种。

Q:成员能看到但不能传送? 检查该聚落有没有通过 /settlement setwarp 设传送点;没设时所有成员都传不进去。

Q:领袖能被踢吗? 不能。要让领袖出局,必须先让管理员 /settlement setleader <新领袖> <聚落> 转移,再由新领袖踢旧领袖。

Q:为什么我看不到任何 PlaceholderAPI 变量? 检查三件事:① 服务端是否加载了 PlaceholderAPI;② 玩家是否已加入聚落(没加入时所有 settlement_* 变量返回空串);③ 聊天格式 / TAB 列表插件是否配置了 %settlement_prefix%。

Q:admin 能否改任意聚落? 可以。shirogoma.admin 覆盖所有权限检查,/settlement setname <新名> <聚落> 这种命令第三个参数指定任意聚落 ID / 名称即可。

Q:改名时 setleader / setviceleader / kick / invite 命令的 <玩家> 参数支持离线玩家吗? 支持。内部 resolvePlayer 先查在线,查不到就遍历 Bukkit.getOfflinePlayers(),离线玩家也能设为领袖或踢出。但被邀请加入时玩家必须在线(/settlement invite)。

On this page