mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-08-20 09:57:09 +00:00
prevent players from sending chat color
This commit is contained in:
parent
1bbc90c18b
commit
7eef3b6069
|
|
@ -170,12 +170,12 @@ void ChatScreen::render(int xm, int ym, float a)
|
||||||
x += font->width(prefix);
|
x += font->width(prefix);
|
||||||
wstring beforeCursor = message.substr(0, cursorIndex);
|
wstring beforeCursor = message.substr(0, cursorIndex);
|
||||||
wstring afterCursor = message.substr(cursorIndex);
|
wstring afterCursor = message.substr(cursorIndex);
|
||||||
drawString(font, beforeCursor, x, height - 12, 0xe0e0e0);
|
drawStringLiteral(font, beforeCursor, x, height - 12, 0xe0e0e0);
|
||||||
x += font->width(beforeCursor);
|
x += font->widthLiteral(beforeCursor);
|
||||||
if (frame / 6 % 2 == 0)
|
if (frame / 6 % 2 == 0)
|
||||||
drawString(font, L"_", x, height - 12, 0xe0e0e0); //todo: fix this breaking the chat color in afterString
|
drawString(font, L"_", x, height - 12, 0xe0e0e0);
|
||||||
x += font->width(L"_");
|
x += font->width(L"_");
|
||||||
drawString(font, afterCursor, x, height - 12, 0xe0e0e0);
|
drawStringLiteral(font, afterCursor, x, height - 12, 0xe0e0e0);
|
||||||
Screen::render(xm, ym, a);
|
Screen::render(xm, ym, a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6618,59 +6618,59 @@ wstring CMinecraftApp::EscapeHTMLString(const wstring& desc)
|
||||||
return finalString;
|
return finalString;
|
||||||
}
|
}
|
||||||
|
|
||||||
wstring CMinecraftApp::FormatChatMessage(const wstring& desc)
|
wstring CMinecraftApp::FormatChatMessage(const wstring& desc, bool applyColor)
|
||||||
{
|
{
|
||||||
static std::wstring_view colorFormatString = L"<font color=\"#%08x\" shadowcolor=\"#%08x\">";
|
static std::wstring_view colorFormatString = L"<font color=\"#%08x\" shadowcolor=\"#%08x\">";
|
||||||
|
|
||||||
wstring results = desc;
|
wstring results = desc;
|
||||||
wchar_t replacements[64];
|
wchar_t replacements[64];
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_0), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_0), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§0", replacements);
|
results = replaceAll(results, L"§0", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_1), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_1), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§1", replacements);
|
results = replaceAll(results, L"§1", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_2), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_2), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§2", replacements);
|
results = replaceAll(results, L"§2", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_3), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_3), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§3", replacements);
|
results = replaceAll(results, L"§3", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_4), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_4), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§4", replacements);
|
results = replaceAll(results, L"§4", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_5), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_5), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§5", replacements);
|
results = replaceAll(results, L"§5", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_6), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_6), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§6", replacements);
|
results = replaceAll(results, L"§6", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_7), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_7), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§7", replacements);
|
results = replaceAll(results, L"§7", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_8), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_8), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§8", replacements);
|
results = replaceAll(results, L"§8", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_9), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_9), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§9", replacements);
|
results = replaceAll(results, L"§9", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_a), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_a), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§a", replacements);
|
results = replaceAll(results, L"§a", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_b), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_b), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§b", replacements);
|
results = replaceAll(results, L"§b", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_c), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_c), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§c", replacements);
|
results = replaceAll(results, L"§c", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_d), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_d), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§d", replacements);
|
results = replaceAll(results, L"§d", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_e), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_e), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§e", replacements);
|
results = replaceAll(results, L"§e", replacements);
|
||||||
|
|
||||||
swprintf(replacements, 64, colorFormatString.data(), GetHTMLColour(eHTMLColor_f), 0xFFFFFFFF);
|
swprintf(replacements, 64, (applyColor ? colorFormatString.data() : L""), GetHTMLColour(eHTMLColor_f), 0xFFFFFFFF);
|
||||||
results = replaceAll(results, L"§f", replacements);
|
results = replaceAll(results, L"§f", replacements);
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
|
|
|
||||||
|
|
@ -566,7 +566,7 @@ public:
|
||||||
int GetHTMLFontSize(EHTMLFontSize size);
|
int GetHTMLFontSize(EHTMLFontSize size);
|
||||||
wstring FormatHTMLString(int iPad, const wstring& desc, int shadowColour = 0xFFFFFFFF);
|
wstring FormatHTMLString(int iPad, const wstring& desc, int shadowColour = 0xFFFFFFFF);
|
||||||
wstring EscapeHTMLString(const wstring &desc);
|
wstring EscapeHTMLString(const wstring &desc);
|
||||||
wstring FormatChatMessage(const wstring& desc);
|
wstring FormatChatMessage(const wstring& desc, bool applyColor = true);
|
||||||
wstring GetActionReplacement(int iPad, unsigned char ucAction);
|
wstring GetActionReplacement(int iPad, unsigned char ucAction);
|
||||||
wstring GetVKReplacement(unsigned int uiVKey);
|
wstring GetVKReplacement(unsigned int uiVKey);
|
||||||
wstring GetIconReplacement(unsigned int uiIcon);
|
wstring GetIconReplacement(unsigned int uiIcon);
|
||||||
|
|
|
||||||
|
|
@ -679,7 +679,7 @@ void PlayerConnection::handleChat(shared_ptr<ChatPacket> packet)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
wstring formatted = L"<" + player->name + L"> " + message;
|
wstring formatted = L"<" + player->name + L"> " + message;
|
||||||
server->getPlayers()->broadcastAll(shared_ptr<ChatPacket>(new ChatPacket(formatted)));
|
server->getPlayers()->broadcastAll(shared_ptr<ChatPacket>(new ChatPacket(app.FormatChatMessage(formatted, false))));
|
||||||
chatSpamTickCount += SharedConstants::TICKS_PER_SECOND;
|
chatSpamTickCount += SharedConstants::TICKS_PER_SECOND;
|
||||||
if (chatSpamTickCount > SharedConstants::TICKS_PER_SECOND * 10)
|
if (chatSpamTickCount > SharedConstants::TICKS_PER_SECOND * 10)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue