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提供的默认频道中使用了 player 和 server 拓展,初次聊天时若未安装会提示安装。
TrChat变量占位符列表:
%trchat_channel%-> 玩家所处的频道%trchat_lastmessage(_uncolored)%-> 玩家最后一次发送的消息%trchat_lastprivatemessage(_uncolored)%-> 玩家最后一次发送的私聊%trchat_toplayer%-> 玩家最后一次的私聊对象%trchat_spy%-> 玩家是否开启监听私聊模式%trchat_filter%-> 玩家是否开启过滤器%trchat_mute%-> 玩家是否被禁言%trchat_mutetime%-> 玩家解除禁言时间%trchat_mutereason%-> 玩家被禁言的原因%trchat_vanish%-> 玩家是否处于隐身模式%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%
注意事项
- TrChat 2.X版本基于TabooLib 6开发
- 所有事件都继承自BukkitProxyEvent
- 部分事件不支持取消(allowCancelled返回false)
- 变量占位符支持带颜色和不带颜色版本(如_lastmessage和_lastmessage_uncolored)
版本信息
- 文档适用于TrChat 2.X版本
- 最后更新:2024/3/10 18:08
- 开发者:ItsFlicker