拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Awakened PoE Trade 聊天命令功能实战指南:热键发送任意游戏文本与 @last 密语占位符

Awakened PoE Trade 聊天命令功能实战指南:热键发送任意游戏文本与 @last 密语占位符

【免费下载链接】awakened-poe-trade

:heavy_dollar_sign: :hammer: Path of Exile app for price checking

项目地址:https://gitcode.com/gh_mirrors/aw/awakened-poe-trade
点击查看免费下载

本篇指南聚焦 Awakened PoE Trade(流放之路交易辅助工具)内置的**聊天命令(Chat Commands)**功能。它允许玩家为任意一段要发送到游戏聊天框的文本绑定全局热键,例如一键发送/hideout、/invite,并借助@last占位符自动把文本发送给最近一次密语(Whisper)的对象。读完本文,你将掌握聊天命令的完整配置方式、@last的两条替换规则、从设置界面到按键注入的源码级实现链路,以及官方文档提供的常见排错方法。

功能概述:把任意文本“注入”游戏聊天

聊天命令是 Awakened PoE Trade 的一个基础快捷功能:允许你向游戏的聊天框发送任意文本。它基于全局热键(global shortcut)与按键注入实现——触发热键后,应用会把配置好的文本复制到剪贴板、模拟按键粘贴进 Path of Exile 的聊天输入框,并可选地模拟回车把消息发送出去。

因此,凡是在 PoE 聊天控制台中可执行的命令(如/hideout、/exit、/invite、/tradewith等游戏命令,以及@密语、#全局、$交易、&公会等频道文本),都可以通过此功能一键触发。完整的 PoE 聊天控制台命令列表可在 PoE Wiki 的 Chat console 页面查阅,这里不再赘述,重点讲解本项目的配置与实现。

在设置界面中配置聊天命令

聊天命令的设置入口位于应用的设置窗口(Settings)中,对应的 Vue 组件是 renderer/src/web/settings/chat.vue。每个命令条目由三部分构成:

  • 文本输入框:输入要发送的任意文本(支持下文介绍的@last占位符);
  • 「press Enter」开关(UiToggle):对应配置字段send,控制触发后是否自动回车发送。打开时粘贴后立即回车发送;关闭时只把文本粘贴进聊天框,由你手动确认后回车;
  • 热键输入(HotkeyInput):为该命令绑定一个全局热键;不绑热键(null)的命令仍可保留,但不会注册快捷键动作。

界面同时提供「Add command」(新增)与「Remove」(删除)按钮,方便随时增删命令,见 renderer/src/web/settings/chat.vue。

配置结构与默认值

在配置模型层面,命令被定义为Config.commands数组,其元素结构为{ text: string; hotkey: string | null; send: boolean },定义见 renderer/src/web/Config.ts。应用出厂默认配置了 6 条命令(见 renderer/src/web/Config.ts):

texthotkeysend用途
/hideoutF5true一键回藏身处
/exitF9true一键退出游戏
@last ty无true向最近密语对象回复「ty」
/invite @last无true邀请最近密语对象入队
/tradewith @last无true向最近密语对象发起交易
/hideout @last无true邀请最近密语对象到藏身处

从旧版本升级时,若命令缺少send字段,配置迁移逻辑会统一补齐为true(见 renderer/src/web/Config.ts),保证旧配置依然可用。

@last 占位符的两条特殊规则

@last是聊天命令功能的核心占位符,代表最近一次收到或发送密语的角色名。官方文档(docs/chat-commands.md)明确了它在文本中的两种位置规则:

规则一:以@last开头的文本

文本以@last开头时,整条消息将被发送给最近一次密语的角色。例如:

最近收到的密语: @From UltraSkillPlayer: Thank you. 命令: @last Good luck! 实际发送文本: @UltraSkillPlayer Good luck!

也就是说,@last会被展开为@角色名,从而把剩余文本以密语形式回复给最近与你互动的玩家。

规则二:以@last结尾的文本

文本以@last结尾时,@last会被替换为最近一次密语对象的角色名(不带@前缀),常用于把对方名字嵌入到游戏命令中。例如:

最近收到的密语: @From UltraSkillPlayer: Can I visit your Toucan hideout? 命令: /invite @last 实际发送文本: /invite UltraSkillPlayer

两条规则可以组合出大量实用场景:@last ty快速道谢、/invite @last拉人入队、/tradewith @last发起交易、/hideout @last带人到藏身处,默认配置已覆盖其中四类。

底层实现:从配置到按键注入的完整链路

理解源码实现有助于排查问题与设计自己的命令组合。整个流程跨越渲染进程与主进程:

1. 配置转译为快捷键动作

保存配置时,getConfigForHost()会遍历config.commands,把每个带热键的命令转译为主进程可执行的paste-in-chat动作(见 renderer/src/web/Config.ts):

for (const command of config.commands) { if (command.hotkey) { actions.push({ shortcut: command.hotkey, action: { type: 'paste-in-chat', text: command.text, send: command.send } }) } }

ShortcutAction的联合类型定义于 ipc/types.ts,其中paste-in-chat动作携带text与send两个字段,正是配置界面上的两个选项。

2. 主进程注册全局热键

主进程的Shortcuts类把每个动作注册为 Electron 全局快捷键;热键按下且游戏窗口处于活动状态时,命中paste-in-chat分支并调用typeInChat(entry.action.text, entry.action.send, this.clipboard)(见 main/src/shortcuts/Shortcuts.ts)。

3. 按键注入与 @last 展开

核心实现位于 main/src/shortcuts/text-box.ts。typeInChat首先通过clipboard.restoreShortly()临时写入文本并在完成后恢复用户原剪贴板内容,然后按三种情况分支:

  • 以@last开头:先截掉@last前缀,把剩余文本写入剪贴板,并模拟Ctrl + Enter(macOS 上为Cmd + Enter)。在 PoE 中该组合键会唤起对最近密语对象的回复输入,随后Ctrl + V粘贴剩余文本,最终效果即「发给最近密语者」;
  • 以@last结尾:从文本末尾去掉@last,只把命令前缀(如/invite)写入剪贴板,依次模拟Enter、Home、Home、Delete清空聊天输入框后粘贴前缀。可见从源码看,@last的具体角色名替换并非由应用写入,而是交由游戏客户端基于最近一次密语上下文自动补全;
  • 普通文本:直接写入剪贴板、模拟Enter打开聊天框并粘贴;若文本以#、%、@、$、&、/等频道或命令前缀开头(AUTO_CLEAR列表),则跳过Ctrl + A全选步骤,避免破坏频道前缀,见 main/src/shortcuts/text-box.ts。

4. 发送与聊天历史恢复

当send为 true 时,粘贴完成后会依次模拟:Enter(发送)→Enter(再次打开聊天)→ArrowUp→ArrowUp→Escape。后四步的目的是让游戏聊天输入框恢复到「最近发送消息」的状态并关闭输入框,这与 FAQ 中的排查方法直接相关(见 main/src/shortcuts/text-box.ts)。

FAQ 实战排错

官方文档 docs/chat-commands.md 给出了三个高频问题的标准答案:

功能没生效时,如何确认实际发送的文本?

打开游戏聊天(按Enter),然后连续按两次ArrowUp。聊天输入框会回显最近一次发送的消息——如果应用确实触发了命令,这里就能看到实际发送的完整文本,从而区分是命令配置错误、@last展开不符合预期,还是热键未触发。

如何离开队伍?

使用游戏命令/kick MyCharacterName。注意:/kick后必须跟你自己的角色名,每次创建或改名后都需要同步更新这条命令的文本(例如把默认的@last场景之外单独配置一条/kick 角色名命令)。

能否用一次热键链式发送多条命令?

不能。按 PoE 的《服务条款》(ToS),这种自动化链式命令行为不被允许,官方文档明确回答「This is not allowed by PoE ToS」。因此请避免设计依赖一次热键连续发送多条命令的方案。

使用注意事项与限制

  • 保留热键不会被注册:Shortcuts.updateActions会把Ctrl + C、Ctrl + V、Ctrl + A、Ctrl + F、Ctrl + Enter、Home、Delete、Enter、ArrowUp、ArrowRight、ArrowLeft视为游戏保留按键,即使配置了也会被过滤并记录错误日志(见 main/src/shortcuts/Shortcuts.ts),请勿为聊天命令绑定这些按键;
  • 热键冲突检测:同一热键只能注册给一个动作,重复绑定会被丢弃(toggle-overlay例外,见 main/src/shortcuts/Shortcuts.ts);若热键已被其他应用占用,注册会失败并输出错误日志;
  • 注册时机:快捷键仅在 PoE 游戏窗口处于活动状态时注册、切走时注销(见 main/src/shortcuts/Shortcuts.ts),所以命令只会作用于游戏会话,不会干扰日常操作;
  • 剪贴板安全:命令通过剪贴板中转粘贴,HostClipboard.restoreShortly会在动作结束后恢复你原有的剪贴板内容,降低对日常复制操作的影响。

总体而言,聊天命令是 Awakened PoE Trade 中轻量但高频实用的功能:理解@last的两条占位规则即可覆盖「回复密语、拉人、交易、藏身处」四大高频操作,而结合配置模型与按键注入的实现链路,也能让你在热键失效、发送内容异常时快速定位问题。

【免费下载链接】awakened-poe-trade

:heavy_dollar_sign: :hammer: Path of Exile app for price checking

项目地址:https://gitcode.com/gh_mirrors/aw/awakened-poe-trade
点击查看免费下载
上一篇:终极指南:如何用SPT-AKI存档编辑器完全掌控你的离线塔科夫世界
下一篇:终极Navicat重置指南:Mac版Navicat16/17无限试用完整解决方案

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表