fix tell cmd show undefined
This commit is contained in:
parent
a08eed8457
commit
3b6e21d4c2
1 changed files with 320 additions and 233 deletions
|
@ -21,7 +21,7 @@ bot.on('systemChat', (packet) => {
|
|||
const cspy = parseCommand(nocolormsg)
|
||||
if (cspy) bot.emit('custom_Commandspy', msg);
|
||||
if (jsonmsg === undefined) { // idk, but work
|
||||
if (msg !== undefined) bot.emit('custom_systemChat', msg, nocolormsg, false);
|
||||
if (msg !== undefined) bot.emit('custom_systemChat', msg, nocolormsg, undefined);
|
||||
} else {
|
||||
if (msg !== undefined) bot.emit('custom_systemChat', msg, nocolormsg, jsonmsg);
|
||||
}
|
||||
|
@ -49,12 +49,12 @@ bot.on('playerChat', (packet) => {
|
|||
nocolorplayermsg = `* ${NoColorSenderName} ${NoColorformattedMessage}`;
|
||||
break;
|
||||
case 2: // someone /tell you text
|
||||
msg = `${SenderName} whispers to you: ${formattedMessage}`;
|
||||
nocolorplayermsg = `${NoColorSenderName} whispers to you: ${NoColorformattedMessage}`;
|
||||
msg = `${SenderName} whispers to you: ${plainMessage ? plainMessage : formattedMessage}`;
|
||||
nocolorplayermsg = `${NoColorSenderName} whispers to you: ${plainMessage ? plainMessage : NoColorformattedMessage}`;
|
||||
break;
|
||||
case 3: // you /tell someone text
|
||||
msg = `You whisper to ${TargetName}: ${formattedMessage}`;
|
||||
nocolorplayermsg = `You whisper to ${NoColorTargetName}: ${NoColorformattedMessage}`;
|
||||
msg = `You whisper to ${TargetName}: ${plainMessage ? plainMessage : formattedMessage}`;
|
||||
nocolorplayermsg = `You whisper to ${NoColorTargetName}: ${plainMessage ? plainMessage : NoColorformattedMessage}`;
|
||||
break;
|
||||
case 4: // player chat
|
||||
// /sudo and vanish send formattedMessage message
|
||||
|
@ -229,6 +229,93 @@ function parseMinecraftMessageNoColor(component) {
|
|||
return msgText;
|
||||
}
|
||||
|
||||
function kickparser(component) {
|
||||
if (component === undefined) return component;
|
||||
function kickparserText(comp) {
|
||||
let text = '';
|
||||
|
||||
if (typeof comp === 'string') {
|
||||
text += comp;
|
||||
}
|
||||
if (typeof comp.value === 'string') {
|
||||
text += comp.value;
|
||||
}
|
||||
if (comp.with) {
|
||||
text += kickparserText(comp.with);
|
||||
}
|
||||
|
||||
if (comp.value) {
|
||||
[comp.value].forEach(subComp => {
|
||||
if (typeof subComp === 'string') text += subComp;
|
||||
text += kickparserText(subComp);
|
||||
});
|
||||
}
|
||||
|
||||
// how did i write this???
|
||||
if (comp.translate) {
|
||||
let translateString = lang[comp.translate.value] || comp.translate.value;
|
||||
|
||||
if (typeof translateString === 'string') {
|
||||
if (comp.with) {
|
||||
const withArray = Array.isArray(comp.with.value) ? comp.with.value : [comp.with.value];
|
||||
let formattedString = translateString;
|
||||
const replacements = [];
|
||||
|
||||
withArray.forEach((replacementText) => {
|
||||
if (replacementText.value) {
|
||||
const items = Array.isArray(replacementText.value) ? replacementText.value : [replacementText.value];
|
||||
|
||||
items.forEach((item) => {
|
||||
const itemText = kickparserText(item);
|
||||
if (itemText) replacements.push(itemText);
|
||||
if (item.with && item.with.value) {
|
||||
const nestedValues = Array.isArray(item.with.value) ? item.with.value : [item.with.value];
|
||||
nestedValues.forEach(nestedItem => {
|
||||
const nestedText = kickparserText(nestedItem);
|
||||
if (nestedText) replacements.push(nestedText);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
let replacementIndex = 0;
|
||||
formattedString = formattedString.replace(/%s/g, () => {
|
||||
return replacementIndex < replacements.length ? replacements[replacementIndex++] : '%s';
|
||||
});
|
||||
text += formattedString;
|
||||
} else {
|
||||
text += kickparserText(translateString);
|
||||
}
|
||||
|
||||
} else {
|
||||
throw new Error(`Translation not found for key: ${comp.translate.value}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return text;
|
||||
}
|
||||
|
||||
let result = ''; // Initialize result to an empty string
|
||||
|
||||
[component].forEach((comp) => {
|
||||
if (comp.reason) { // Check if reason is defined
|
||||
result += kickparserText(comp.reason);
|
||||
}
|
||||
});
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
|
||||
bot.parsekickmsg = (component) => {
|
||||
return kickparser(component);
|
||||
};
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
module.exports = { inject };
|
Loading…
Reference in a new issue