跳到主要内容

配置

NuStarParty 的所有配置文件都在:plugins/NuStarParty/

修改后可用 /nsp reload(需要 NuStarPartyAdminPerm)重载 config.yml / language.yml / 菜单文件。

config.yml

debug: false

# 队伍最大人数
party-max-size: 25
字段类型默认值说明
party-max-sizeint25队伍可加入的“队员”上限(不含队长)。队伍总人数 = party-max-size + 1(队长)。
debugbooleanfalse预留字段:当前版本不会直接根据它切换日志输出,可保持默认。

language.yml(消息文案)

  • 支持 § 颜色代码(例如 §a
  • 支持变量替换:{leader}{member}
  • 部分 key 可能为预留/历史遗留(当前版本未必会触发),可先保持默认

常用变量

变量含义
{leader}队长名称
{member}队伍成员名称
{player}申请入队的玩家名称
{applicant}入队申请者名称(队长处理申请时)
{inviter}邀请人名称
{invited}被邀请人名称
{reason}踢出原因
{destination} / {mode}预留变量(当前版本无对应功能逻辑)

Key 清单(按场景)

基础

Key场景变量
onCreateParty创建队伍成功-
onNotJoinParty没有加入任何队伍-
onSomeoneJoinedParty有人加入队伍{member}
onJoinParty自己加入队伍{leader}
onQuitParty自己退出队伍{leader}
onMemberQuitParty队员退出队伍{member}
onPartyFull队伍已满{leader}
onPartyNotExist队伍不存在-
onPartyAlreadyExist已有队伍-
onPartyAlreadyJoined已经加入过队伍/已有队伍-

入队申请

Key场景变量
onJoinPartyApplication自己发起入队申请{leader}
onSomeoneJoinPartyApplication有人申请加入你的队伍(队长收到){player}
onJoinPartyAccept入队申请被通过{leader}
onJoinPartyRefuse队长拒绝申请(队伍内广播){leader} {applicant}
onPartyRefuseJoinApplication自己的申请被拒绝{leader}
onJoinPartyApplicationAlreadyExist重复申请-
onNonLeaderOpenJoinApplicationMenu非队长打开申请列表-
onNonLeaderHandleJoinApplication非队长处理申请-

邀请

Key场景变量
onInviteJoinParty自己发出邀请{invited}
onSomeoneInviteJoinParty收到邀请{inviter} {leader}
onInviteJoinPartyAccept自己接受邀请{inviter}
onInviteJoinPartyRefuse自己拒绝邀请{inviter}
onInviteAlreadyJoinedParty被邀请者已在队伍中{invited}
onSomeoneInviteJoinPartyRefuse被邀请者拒绝邀请(邀请人收到){invited}
onInviteApplicationAlreadyExist重复邀请{invited}

踢人

Key场景变量
onKickedOutParty被踢的人收到{leader} {reason}
onKickParty队伍内广播踢人{leader} {member} {reason}
onKickPartyFail非队长踢人失败-
onKickPartyNotInParty目标不在队伍中-

解散

Key场景变量
onPartyDisband队长解散成功(自己收到)-
onLeaderDisbandParty队伍解散广播(队员收到){leader}
onNonLeaderDisbandParty非队长尝试解散-

地牢(可选联动)

Key场景变量
onNonLeaderStartDungeon非队长尝试开本-
onOtherMemberInDungeon有队员在地牢内,阻止开本-
onTeleportToDungeon中途进队,传送到地牢-
onTeleportToDungeonConditionsNotMet中途进队但条件不满足-
onCannotDisbandPartyWhileInDungeon地牢内禁止解散队伍-

菜单文件(GUI)

首次启动会释放默认菜单文件到 plugins/NuStarParty/

  • party-menu.yml:公共队伍列表
  • my-party-menu.yml:我的队伍管理
  • party-join-application-menu.yml:入队申请列表
  • invite-menu.yml:邀请列表
  • player-list-menu.yml:玩家列表

菜单结构速览

每个菜单文件大致结构如下:

MenuName: "队伍菜单"
Title: "§7§l队伍列表"
Layout:
- "#########"
- "# #"

Buttons:
'#':
name: "§8—"
material: "stained_glass_pane"
'A':
name: "§7上一页"
material: "paper"
type: "lastPage"
  • Layout:用字符画定义布局;Buttons 里同名字符会被渲染为静态按钮
  • type:静态按钮的行为类型(见下方)
  • 空白槽位:用于渲染“动态列表”(队伍/成员/申请/邀请/玩家)

已内置的 type 行为

type作用
lastPage / nextPage翻页
createParty创建队伍(成功后打开“我的队伍”)
myParty打开“我的队伍”
partyList打开“队伍列表”
playerList打开“玩家列表”
inviteApplicationList打开“邀请列表”
joinApplicationList打开“申请列表”(队长专用)
quitParty退出队伍(队长会触发转让/解散逻辑)
disbandParty解散队伍(队长专用;DungeonPlus 联动时地牢内会被禁止)

动态按钮与固定点击行为

动态列表按钮的点击行为是固定的(不通过 type 配置切换),但你可以修改它们的显示样式与 Lore 提示:

  • party-menu.ymlButtons.party:点击队伍条目会“申请加入该队伍”
  • my-party-menu.yml → 成员按钮:Shift + 左键 踢人;Shift + 右键 转让队长
  • party-join-application-menu.yml → 申请者按钮:左键通过;右键拒绝
  • invite-menu.yml → 邀请者按钮:左键接受;右键拒绝
  • player-list-menu.yml → 玩家按钮:左键邀请加入队伍(邀请理由固定为“通过玩家列表邀请”)

菜单占位符

菜单中可使用占位符(形如 {name}),用于动态渲染玩家与队伍信息。

基础占位符

占位符含义需要在线
{name}玩家名
{level}玩家等级
{health}当前生命值(保留 2 位小数)
{maxHealth}最大生命值(保留 2 位小数)
{last_online}上次在线时间(Asia/Shanghai)

队伍相关占位符

占位符含义
{slots}剩余空位(或“满人”)
{partyLeader}该玩家所在队伍的队长名
{partySize}队伍总人数(成员数 + 1)
{partyMaxSize}队伍最大人数(来自 Party.getMaxSize()

邀请理由

invite-menu.ymlinvite-apply-lore 中可使用 {inviteReason},会自动按行换行展示。