Update SplitLargeMessages.plugin.js

This commit is contained in:
Mirco Wittrien 2024-10-04 15:32:15 +02:00
parent c6e0d63d02
commit 7ab0711cf2
1 changed files with 64 additions and 7 deletions

View File

@ -2,7 +2,7 @@
* @name SplitLargeMessages
* @author DevilBro
* @authorId 278543574059057154
* @version 1.8.2
* @version 1.8.3
* @description Allows you to enter larger Messages, which will automatically split into several smaller Messages
* @invite Jx3TjNS
* @donate https://www.paypal.me/MircoWittrien
@ -14,7 +14,9 @@
module.exports = (_ => {
const changeLog = {
added: {
"Right Click Option": "Added right click option disable splitting"
}
};
return !window.BDFDB_Global || (!window.BDFDB_Global.loaded && !window.BDFDB_Global.started) ? class {
@ -63,6 +65,7 @@ module.exports = (_ => {
} : (([Plugin, BDFDB]) => {
const messageDelay = 2000; //changing at own risk, might result in bans or mutes
let maxMessageLength = 2000;
let enabled = true;
return class SplitLargeMessages extends Plugin {
onLoad () {
@ -162,13 +165,25 @@ module.exports = (_ => {
BDFDB.PatchUtils.forceAllUpdates(this);
}
}
onTextAreaContextMenu (e) {
let [children, index] = BDFDB.ContextMenuUtils.findItem(e.returnvalue, {id: "devmode-copy-id", group: true});
children.splice(index > -1 ? index : children.length, 0, BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuGroup, {
children: BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuCheckboxItem, {
label: this.labels.context_enable,
id: BDFDB.ContextMenuUtils.createItemId(this.name, "enabled"),
checked: enabled,
action: state => {enabled = state;}
})
}));
}
processChannelTextAreaContainer (e) {
if (e.instance.props.type != BDFDB.DiscordConstants.ChannelTextAreaTypes.NORMAL && e.instance.props.type != BDFDB.LibraryComponents.ChannelTextAreaTypes.SIDEBAR) return;
const splitMessageLength = this.settings.amounts.splitCounter < 1000 || this.settings.amounts.splitCounter > maxMessageLength ? maxMessageLength : this.settings.amounts.splitCounter;
if (!e.returnvalue) {
BDFDB.PatchUtils.patch(this, e.instance.props, "onSubmit", {instead: e2 => {
if (e2.methodArguments[0].value.length > splitMessageLength && !this.isSlowDowned(e.instance.props.channel)) {
if (enabled && e2.methodArguments[0].value.length > splitMessageLength && !this.isSlowDowned(e.instance.props.channel)) {
e2.stopOriginalMethodCall();
let messages = this.formatText(e2.methodArguments[0].value).filter(n => n);
for (let i in messages) BDFDB.TimeUtils.timeout(_ => {
@ -186,7 +201,7 @@ module.exports = (_ => {
}
else {
let [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {name: "ChannelTextAreaCounter"});
if (index > -1 && children[index].props.textValue && children[index].props.textValue.length > splitMessageLength && !this.isSlowDowned(e.instance.props.channel)) children[index] = BDFDB.ReactUtils.createElement("div", {
if (enabled && index > -1 && children[index].props.textValue && children[index].props.textValue.length > splitMessageLength && !this.isSlowDowned(e.instance.props.channel)) children[index] = BDFDB.ReactUtils.createElement("div", {
className: BDFDB.disCNS.textareacharcounter + BDFDB.disCN.textareacharcountererror,
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TooltipContainer, {
text: Math.ceil(children[index].props.textValue.length / splitMessageLength * (39/40)) + " " + BDFDB.LanguageUtils.LanguageStrings.MESSAGES,
@ -258,110 +273,152 @@ module.exports = (_ => {
switch (BDFDB.LanguageUtils.getLanguage().id) {
case "bg": // Bulgarian
return {
context_enable: "Разделете големите съобщения на по-малки",
toast_allsent: "Всички изпратени съобщения"
};
case "cs": // Czech
return {
context_enable: "Rozdělte velké zprávy na menší zprávy",
toast_allsent: "Všechny zprávy odeslány"
};
case "da": // Danish
return {
context_enable: "Opdel store beskeder i mindre beskeder",
toast_allsent: "Alle beskeder sendt"
};
case "de": // German
return {
context_enable: "Spalte große in kleinere Nachrichten auf",
toast_allsent: "Alle Nachrichten gesendet"
};
case "el": // Greek
return {
context_enable: "Διαχωρίστε τα μεγάλα μηνύματα σε μικρότερα μηνύματα",
toast_allsent: "Όλα τα μηνύματα εστάλησαν"
};
case "es": // Spanish
return {
context_enable: "Dividir mensajes grandes en mensajes más pequeños",
toast_allsent: "Todos los mensajes enviados"
};
case "es-419": // Spanish (Latin America)
return {
context_enable: "Dividir mensajes grandes en mensajes más pequeños",
toast_allsent: "Todos los mensajes enviados"
};
case "fi": // Finnish
return {
context_enable: "Jaa suuret viestit pienemmiksi viesteiksi",
toast_allsent: "Kaikki viestit lähetetty"
};
case "fr": // French
return {
context_enable: "Divisez les gros messages en messages plus petits",
toast_allsent: "Tous les messages envoyés"
};
case "hi": // Hindi
return {
context_enable: "बड़े संदेशों को छोटे संदेशों में विभाजित करें",
toast_allsent: "सभी संदेश भेजे गए"
};
case "hr": // Croatian
return {
context_enable: "Podijelite velike poruke u manje poruke",
toast_allsent: "Sve poruke poslane"
};
case "hu": // Hungarian
return {
context_enable: "A nagy üzenetek felosztása kisebb üzenetekre",
toast_allsent: "Minden üzenet elküldve"
};
case "it": // Italian
return {
context_enable: "Suddividi messaggi di grandi dimensioni in messaggi più piccoli",
toast_allsent: "Tutti i messaggi inviati"
};
case "ja": // Japanese
return {
context_enable: "大きなメッセージを小さなメッセージに分割する",
toast_allsent: "送信されたすべてのメッセージ"
};
case "ko": // Korean
return {
context_enable: "큰 메시지를 작은 메시지로 분할",
toast_allsent: "보낸 모든 메시지"
};
case "lt": // Lithuanian
return {
context_enable: "Padalinkite didelius pranešimus į mažesnius pranešimus",
toast_allsent: "Visi pranešimai išsiųsti"
};
case "nl": // Dutch
return {
context_enable: "Splits grote berichten op in kleinere berichten",
toast_allsent: "Alle berichten zijn verzonden"
};
case "no": // Norwegian
return {
context_enable: "Del store meldinger i mindre meldinger",
toast_allsent: "Alle meldinger sendt"
};
case "pl": // Polish
return {
context_enable: "Podziel duże wiadomości na mniejsze",
toast_allsent: "Wszystkie wiadomości wysłane"
};
case "pt-BR": // Portuguese (Brazil)
case "pt-BR": // Portuguese (Brazil)
return {
context_enable: "Divida mensagens grandes em mensagens menores",
toast_allsent: "Todas as mensagens enviadas"
};
case "ro": // Romanian
return {
context_enable: "Împărțiți mesajele mari în mesaje mai mici",
toast_allsent: "Toate mesajele trimise"
};
case "ru": // Russian
return {
context_enable: "Разделите большие сообщения на более мелкие сообщения",
toast_allsent: "Все сообщения отправлены"
};
case "sv": // Swedish
return {
context_enable: "Dela upp stora meddelanden i mindre meddelanden",
toast_allsent: "Alla meddelanden skickade"
};
case "th": // Thai
return {
context_enable: "แบ่งข้อความขนาดใหญ่เป็นข้อความขนาดเล็ก",
toast_allsent: "ส่งข้อความทั้งหมดแล้ว"
};
case "tr": // Turkish
return {
context_enable: "Büyük Mesajları daha küçük Mesajlara bölün",
toast_allsent: "Tüm mesajlar gönderildi"
};
case "uk": // Ukrainian
return {
context_enable: "Розділіть великі повідомлення на менші",
toast_allsent: "Усі повідомлення надіслано"
};
case "vi": // Vietnamese
return {
context_enable: "Chia tin nhắn lớn thành tin nhắn nhỏ hơn",
toast_allsent: "Tất cả tin nhắn đã gửi"
};
case "zh-CN": // Chinese (China)
case "zh-CN": // Chinese (China)
return {
context_enable: "将大消息拆分为较小的消息",
toast_allsent: "已发送所有消息"
};
case "zh-TW": // Chinese (Taiwan)
case "zh-TW": // Chinese (Taiwan)
return {
context_enable: "將大消息拆分為較小的消息",
toast_allsent: "已發送所有消息"
};
default: // English
return {
context_enable: "Split large Messages into smaller Messages",
toast_allsent: "All Messages sent"
};
}