diff --git a/Client.html b/Client.html index b2c28aa..3a3da89 100644 --- a/Client.html +++ b/Client.html @@ -1,3 +1,3 @@ Class: Client
On this page

Client

Client 类型代表自身客户端。

Constructor

new Client()

Properties
NameTypeDescription
#friendsArray

客户端好友列表。

Methods

(static) getFriends() → {Array}

获取客户端好友列表。

Returns:

客户端好友列表。

Type: 
Array

(async, static) getUid() → {String}

获取客户端登录账号的 uid

Returns:

客户端登录账号的 uid

Type: 
String

(async, static) getUin() → {String}

获取客户端登录账号的 qq号

Returns:

客户端登录账号的 qq号

Type: 
String
Euphony
\ No newline at end of file +
On this page

Client

Client 类型代表自身客户端。

Constructor

new Client()

Properties
NameTypeDescription
#friendsArray

客户端好友列表。

Methods

(static) getFriends() → {Array}

获取客户端好友列表。

Returns:

客户端好友列表。

Type: 
Array

(async, static) getUid() → {String}

获取客户端登录账号的 uid

Returns:

客户端登录账号的 uid

Type: 
String

(async, static) getUin() → {String}

获取客户端登录账号的 qq号

Returns:

客户端登录账号的 qq号

Type: 
String
Euphony
\ No newline at end of file diff --git a/Friend.html b/Friend.html index 7b29666..a653ed5 100644 --- a/Friend.html +++ b/Friend.html @@ -1,3 +1,3 @@ Class: Friend
On this page

Friend

Friend 类型代表好友。

Constructor

new Friend(uin, uid)

构造一个 qq号uinuiduid 的好友。

Parameters:
NameTypeDescription
uinString

好友的 qq号

uidString

好友的 uid

Properties
NameTypeDescription
#uidString

好友的 uid

Methods

getUid() → {String}

返回该好友的 #uid 属性。

Returns:

该好友的 #uid 属性。

Type: 
String

toPeer() → {Native}

构造并返回该好友所对应的 peer 对象。

Returns:

该好友所对应的 peer 对象。

Type: 
Native

(static) fromUid(uid) → {Friend}

通过 uid 来获取一个好友。

Parameters:
NameTypeDescription
uidString

要获取的好友的 uid

Returns:

获取到的好友。

Type: 
Friend

(static) fromUin(uin) → {Friend}

通过 qq号 来获取一个好友。

Parameters:
NameTypeDescription
uinString

要获取的好友的 qq号

Returns:

获取到的好友。

Type: 
Friend

(static) getChatType() → {Number}

返回该联系人类型所对应的 chatType,值为 1

Returns:

该联系人类型所对应的 chatType,值为 1

Type: 
Number
Euphony
\ No newline at end of file +
On this page

Friend

Friend 类型代表好友。

Constructor

new Friend(uin, uid)

构造一个 qq号uinuiduid 的好友。 注意:在任何情况下,都不应该直接使用该构造器来构造好友。相反地,你应该使用 Friend.make(uin, uid) 函数来构造好友。

Parameters:
NameTypeDescription
uinString

好友的 qq号

uidString

好友的 uid

Properties
NameTypeDescription
#uidString

好友的 uid

Methods

getUid() → {String}

返回该好友的 #uid 属性。

Returns:

该好友的 #uid 属性。

Type: 
String

toPeer() → {Native}

构造并返回该好友所对应的 peer 对象。

Returns:

该好友所对应的 peer 对象。

Type: 
Native

(static) fromUid(uid) → {Friend}

通过 uid 来获取一个好友。

Parameters:
NameTypeDescription
uidString

要获取的好友的 uid

Returns:

获取到的好友。

Type: 
Friend

(static) fromUin(uin) → {Friend}

通过 qq号 来获取一个好友。

Parameters:
NameTypeDescription
uinString

要获取的好友的 qq号

Returns:

获取到的好友。

Type: 
Friend

(static) getChatType() → {Number}

返回该联系人类型所对应的 chatType,值为 1

Returns:

该联系人类型所对应的 chatType,值为 1

Type: 
Number

(static) make(uin, uid) → {Friend}

构造一个 qq号uinuiduid 的好友。 该函数构造出的好友全局只有一个实例,相同的 uinuid 将会返回相同的对象。 在任何情况下,都应该使用该函数来构造好友,而非直接使用构造器。

Parameters:
NameTypeDescription
uinString

好友的 qq号

uidString

好友的 uid

Returns:

构造出的好友。

Type: 
Friend
Euphony
\ No newline at end of file diff --git a/client_client.js.html b/client_client.js.html index 36ddc1c..0fc08ab 100644 --- a/client_client.js.html +++ b/client_client.js.html @@ -1,6 +1,6 @@ Source: client/client.js
On this page

client_client.js

import { Cache } from '../index.js';
+    
On this page

client_client.js

import { Cache, Friend } from '../index.js';
 
 /**
  * `Client` 类型代表自身客户端。
@@ -8,11 +8,17 @@
  */
 class Client {
 
-    static #friends;
+    static #friends = [];
 
     static {
         euphonyNative.subscribeEvent('onBuddyListChange', payload => {
-            Client.#friends = payload.data;
+            const friends = [];
+            for (const category of payload.data) {
+                for (const friend of category.buddyList) {
+                    friends.push(Friend.make(friend.uin, friend.uid));
+                }
+            }
+            Client.#friends = friends;
         });
     }
 
diff --git a/contact_contact.js.html b/contact_contact.js.html
index e433d88..55308ea 100644
--- a/contact_contact.js.html
+++ b/contact_contact.js.html
@@ -23,7 +23,7 @@
         }
         switch (contact.chatType) {
             case Friend.getChatType():
-                return new Friend(uin, uid);
+                return Friend.make(uin, uid);
             case Group.getChatType():
                 return new Group(uin);
         }
diff --git a/contact_friend.js.html b/contact_friend.js.html
index 778b81f..0b899a4 100644
--- a/contact_friend.js.html
+++ b/contact_friend.js.html
@@ -1,6 +1,6 @@
 Source: contact/friend.js
On this page

contact_friend.js

import { Contact } from '../index.js';
+    
On this page

contact_friend.js

import { Cache, Contact } from '../index.js';
 
 /**
  * `Friend` 类型代表好友。
@@ -18,6 +18,18 @@
         return 1;
     }
 
+    /**
+     * 构造一个 **qq号** 为 `uin`,**uid** 为 `uid` 的好友。
+     * 该函数构造出的好友全局只有一个实例,相同的 `uin` 和 `uid` 将会返回相同的对象。
+     * 在任何情况下,都应该使用该函数来构造好友,而非直接使用构造器。
+     * @param { String } uin 好友的 **qq号**。
+     * @param { String } uid 好友的 **uid**。
+     * @returns { Friend } 构造出的好友。
+     */
+    static make(uin, uid) {
+        return Cache.withCache(`friend-${ uin }-${ uid }`, () => new Friend(uin, uid));
+    }
+
     /**
      * 通过 **qq号** 来获取一个好友。
      * @param { String } uin 要获取的好友的 **qq号**。
@@ -28,7 +40,7 @@
         if (!uid) {
             return null;
         }
-        return new Friend(uin, uid);
+        return Friend.make(uin, uid);
     }
 
     /**
@@ -41,11 +53,12 @@
         if (!uin) {
             return null;
         }
-        return new Friend(uin, uid);
+        return Friend.make(uin, uid);
     }
 
     /**
      * 构造一个 **qq号** 为 `uin`,**uid** 为 `uid` 的好友。
+     * 注意:在任何情况下,都不应该直接使用该构造器来构造好友。相反地,你应该使用 `Friend.make(uin, uid)` 函数来构造好友。
      * @param { String } uin 好友的 **qq号**。
      * @param { String } uid 好友的 **uid**。
      */
diff --git a/data/search.json b/data/search.json
index e94a81e..9178641 100644
--- a/data/search.json
+++ b/data/search.json
@@ -1 +1 @@
-{"list":[{"title":"At","link":"At","description":"

构造一个 qq号uinuiduid@群聊成员 消息元素。

"},{"title":"At#getUid","link":"getUid","description":"

返回该消息元素的 #uid 属性。

"},{"title":"At#getUin","link":"getUin","description":"

返回该消息元素的 #uin 属性。

"},{"title":"At#toElement","link":"toElement","description":"

构造并返回该消息元素所对应的 element 对象。

"},{"title":"At.fromUid","link":"fromUid","description":"

通过 uid 来构造一个 @群聊成员 元素。

"},{"title":"At.fromUin","link":"fromUin","description":"

通过 qq号 来构造一个 @群聊成员 元素。

"},{"title":"At.getElementType","link":"getElementType","description":"

返回该消息元素所对应的 elementType,值为 1

"},{"title":"AtAll","link":"AtAll","description":"

构造一个显示为 content@全体成员 消息元素。

"},{"title":"AtAll#getContent","link":"getContent","description":"

返回该消息元素的 #content 属性。

"},{"title":"AtAll#toElement","link":"toElement","description":"

构造并返回该消息元素所对应的 element 对象。

"},{"title":"AtAll.getElementType","link":"getElementType","description":"

返回该消息元素所对应的 elementType,值为 1

"},{"title":"Audio","link":"Audio","description":"

构造一个路径为 path,显示时长为 duration 的语音消息元素。\n若不传入 duration,则 toElement 函数会尝试自动计算语音时长(可能完全不准确)。

"},{"title":"Audio#getDuration","link":"getDuration","description":"

返回该消息元素的 #duration 属性。

"},{"title":"Audio#getPath","link":"getPath","description":"

返回该消息元素的 #path 属性。

"},{"title":"Audio#toElement","link":"toElement","description":"

构造并返回该消息元素所对应的 element 对象。

"},{"title":"Audio.getElementType","link":"getElementType","description":"

返回该消息元素所对应的 elementType,值为 4

"},{"title":"Cache","link":"Cache"},{"title":"Cache.withCache","link":"withCache","description":"

defaultSupplier 返回的数据以 key 为键缓存,并返回数据。

"},{"title":"Cache.withCacheAsync","link":"withCacheAsync","description":"

defaultSupplier 返回的数据以 key 为键缓存,并返回数据。

"},{"title":"Client","link":"Client"},{"title":"Client.getFriends","link":"getFriends","description":"

获取客户端好友列表。

"},{"title":"Client.getUid","link":"getUid","description":"

获取客户端登录账号的 uid

"},{"title":"Client.getUin","link":"getUin","description":"

获取客户端登录账号的 qq号

"},{"title":"Contact","link":"Contact","description":"

仅供子类调用

"},{"title":"Contact#getId","link":"getId","description":"

返回该联系人的 #id 属性。

"},{"title":"Contact#sendMessage","link":"sendMessage","description":"

向该联系人发送一条消息,并返回其在服务器上的来源。

"},{"title":"Contact#toPeer","link":"toPeer","description":"

(抽象函数,由子类实现)\n构造并返回该联系人所对应的 peer 对象。

"},{"title":"Contact.getChatType","link":"getChatType","description":"

(抽象函数,由子类实现)\n返回该联系人类型所对应的 chatType

"},{"title":"Contact.getCurrentContact","link":"getCurrentContact","description":"

返回当前窗口上正在进行的聊天对象。如果没有聊天对象,或聊天对象类型不受支持,则返回 null

"},{"title":"EventChannel","link":"EventChannel"},{"title":"EventChannel#call","link":"call","description":"

触发事件 eventName 并传入参数 args

"},{"title":"EventChannel#subscribeEvent","link":"subscribeEvent","description":"

为事件 eventName 添加一个 handler 处理器。

"},{"title":"EventChannel#unsubscribeEvent","link":"unsubscribeEvent","description":"

移除事件 eventNamehandler 处理器。

"},{"title":"EventChannel.fromNative","link":"fromNative","description":"

构造并返回一个带有基础事件触发器的事件通道。

"},{"title":"Friend","link":"Friend","description":"

构造一个 qq号uinuiduid 的好友。

"},{"title":"Friend#getUid","link":"getUid","description":"

返回该好友的 #uid 属性。

"},{"title":"Friend#toPeer","link":"toPeer","description":"

构造并返回该好友所对应的 peer 对象。

"},{"title":"Friend.fromUid","link":"fromUid","description":"

通过 uid 来获取一个好友。

"},{"title":"Friend.fromUin","link":"fromUin","description":"

通过 qq号 来获取一个好友。

"},{"title":"Friend.getChatType","link":"getChatType","description":"

返回该联系人类型所对应的 chatType,值为 1

"},{"title":"Group","link":"Group","description":"

构造一个 群号id 的群聊。

"},{"title":"Group#toPeer","link":"toPeer","description":"

构造并返回该群聊所对应的 peer 对象。

"},{"title":"Group.getChatType","link":"getChatType","description":"

返回该联系人类型所对应的 chatType,值为 2

"},{"title":"Image","link":"Image","description":"

构造一个路径为 path 的图片消息元素。

"},{"title":"Image#getPath","link":"getPath","description":"

返回该消息元素的 #path 属性。

"},{"title":"Image#toElement","link":"toElement","description":"

构造并返回该消息元素所对应的 element 对象。

"},{"title":"Image.getElementType","link":"getElementType","description":"

返回该消息元素所对应的 elementType,值为 2

"},{"title":"MessageChain","link":"MessageChain","description":"

构造一个来源为 source 的消息链。\n若 source 参数为空,则构造出的对象代表本地消息链。

"},{"title":"MessageChain#append","link":"append","description":"

将一个消息元素添加至该消息链中。

"},{"title":"MessageChain#appendNative","link":"appendNative","description":"

将一个消息元素添加至该消息链中。

"},{"title":"MessageChain#appendNatives","link":"appendNatives","description":"

将一个消息链添加至该消息链中。

"},{"title":"MessageChain#getSource","link":"getSource","description":"

返回该消息链的 #source 属性。\n仅当该消息链是服务器消息时该函数才有意义。

"},{"title":"MessageChain#pop","link":"pop","description":"

移除该消息链中最后一个消息元素。

"},{"title":"MessageChain#remove","link":"remove","description":"

移除该消息链中指定位置的消息元素。

"},{"title":"MessageChain#toElements","link":"toElements","description":"

构造并返回该消息链所对应的 elements 对象。

"},{"title":"MessageSource","link":"MessageSource","description":"

通过 msgId 和联系人构造一个消息来源。

"},{"title":"MessageSource#getContact","link":"getContact","description":"

返回该消息来源的 #contact 属性。

"},{"title":"MessageSource#getMsgId","link":"getMsgId","description":"

返回该消息来源的 #msgId 属性。

"},{"title":"MessageSource#recall","link":"recall","description":"

撤回该消息来源所代表的消息。

"},{"title":"PlainText","link":"PlainText","description":"

构造一个内容为 content 的纯文本消息。

"},{"title":"PlainText#getContent","link":"getContent","description":"

返回该消息元素的 #content 属性。

"},{"title":"PlainText#toElement","link":"toElement","description":"

构造并返回该消息元素所对应的 element 对象。

"},{"title":"PlainText.getElementType","link":"getElementType","description":"

返回该消息元素所对应的 elementType,值为 1

"},{"title":"Raw","link":"Raw","description":"

构造一个代表 element 的原生消息元素。

"},{"title":"Raw#getElement","link":"getElement","description":"

返回该消息元素的 #element 属性。

"},{"title":"Raw#toElement","link":"toElement","description":"

返回该消息元素所对应的 element 对象。

"},{"title":"SingleMessage","link":"SingleMessage"},{"title":"SingleMessage#toElement","link":"toElement","description":"

(抽象函数,由子类实现)\n构造并返回该消息元素所对应的 element 对象。

"},{"title":"SingleMessage.fromNative","link":"fromNative","description":"

从原生消息元素构造出一个 SingleMessage 对象

"},{"title":"SingleMessage.getElementType","link":"getElementType","description":"

(抽象函数,由子类实现)\n返回该消息元素所对应的 elementType。\n特别地, Raw 类型并不含有该静态函数。

"},{"title":"convertUidToUin","link":"convertUidToUin","description":"

获取好友 uid 代表的 qq号

"},{"title":"convertUinToUid","link":"convertUinToUid","description":"

获取好友 uin 代表的 uid

"},{"title":"invokeNative","link":"invokeNative","description":"

调用一个qq底层函数,并返回函数返回值。

"},{"title":"subscribeEvent","link":"subscribeEvent","description":"

为qq底层事件 cmdName 添加 handler 处理器。

"},{"title":"unsubscribeEvent","link":"unsubscribeEvent","description":"

移除qq底层事件的 handler 处理器。\n请注意,handler 并不是传入 subscribeEvent 的处理器,而是其返回的新处理器。

"}]} \ No newline at end of file +{"list":[{"title":"At","link":"At","description":"

构造一个 qq号uinuiduid@群聊成员 消息元素。

"},{"title":"At#getUid","link":"getUid","description":"

返回该消息元素的 #uid 属性。

"},{"title":"At#getUin","link":"getUin","description":"

返回该消息元素的 #uin 属性。

"},{"title":"At#toElement","link":"toElement","description":"

构造并返回该消息元素所对应的 element 对象。

"},{"title":"At.fromUid","link":"fromUid","description":"

通过 uid 来构造一个 @群聊成员 元素。

"},{"title":"At.fromUin","link":"fromUin","description":"

通过 qq号 来构造一个 @群聊成员 元素。

"},{"title":"At.getElementType","link":"getElementType","description":"

返回该消息元素所对应的 elementType,值为 1

"},{"title":"AtAll","link":"AtAll","description":"

构造一个显示为 content@全体成员 消息元素。

"},{"title":"AtAll#getContent","link":"getContent","description":"

返回该消息元素的 #content 属性。

"},{"title":"AtAll#toElement","link":"toElement","description":"

构造并返回该消息元素所对应的 element 对象。

"},{"title":"AtAll.getElementType","link":"getElementType","description":"

返回该消息元素所对应的 elementType,值为 1

"},{"title":"Audio","link":"Audio","description":"

构造一个路径为 path,显示时长为 duration 的语音消息元素。\n若不传入 duration,则 toElement 函数会尝试自动计算语音时长(可能完全不准确)。

"},{"title":"Audio#getDuration","link":"getDuration","description":"

返回该消息元素的 #duration 属性。

"},{"title":"Audio#getPath","link":"getPath","description":"

返回该消息元素的 #path 属性。

"},{"title":"Audio#toElement","link":"toElement","description":"

构造并返回该消息元素所对应的 element 对象。

"},{"title":"Audio.getElementType","link":"getElementType","description":"

返回该消息元素所对应的 elementType,值为 4

"},{"title":"Cache","link":"Cache"},{"title":"Cache.withCache","link":"withCache","description":"

defaultSupplier 返回的数据以 key 为键缓存,并返回数据。

"},{"title":"Cache.withCacheAsync","link":"withCacheAsync","description":"

defaultSupplier 返回的数据以 key 为键缓存,并返回数据。

"},{"title":"Client","link":"Client"},{"title":"Client.getFriends","link":"getFriends","description":"

获取客户端好友列表。

"},{"title":"Client.getUid","link":"getUid","description":"

获取客户端登录账号的 uid

"},{"title":"Client.getUin","link":"getUin","description":"

获取客户端登录账号的 qq号

"},{"title":"Contact","link":"Contact","description":"

仅供子类调用

"},{"title":"Contact#getId","link":"getId","description":"

返回该联系人的 #id 属性。

"},{"title":"Contact#sendMessage","link":"sendMessage","description":"

向该联系人发送一条消息,并返回其在服务器上的来源。

"},{"title":"Contact#toPeer","link":"toPeer","description":"

(抽象函数,由子类实现)\n构造并返回该联系人所对应的 peer 对象。

"},{"title":"Contact.getChatType","link":"getChatType","description":"

(抽象函数,由子类实现)\n返回该联系人类型所对应的 chatType

"},{"title":"Contact.getCurrentContact","link":"getCurrentContact","description":"

返回当前窗口上正在进行的聊天对象。如果没有聊天对象,或聊天对象类型不受支持,则返回 null

"},{"title":"EventChannel","link":"EventChannel"},{"title":"EventChannel#call","link":"call","description":"

触发事件 eventName 并传入参数 args

"},{"title":"EventChannel#subscribeEvent","link":"subscribeEvent","description":"

为事件 eventName 添加一个 handler 处理器。

"},{"title":"EventChannel#unsubscribeEvent","link":"unsubscribeEvent","description":"

移除事件 eventNamehandler 处理器。

"},{"title":"EventChannel.fromNative","link":"fromNative","description":"

构造并返回一个带有基础事件触发器的事件通道。

"},{"title":"Friend","link":"Friend","description":"

构造一个 qq号uinuiduid 的好友。\n注意:在任何情况下,都不应该直接使用该构造器来构造好友。相反地,你应该使用 Friend.make(uin, uid) 函数来构造好友。

"},{"title":"Friend#getUid","link":"getUid","description":"

返回该好友的 #uid 属性。

"},{"title":"Friend#toPeer","link":"toPeer","description":"

构造并返回该好友所对应的 peer 对象。

"},{"title":"Friend.fromUid","link":"fromUid","description":"

通过 uid 来获取一个好友。

"},{"title":"Friend.fromUin","link":"fromUin","description":"

通过 qq号 来获取一个好友。

"},{"title":"Friend.getChatType","link":"getChatType","description":"

返回该联系人类型所对应的 chatType,值为 1

"},{"title":"Friend.make","link":"make","description":"

构造一个 qq号uinuiduid 的好友。\n该函数构造出的好友全局只有一个实例,相同的 uinuid 将会返回相同的对象。\n在任何情况下,都应该使用该函数来构造好友,而非直接使用构造器。

"},{"title":"Group","link":"Group","description":"

构造一个 群号id 的群聊。

"},{"title":"Group#toPeer","link":"toPeer","description":"

构造并返回该群聊所对应的 peer 对象。

"},{"title":"Group.getChatType","link":"getChatType","description":"

返回该联系人类型所对应的 chatType,值为 2

"},{"title":"Image","link":"Image","description":"

构造一个路径为 path 的图片消息元素。

"},{"title":"Image#getPath","link":"getPath","description":"

返回该消息元素的 #path 属性。

"},{"title":"Image#toElement","link":"toElement","description":"

构造并返回该消息元素所对应的 element 对象。

"},{"title":"Image.getElementType","link":"getElementType","description":"

返回该消息元素所对应的 elementType,值为 2

"},{"title":"MessageChain","link":"MessageChain","description":"

构造一个来源为 source 的消息链。\n若 source 参数为空,则构造出的对象代表本地消息链。

"},{"title":"MessageChain#append","link":"append","description":"

将一个消息元素添加至该消息链中。

"},{"title":"MessageChain#appendNative","link":"appendNative","description":"

将一个消息元素添加至该消息链中。

"},{"title":"MessageChain#appendNatives","link":"appendNatives","description":"

将一个消息链添加至该消息链中。

"},{"title":"MessageChain#getSource","link":"getSource","description":"

返回该消息链的 #source 属性。\n仅当该消息链是服务器消息时该函数才有意义。

"},{"title":"MessageChain#pop","link":"pop","description":"

移除该消息链中最后一个消息元素。

"},{"title":"MessageChain#remove","link":"remove","description":"

移除该消息链中指定位置的消息元素。

"},{"title":"MessageChain#toElements","link":"toElements","description":"

构造并返回该消息链所对应的 elements 对象。

"},{"title":"MessageSource","link":"MessageSource","description":"

通过 msgId 和联系人构造一个消息来源。

"},{"title":"MessageSource#getContact","link":"getContact","description":"

返回该消息来源的 #contact 属性。

"},{"title":"MessageSource#getMsgId","link":"getMsgId","description":"

返回该消息来源的 #msgId 属性。

"},{"title":"MessageSource#recall","link":"recall","description":"

撤回该消息来源所代表的消息。

"},{"title":"PlainText","link":"PlainText","description":"

构造一个内容为 content 的纯文本消息。

"},{"title":"PlainText#getContent","link":"getContent","description":"

返回该消息元素的 #content 属性。

"},{"title":"PlainText#toElement","link":"toElement","description":"

构造并返回该消息元素所对应的 element 对象。

"},{"title":"PlainText.getElementType","link":"getElementType","description":"

返回该消息元素所对应的 elementType,值为 1

"},{"title":"Raw","link":"Raw","description":"

构造一个代表 element 的原生消息元素。

"},{"title":"Raw#getElement","link":"getElement","description":"

返回该消息元素的 #element 属性。

"},{"title":"Raw#toElement","link":"toElement","description":"

返回该消息元素所对应的 element 对象。

"},{"title":"SingleMessage","link":"SingleMessage"},{"title":"SingleMessage#toElement","link":"toElement","description":"

(抽象函数,由子类实现)\n构造并返回该消息元素所对应的 element 对象。

"},{"title":"SingleMessage.fromNative","link":"fromNative","description":"

从原生消息元素构造出一个 SingleMessage 对象

"},{"title":"SingleMessage.getElementType","link":"getElementType","description":"

(抽象函数,由子类实现)\n返回该消息元素所对应的 elementType。\n特别地, Raw 类型并不含有该静态函数。

"},{"title":"convertUidToUin","link":"convertUidToUin","description":"

获取好友 uid 代表的 qq号

"},{"title":"convertUinToUid","link":"convertUinToUid","description":"

获取好友 uin 代表的 uid

"},{"title":"invokeNative","link":"invokeNative","description":"

调用一个qq底层函数,并返回函数返回值。

"},{"title":"subscribeEvent","link":"subscribeEvent","description":"

为qq底层事件 cmdName 添加 handler 处理器。

"},{"title":"unsubscribeEvent","link":"unsubscribeEvent","description":"

移除qq底层事件的 handler 处理器。\n请注意,handler 并不是传入 subscribeEvent 的处理器,而是其返回的新处理器。

"}]} \ No newline at end of file diff --git a/event_event_channel.js.html b/event_event_channel.js.html index 6abba26..e4e9f25 100644 --- a/event_event_channel.js.html +++ b/event_event_channel.js.html @@ -22,7 +22,7 @@ if (!msg) { return; } - const contact = msg.chatType == 1 ? new Friend(msg.peerUin, msg.peerUid) : (msg.chatType == 2 ? new Group(msg.peerUin) : null); + const contact = msg.chatType == 1 ? Friend.make(msg.peerUin, msg.peerUid) : (msg.chatType == 2 ? new Group(msg.peerUin) : null); const source = new MessageSource(msg.msgId, contact); const messageChain = new MessageChain(source); messageChain.appendNatives(msg.elements); @@ -36,7 +36,7 @@ if (!msgRecord) { return; } - const contact = msgRecord.chatType == 1 ? new Friend(msgRecord.peerUin, msgRecord.peerUid) : (msgRecord.chatType == 2 ? new Group(msgRecord.peerUin) : null); + const contact = msgRecord.chatType == 1 ? Friend.make(msgRecord.peerUin, msgRecord.peerUid) : (msgRecord.chatType == 2 ? new Group(msgRecord.peerUin) : null); const source = new MessageSource(msgRecord.msgId, contact); const messageChain = new MessageChain(source); messageChain.appendNatives(msgRecord.elements); diff --git a/index.html b/index.html index 4969e8c..c17e2aa 100644 --- a/index.html +++ b/index.html @@ -6,4 +6,9 @@

具体有哪些可用的 API 可以在下文查看。

示例

import { Group, AtAll, PlainText, MessageChain } from '../LiteLoaderQQNT-Euphony/src/index.js';
 const group = new Group(10000);
 group.sendMessage(new MessageChain().append(new AtAll('Content')).append(new PlainText('Hello World!')));
-

这段代码会向 群号10000 的群发送一条消息,其中包含一个显示为 Content 的@全体成员,以及一个内容为 Hello World! 的纯文本。

说明

无论使用以上哪种方法,都必须添加 Euphony 本身至 LiteLoaderQQNT 中作为插件加载。

三. API介绍

你可以在这里查看所有API介绍:API文档

请注意,由于 Euphony 目前正处于开发初期,各 API 尚未完全实现,也并不稳定,很可能在将来发生很大变化。

1. Native

Euphonypreload.js 中导出了 euphonyNative 对象用于一些与 qq 底层交互的操作。 你可以在 API文档 中的 Global 部分查看详情介绍。

2. 基础事件

(1). receive-message

该事件触发于当qq接收到新消息时。 事件会传入一个 MessageChain 作为参数,表示接收到的新消息。

(2). send-message

该事件触发于当qq发送出新消息时。 事件会传入一个 MessageChain 作为参数,表示发送出的新消息。 请注意,该事件在本地消息显示发出后便会触发,而不是服务器收到发送请求后触发,可能存在消息发送失败依然触发该事件的情况,或消息还未发送出去便提前触发了该事件。因此,你无法直接在该事件触发后就去调用 MessageChain.getSource().recall() 等函数,因为此时消息还未被真正发送出去。

\ No newline at end of file +

这段代码会向 群号10000 的群发送一条消息,其中包含一个显示为 Content 的@全体成员,以及一个内容为 Hello World! 的纯文本。

说明

无论使用以上哪种方法,都必须添加 Euphony 本身至 LiteLoaderQQNT 中作为插件加载。

三. API介绍

你可以在这里查看所有API介绍:API文档

请注意,由于 Euphony 目前正处于开发初期,各 API 尚未完全实现,也并不稳定,很可能在将来发生很大变化。

1. Native

Euphonypreload.js 中导出了 euphonyNative 对象用于一些与 qq 底层交互的操作。 你可以在 API文档 中的 Global 部分查看详情介绍。

2. 基础事件

使用示例

import { EventChannel } from '../LiteLoaderQQNT-Euphony/src/index.js';
+const eventChannel = EventChannel.fromNative();
+eventChannel.subscribeEvent('receive-message', message => {
+    console.log(message);
+});
+

上面这段代码会监听 receive-message 事件,并输出事件参数。

(1). receive-message

该事件触发于当qq接收到新消息时。 事件会传入一个 MessageChain 作为参数,表示接收到的新消息。

(2). send-message

该事件触发于当qq发送出新消息时。 事件会传入一个 MessageChain 作为参数,表示发送出的新消息。 请注意,该事件在本地消息显示发出后便会触发,而不是服务器收到发送请求后触发,可能存在消息发送失败依然触发该事件的情况,或消息还未发送出去便提前触发了该事件。因此,你无法直接在该事件触发后就去调用 MessageChain.getSource().recall() 等函数,因为此时消息还未被真正发送出去。

\ No newline at end of file