Avoid sending ephemeral messages from Discord
This commit is contained in:
		| @@ -244,6 +244,8 @@ module.exports = { | |||||||
| 			if (row) return // The message was sent by the bridge's own webhook on discord. We don't want to reflect this back, so just drop it. | 			if (row) return // The message was sent by the bridge's own webhook on discord. We don't want to reflect this back, so just drop it. | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | 		if (dUtils.isEphemeralMessage(message)) return // Ephemeral messages are for the eyes of the receiver only! | ||||||
|  |  | ||||||
| 		const {affected, row} = await speedbump.maybeDoSpeedbump(message.channel_id, message.id) | 		const {affected, row} = await speedbump.maybeDoSpeedbump(message.channel_id, message.id) | ||||||
| 		if (affected) return | 		if (affected) return | ||||||
|  |  | ||||||
| @@ -262,6 +264,8 @@ module.exports = { | |||||||
| 			if (row) return // The message was sent by the bridge's own webhook on discord. We don't want to reflect this back, so just drop it. | 			if (row) return // The message was sent by the bridge's own webhook on discord. We don't want to reflect this back, so just drop it. | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | 		if (dUtils.isEphemeralMessage(data)) return // Ephemeral messages are for the eyes of the receiver only! | ||||||
|  |  | ||||||
| 		// Edits need to go through the speedbump as well. If the message is delayed but the edit isn't, we don't have anything to edit from. | 		// Edits need to go through the speedbump as well. If the message is delayed but the edit isn't, we don't have anything to edit from. | ||||||
| 		const {affected, row} = await speedbump.maybeDoSpeedbump(data.channel_id, data.id) | 		const {affected, row} = await speedbump.maybeDoSpeedbump(data.channel_id, data.id) | ||||||
| 		if (affected) return | 		if (affected) return | ||||||
|   | |||||||
| @@ -101,6 +101,14 @@ function isWebhookMessage(message) { | |||||||
| 	return message.webhook_id && !isInteractionResponse | 	return message.webhook_id && !isInteractionResponse | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Ephemeral messages can be generated if a slash command is attached to the same bot that OOYE is running on | ||||||
|  |  * @param {DiscordTypes.APIMessage} message | ||||||
|  |  */ | ||||||
|  | function isEphemeralMessage(message) { | ||||||
|  | 	return message.flags & (1 << 6); | ||||||
|  | } | ||||||
|  |  | ||||||
| /** @param {string} snowflake */ | /** @param {string} snowflake */ | ||||||
| function snowflakeToTimestampExact(snowflake) { | function snowflakeToTimestampExact(snowflake) { | ||||||
| 	return Number(BigInt(snowflake) >> 22n) + EPOCH | 	return Number(BigInt(snowflake) >> 22n) + EPOCH | ||||||
| @@ -116,5 +124,6 @@ module.exports.hasPermission = hasPermission | |||||||
| module.exports.hasSomePermissions = hasSomePermissions | module.exports.hasSomePermissions = hasSomePermissions | ||||||
| module.exports.hasAllPermissions = hasAllPermissions | module.exports.hasAllPermissions = hasAllPermissions | ||||||
| module.exports.isWebhookMessage = isWebhookMessage | module.exports.isWebhookMessage = isWebhookMessage | ||||||
|  | module.exports.isEphemeralMessage = isEphemeralMessage | ||||||
| module.exports.snowflakeToTimestampExact = snowflakeToTimestampExact | module.exports.snowflakeToTimestampExact = snowflakeToTimestampExact | ||||||
| module.exports.timestampToSnowflakeInexact = timestampToSnowflakeInexact | module.exports.timestampToSnowflakeInexact = timestampToSnowflakeInexact | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Cadence Ember
					Cadence Ember