-
-
Save Allvaa/0320f06ee793dc88e4e209d3ea9f6256 to your computer and use it in GitHub Desktop.
const { APIMessage, Structures } = require("discord.js"); | |
class ExtAPIMessage extends APIMessage { | |
resolveData() { | |
if (this.data) return this; | |
super.resolveData(); | |
const allowedMentions = this.options.allowedMentions || this.target.client.options.allowedMentions || {}; | |
if (allowedMentions.repliedUser !== undefined) { | |
if (this.data.allowed_mentions === undefined) this.data.allowed_mentions = {}; | |
Object.assign(this.data.allowed_mentions, { replied_user: allowedMentions.repliedUser }); | |
} | |
if (this.options.replyTo !== undefined) { | |
Object.assign(this.data, { message_reference: { message_id: this.options.replyTo.id } }); | |
} | |
return this; | |
} | |
} | |
class Message extends Structures.get("Message") { | |
inlineReply(content, options) { | |
return this.channel.send(ExtAPIMessage.create(this, content, options, { replyTo: this }).resolveData()); | |
} | |
edit(content, options) { | |
return super.edit(ExtAPIMessage.create(this, content, options).resolveData()); | |
} | |
} | |
Structures.extend("Message", () => Message); |
const { Client } = require("discord.js"); | |
require("./ExtendedMessage"); | |
const client = new Client({ | |
allowedMentions: { | |
// set repliedUser value to `false` to turn off the mention by default | |
repliedUser: true | |
} | |
}); | |
client.on("message", msg => { | |
if (msg.author.bot) return; | |
if (msg.content === "hi") { | |
msg.inlineReply("hello"); | |
} | |
}); | |
client.login("ur token"); |
updated. you guys must add the allowed mentions options like the inlineReply
one when editing messages 👀
Here's another bug;
-Create an embed;
-Send the embed with the { allowedMentions: { repliedUser: false } }
or { allowedMentions: { repliedUser: true } }
;
-And the bot is replying [object Object]
But without the options passed, the embed is correctly send
Here's another bug;
-Create an embed;
-Send the embed with the{ allowedMentions: { repliedUser: false } }
or{ allowedMentions: { repliedUser: true } }
;
-And the bot is replying[object Object]
But without the options passed, the embed is correctly send
it's a discord.js bug when passing the first parameter with embed and pass the 2nd parameter with options.
read this https://gist.github.com/Allvaa/0320f06ee793dc88e4e209d3ea9f6256#gistcomment-3661159
or you can make it default by changing the
true
tofalse
in
https://gist.github.com/Allvaa/0320f06ee793dc88e4e209d3ea9f6256#file-extendedmessage-js-L5
I am confused, there is no 'true' on that line. Has the code changed since you made this comment?
Found a solution to default mention settings!
// Add this to the '(this.options.allowedMentions || {}).repliedUser !== undefined' if statement
else {
// Changing replied_user to true will turn mentions on by default
this.data.allowed_mentions = { replied_user: false }
}
This allows you to change the default mention setting. If it's set to false, mentions will be off by default. If it's set to true, they will be on by default.
or you can make it default by changing the
true
tofalse
in
https://gist.github.com/Allvaa/0320f06ee793dc88e4e209d3ea9f6256#file-extendedmessage-js-L5I am confused, there is no 'true' on that line. Has the code changed since you made this comment?
oh, lol. sorry, that's a comment before the code was changed
Found a solution to default mention settings!
// Add this to the '(this.options.allowedMentions || {}).repliedUser !== undefined' if statement else { // Changing replied_user to true will turn mentions on by default this.data.allowed_mentions = { replied_user: false } }This allows you to change the default mention setting. If it's set to false, mentions will be off by default. If it's set to true, they will be on by default.
thanks! <3 but i prefer to use Object.assign
instead of assigning it directly, it just makes the this.data.allowed_mentions
overwritten and causes other mention settings to disappear
Hello, works great thanks a lot!
I was wondering if anyone knew a way to detect if a message is a reply and then get the message it is a reply to?
sorry for very late reply, i just saw the comment by now
discord.js has Message#reference, in the property you can get message id of the message is replying to
bang, extendedMessagenya taro dmn ?
folder event atau folder handler ?
can you add typings for that?
can you add typings for that?
declare module "discord.js" {
interface MessageMentionOptions {
repliedUser?: boolean;
}
interface Message {
inlineReply(
content: APIMessageContentResolvable | (MessageOptions & { split?: false }) | MessageAdditions,
): Promise<Message>;
inlineReply(options: MessageOptions & { split: true | SplitOptions }): Promise<Message[]>;
inlineReply(options: MessageOptions): Promise<Message | Message[]>;
inlineReply(content: StringResolvable, options: (MessageOptions & { split?: false }) | MessageAdditions): Promise<Message>;
inlineReply(content: StringResolvable, options: MessageOptions & { split: true | SplitOptions }): Promise<Message[]>;
inlineReply(content: StringResolvable, options: MessageOptions): Promise<Message | Message[]>;
}
}
the parameter typings stolen from discord.js's source code
Uhm how do I install this?
download the file, save it to your project directory and import it like any other package.
can you add typings for that?
declare module "discord.js" { interface MessageMentionOptions { repliedUser?: boolean; } interface Message { inlineReply( content: APIMessageContentResolvable | (MessageOptions & { split?: false }) | MessageAdditions, ): Promise<Message>; inlineReply(options: MessageOptions & { split: true | SplitOptions }): Promise<Message[]>; inlineReply(options: MessageOptions): Promise<Message | Message[]>; inlineReply(content: StringResolvable, options: (MessageOptions & { split?: false }) | MessageAdditions): Promise<Message>; inlineReply(content: StringResolvable, options: MessageOptions & { split: true | SplitOptions }): Promise<Message[]>; inlineReply(content: StringResolvable, options: MessageOptions): Promise<Message | Message[]>; } }the parameter typings stolen from discord.js's source code
How do we use the typings?
can you add typings for that?
declare module "discord.js" { interface MessageMentionOptions { repliedUser?: boolean; } interface Message { inlineReply( content: APIMessageContentResolvable | (MessageOptions & { split?: false }) | MessageAdditions, ): Promise<Message>; inlineReply(options: MessageOptions & { split: true | SplitOptions }): Promise<Message[]>; inlineReply(options: MessageOptions): Promise<Message | Message[]>; inlineReply(content: StringResolvable, options: (MessageOptions & { split?: false }) | MessageAdditions): Promise<Message>; inlineReply(content: StringResolvable, options: MessageOptions & { split: true | SplitOptions }): Promise<Message[]>; inlineReply(content: StringResolvable, options: MessageOptions): Promise<Message | Message[]>; } }the parameter typings stolen from discord.js's source code
How do we use the typings?
put it in your custom typings directory
Suggestion! Make it so the bots turn 'mention off', I know this is possible cuz Dank Memer haves it, Other than that, thank you very much!
just add
{ allowedMentions: { repliedUser: false } }
in the second parameter likemsg.inlineReply("yo", { allowedMentions: { repliedUser: false } }); // or if you wanna send embed msg.inlineReply({ embed: yourembed, allowedMentions: { repliedUser: false } });or you can make it default by changing the
true
tofalse
in
https://gist.github.com/Allvaa/0320f06ee793dc88e4e209d3ea9f6256#file-extendedmessage-js-L5
hi sir how can i send embed messages using this bot as it is working perfectly and giving replies to each command
Suggestion! Make it so the bots turn 'mention off', I know this is possible cuz Dank Memer haves it, Other than that, thank you very much!
just add
{ allowedMentions: { repliedUser: false } }
in the second parameter likemsg.inlineReply("yo", { allowedMentions: { repliedUser: false } }); // or if you wanna send embed msg.inlineReply({ embed: yourembed, allowedMentions: { repliedUser: false } });or you can make it default by changing the
true
tofalse
in
https://gist.github.com/Allvaa/0320f06ee793dc88e4e209d3ea9f6256#file-extendedmessage-js-L5hi sir how can i send embed messages using this bot as it is working perfectly and giving replies to each command
you just saw it
You're absolutely awesome. Thank you
Version 13 please
you don't need a v13 version, v13 already does this
Version 13 please
you don't need a v13 version, v13 already does this
yeah
When I try to use an embed and buttons, the bot responds with [object Object]
. How can I fix this?
Code:
if (command === 'discord') {
if (!message.content.startsWith(prefix)) return;
message.lineReply(discordEmbed, discordButton);
}
When I try to use an embed and buttons, the bot responds with
[object Object]
. How can I fix this?Code:
if (command === 'discord') { if (!message.content.startsWith(prefix)) return; message.lineReply(discordEmbed, discordButton); }
thats not how to send the message. also use discord.js v13, so you wont need the code snippet anymore
Bug: when replying to a reply the bot displays a SERVER tag next to the user, how can I fix that?
yeah i just got that problem smh