Skip to content

队伍管理 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 表示不存在

基于 MIT 许可发布