Doc ID: SIRC-131

TrChat API 文档

TrChat API 包名和主要API接口

Overview

TrChat API 文档

包名和主要API接口

主API接口

包名: me.arasple.mc.trchat.api

核心接口: TrChatAPI

interface TrChatAPI {
    fun getComponentManager(): ComponentManager
    fun getChannelManager(): ChannelManager
    fun getFilterManager(): FilterManager
    fun getClientMessageManager(): ClientMessageManager
    fun getProxyMessageManager(): ProxyMessageManager
}

获取实例方式: TrChat.api()

HookPlugin 工具类

object HookPlugin {
    /* 注册自定义物品展示方法 */
    fun registerDisplayItemHook(name: String, func: BiFunction<ItemStack, Player, ItemStack>)
}

事件系统

1. TrChatEvent

触发时机: 发送聊天时触发

Java示例:

public class Demo implements Listener {
    
    @EventHandler
    private void onTrChat(TrChatEvent e) {
        e.getChannel(); // 获取聊天频道
        e.getSession(); // 获取聊天会话
        e.setMessage("..."); // 改变聊天内容
        e.setCanceled(true); // 取消发送聊天
    }   
}

注意: 自TrChat-2.0.0起,已不会取消AsyncPlayerChatEvent

2. TrChatItemShowEvent

触发时机: 展示物品时触发

Kotlin定义:

class TrChatItemShowEvent(
    val player: Player,
    var item: ItemStack,
    val isCompatibleMode: Boolean
) : BukkitProxyEvent() {
    override val allowCancelled: Boolean
        get() = false
}

3. TrChatReceiveEvent

触发时机: 每个玩家收到聊天时触发

Kotlin定义:

class TrChatReceiveEvent(
    val receiver: CommandSender,
    var sender: UUID?,
    var message: ComponentText,
    val session: ChatSession? = (receiver as? Player)?.session
): BukkitProxyEvent() {
    val player = session?.player
}

4. TrChatReloadEvent

Kotlin定义:

class TrChatReloadEvent {
    class Function(val functions: MutableList<me.arasple.mc.trchat.module.display.function.Function>) : BukkitProxyEvent() {
        override val allowCancelled: Boolean
            get() = false
    }

    class Channel(val channels: MutableMap<String, me.arasple.mc.trchat.module.display.channel.Channel>) : BukkitProxyEvent() {
        override val allowCancelled: Boolean
            get() = false
    }
}

5. CustomDatabaseEvent

Kotlin定义:

class CustomDatabaseEvent(val name: String, var database: Database? = null) : BukkitProxyEvent() {
    override val allowCancelled: Boolean
        get() = false
}

PlaceholderAPI 变量占位符

TrChat提供的默认频道中使用了 playerserver 拓展,初次聊天时若未安装会提示安装。

TrChat变量占位符列表:

  1. %trchat_channel% -> 玩家所处的频道
  2. %trchat_lastmessage(_uncolored)% -> 玩家最后一次发送的消息
  3. %trchat_lastprivatemessage(_uncolored)% -> 玩家最后一次发送的私聊
  4. %trchat_toplayer% -> 玩家最后一次的私聊对象
  5. %trchat_spy% -> 玩家是否开启监听私聊模式
  6. %trchat_filter% -> 玩家是否开启过滤器
  7. %trchat_mute% -> 玩家是否被禁言
  8. %trchat_mutetime% -> 玩家解除禁言时间
  9. %trchat_mutereason% -> 玩家被禁言的原因
  10. %trchat_vanish% -> 玩家是否处于隐身模式
  11. %trchat_ignore_player% -> 玩家是否屏蔽某个玩家

使用说明

API调用示例

// 获取TrChat API实例
val api = TrChat.api()

// 获取频道管理器
val channelManager = api.getChannelManager()

// 获取组件管理器
val componentManager = api.getComponentManager()

// 获取过滤器管理器
val filterManager = api.getFilterManager()

事件监听示例

// Java示例
@EventHandler
public void onTrChatReceive(TrChatReceiveEvent event) {
    Player receiver = event.getReceiver();
    ComponentText message = event.getMessage();
    // 处理接收到的消息
}

变量占位符使用

在配置文件中可以直接使用TrChat的变量占位符,例如:

欢迎 %player_name% 加入游戏!当前频道:%trchat_channel%

注意事项

  1. TrChat 2.X版本基于TabooLib 6开发
  2. 所有事件都继承自BukkitProxyEvent
  3. 部分事件不支持取消(allowCancelled返回false)
  4. 变量占位符支持带颜色和不带颜色版本(如_lastmessage和_lastmessage_uncolored)

版本信息

  • 文档适用于TrChat 2.X版本
  • 最后更新:2024/3/10 18:08
  • 开发者:ItsFlicker