主题
队伍管理 API
QueDPAPI.parties() 提供玩家队伍管理功能。
基础操作
创建队伍
kotlin
val party: Party? = QueDPAPI.parties().create(leader)
if (party != null) {
leader.sendMessage("§a队伍创建成功!")
}获取玩家队伍
kotlin
val party: Party? = QueDPAPI.parties().get(player)
if (party != null) {
player.sendMessage("你在队伍中,队长: ${party.leader.name}")
}检查是否在队伍中
kotlin
if (QueDPAPI.parties().has(player)) {
player.sendMessage("你在队伍中")
}获取队长
kotlin
val leader: Player? = QueDPAPI.parties().getLeader(player)队伍管理
邀请玩家
kotlin
val success = QueDPAPI.parties().invite(leader, target)
if (success) {
leader.sendMessage("§a已向 ${target.name} 发送邀请")
}接受邀请
kotlin
val success = QueDPAPI.parties().accept(player, leader)拒绝邀请
kotlin
val success = QueDPAPI.parties().reject(player, leader)获取待处理邀请
kotlin
// 获取玩家收到的所有待处理邀请
val invites: List<Party> = PartyManager.getPendingInvitesFor(player)
invites.forEach { party ->
val leader = Bukkit.getPlayer(party.leader)
player.sendMessage("来自 ${leader?.name} 的邀请")
}邀请有效时间
kotlin
// 获取当前邀请有效时间(毫秒)
val timeout: Long = PartyManager.inviteTimeout
// 设置邀请有效时间(毫秒)
PartyManager.setInviteTimeout(120000L) // 2分钟
// 设置邀请有效时间(秒)
PartyManager.setInviteTimeoutSeconds(90) // 90秒踢出成员
kotlin
val success = QueDPAPI.parties().kick(leader, member)离开队伍
kotlin
val success = QueDPAPI.parties().leave(player)解散队伍
kotlin
val success = QueDPAPI.parties().disband(leader)转让队长
kotlin
val success = QueDPAPI.parties().transfer(leader, newLeader)奖励分配
分配物品
kotlin
// 按队伍分配模式分配
val itemStack = ItemStack(Material.DIAMOND, 5)
val success = QueDPAPI.parties().distributeItem(itemStack, party, location)批量分配奖励
kotlin
val items = listOf(
ItemStack(Material.DIAMOND, 5),
ItemStack(Material.EMERALD, 10)
)
QueDPAPI.parties().distributeRewards(items, party, players)分配金钱(需要 Vault)
kotlin
QueDPAPI.parties().distributeMoney(500.0, party, players)经验共享
kotlin
QueDPAPI.parties().shareExp(100, party, triggerPlayer)队伍聊天
发送队伍消息
kotlin
QueDPAPI.parties().sendMessage(sender, "Hello team!")发送系统消息
kotlin
QueDPAPI.parties().sendSystemMessage(party, "§eBoss spawned!")切换聊天模式
kotlin
// 切换全局/队伍聊天模式
val enabled: Boolean = QueDPAPI.parties().toggleChatMode(player)
if (enabled) {
player.sendMessage("§a已切换到队伍聊天")
} else {
player.sendMessage("§7已切换到全局聊天")
}查询
获取所有队伍
kotlin
val parties: Collection<Party> = QueDPAPI.parties().getAll()获取队伍数量
kotlin
val count: Int = QueDPAPI.parties().getCount()数据类
Party
kotlin
data class Party(
val id: UUID, // 队伍ID
val leader: Player, // 队长
val members: Set<Player>, // 成员
val createTime: Long, // 创建时间
val lootMode: LootMode, // 分配模式
val expShareRatio: Double, // 经验共享比例
val pvpEnabled: Boolean // 队内PVP开关
)队内PVP设置
kotlin
// 获取队内PVP状态
val pvpEnabled: Boolean = party.pvpEnabled
// 设置队内PVP(默认关闭)
party.pvpEnabled = true // 开启队内PVP
party.pvpEnabled = false // 关闭队内PVP返回值说明
create()返回Party?(失败返回null)- 其他操作方法返回
Boolean表示成功/失败 - 查询方法返回
null表示不存在
