diff --git a/package.json b/package.json index 09fc0e7..974d97b 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@adonisjs/env": "^1.0.18", "@adonisjs/logger": "^2.1.0", "@adonisjs/validator": "^7.4.0", - "befriendlier-shared": "github:kararty/BeFriendlier-Shared#semver:6.0.1", + "befriendlier-shared": "github:kararty/BeFriendlier-Shared#dev", "dank-twitch-irc": "github:kararty/dank-twitch-irc", "p-queue": "^6.6.0", "ws": "^7.3.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82ae90c..a50713b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,7 +2,7 @@ dependencies: '@adonisjs/env': 1.0.18 '@adonisjs/logger': 2.1.0 '@adonisjs/validator': 7.4.0 - befriendlier-shared: github.com/kararty/BeFriendlier-Shared/98c9dacbf999197732ee134e5e5f761306a6a88c + befriendlier-shared: github.com/kararty/BeFriendlier-Shared/2c39a5eae5e5bec911597a7558b12b4c3f18facd dank-twitch-irc: github.com/kararty/dank-twitch-irc/8dcdac2a6ee0a273a1d0490c59a82bf38e29569c p-queue: 6.6.0 ws: 7.3.1_5290a7aab7631971258e1bd11475725e @@ -536,7 +536,7 @@ packages: /cacheable-request/7.0.1: dependencies: clone-response: 1.0.2 - get-stream: 5.1.0 + get-stream: 5.2.0 http-cache-semantics: 4.1.0 keyv: 4.0.1 lowercase-keys: 2.0.0 @@ -1547,14 +1547,14 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= - /get-stream/5.1.0: + /get-stream/5.2.0: dependencies: pump: 3.0.0 dev: false engines: node: '>=8' resolution: - integrity: sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== /git-raw-commits/2.0.0: dependencies: dargs: 4.1.0 @@ -1620,7 +1620,7 @@ packages: node: '>=8' resolution: integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - /got/11.5.1: + /got/11.5.2: dependencies: '@sindresorhus/is': 3.1.0 '@szmarczak/http-timer': 4.0.5 @@ -1637,7 +1637,7 @@ packages: engines: node: '>=10.19.0' resolution: - integrity: sha512-reQEZcEBMTGnujmQ+Wm97mJs/OK6INtO6HmLI+xt3+9CvnRwWjXutUvb2mqr+Ao4Lu05Rx6+udx9sOQAmExMxA== + integrity: sha512-yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww== /graceful-fs/4.2.4: dev: true resolution: @@ -3580,15 +3580,15 @@ packages: node: '>=6' resolution: integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - github.com/kararty/BeFriendlier-Shared/98c9dacbf999197732ee134e5e5f761306a6a88c: + github.com/kararty/BeFriendlier-Shared/2c39a5eae5e5bec911597a7558b12b4c3f18facd: dependencies: '@adonisjs/logger': 2.1.0 - got: 11.5.1 + got: 11.5.2 dev: false name: befriendlier-shared resolution: - tarball: 'https://codeload.github.com/kararty/BeFriendlier-Shared/tar.gz/98c9dacbf999197732ee134e5e5f761306a6a88c' - version: 6.0.1 + tarball: 'https://codeload.github.com/kararty/BeFriendlier-Shared/tar.gz/2c39a5eae5e5bec911597a7558b12b4c3f18facd' + version: 6.2.0 github.com/kararty/dank-twitch-irc/8dcdac2a6ee0a273a1d0490c59a82bf38e29569c: dependencies: '@types/debug': 4.1.5 @@ -3620,7 +3620,7 @@ specifiers: '@typescript-eslint/eslint-plugin': ^3.7.1 '@typescript-eslint/parser': ^3.7.1 adonis-preset-ts: ^1.0.4 - befriendlier-shared: 'github:kararty/BeFriendlier-Shared#semver:6.0.1' + befriendlier-shared: 'github:kararty/BeFriendlier-Shared#dev' bufferutil: ^4.0.1 copyfiles: ^2.3.0 dank-twitch-irc: 'github:kararty/dank-twitch-irc' diff --git a/src/Twitch.ts b/src/Twitch.ts index 281b428..f5c0b30 100644 --- a/src/Twitch.ts +++ b/src/Twitch.ts @@ -2,7 +2,6 @@ import { Logger } from '@adonisjs/logger/build/standalone' import { BASE, MessageType, More, NameAndId, TwitchAuth } from 'befriendlier-shared' import { - AlternateMessageModifier, ChatClient, ClearchatMessage, ClearmsgMessage, @@ -86,6 +85,9 @@ export default class Client { private readonly generalQueue = new PQueue({ concurrency: 1 }) + private readonly invisibleSuffix = '\u{000e0000}' + private addInvisibleSuffix = true + public readonly api: TwitchAuth public readonly packageJSON: any public token: Token @@ -130,7 +132,9 @@ export default class Client { } public sendMessage (channelName: string, username: string, message: string) { - this.ircClient.say(channelName, `@${username}, ${message}`) + this.addInvisibleSuffix = !this.addInvisibleSuffix // Flip + + this.ircClient.say(channelName, `@${username}, ${message}${this.addInvisibleSuffix ? this.invisibleSuffix : ''}`) .catch(error => this.logger.error({ err: error }, 'Twitch.sendMessage()')) } @@ -197,7 +201,6 @@ export default class Client { }, }) - this.ircClient.use(new AlternateMessageModifier(this.ircClient)) this.ircClient.use(new SlowModeRateLimiter(this.ircClient)) this.ircClient.use(new PrivmsgMessageRateLimiter(this.ircClient))