From 206552ed6394d32eed228176c850237a35826e91 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Mon, 25 Dec 2023 09:59:30 -0800 Subject: [PATCH] remove proxy chat filter option --- src/Client.cc | 1 - src/Client.hh | 4 +--- src/Menu.hh | 31 +++++++++++++------------- src/ProxyCommands.cc | 50 ++++++++++++++---------------------------- src/ReceiveCommands.cc | 5 ----- src/ServerShell.cc | 4 ---- 6 files changed, 33 insertions(+), 62 deletions(-) diff --git a/src/Client.cc b/src/Client.cc index 554fdd64..8fda3b0c 100644 --- a/src/Client.cc +++ b/src/Client.cc @@ -23,7 +23,6 @@ static atomic next_id(1); void Client::Config::set_flags_for_version(Version version, int64_t sub_version) { this->set_flag(Flag::PROXY_CHAT_COMMANDS_ENABLED); - this->set_flag(Flag::PROXY_CHAT_FILTER_ENABLED); switch (sub_version) { case -1: // Initial check (before sub_version recognition) diff --git a/src/Client.hh b/src/Client.hh index 16442fe2..979092c7 100644 --- a/src/Client.hh +++ b/src/Client.hh @@ -69,7 +69,6 @@ public: // Proxy option flags PROXY_SAVE_FILES = 0x0000001000000000, PROXY_CHAT_COMMANDS_ENABLED = 0x0000002000000000, - PROXY_CHAT_FILTER_ENABLED = 0x0000004000000000, PROXY_PLAYER_NOTIFICATIONS_ENABLED = 0x0000008000000000, PROXY_SUPPRESS_CLIENT_PINGS = 0x0000010000000000, PROXY_SUPPRESS_REMOTE_LOGIN = 0x0000020000000000, @@ -83,8 +82,7 @@ public: // clang-format on }; - static constexpr uint64_t DEFAULT_FLAGS = static_cast(Flag::PROXY_CHAT_COMMANDS_ENABLED) | - static_cast(Flag::PROXY_CHAT_FILTER_ENABLED); + static constexpr uint64_t DEFAULT_FLAGS = static_cast(Flag::PROXY_CHAT_COMMANDS_ENABLED); struct Config { uint64_t enabled_flags = DEFAULT_FLAGS; // Client::Flag enum diff --git a/src/Menu.hh b/src/Menu.hh index 33468a60..467e893a 100644 --- a/src/Menu.hh +++ b/src/Menu.hh @@ -60,22 +60,21 @@ constexpr uint32_t GO_BACK = 0x99FFFF99; namespace ProxyOptionsMenuItemID { constexpr uint32_t GO_BACK = 0xAAFFFFAA; constexpr uint32_t CHAT_COMMANDS = 0xAA0101AA; -constexpr uint32_t CHAT_FILTER = 0xAA0202AA; -constexpr uint32_t PLAYER_NOTIFICATIONS = 0xAA0303AA; -constexpr uint32_t BLOCK_PINGS = 0xAA0404AA; -constexpr uint32_t INFINITE_HP = 0xAA0505AA; -constexpr uint32_t INFINITE_TP = 0xAA0606AA; -constexpr uint32_t SWITCH_ASSIST = 0xAA0707AA; -constexpr uint32_t BLOCK_EVENTS = 0xAA0808AA; -constexpr uint32_t BLOCK_PATCHES = 0xAA0909AA; -constexpr uint32_t SAVE_FILES = 0xAA0A0AAA; -constexpr uint32_t RED_NAME = 0xAA0B0BAA; -constexpr uint32_t BLANK_NAME = 0xAA0C0CAA; -constexpr uint32_t SUPPRESS_LOGIN = 0xAA0D0DAA; -constexpr uint32_t SKIP_CARD = 0xAA0E0EAA; -constexpr uint32_t EP3_INFINITE_MESETA = 0xAA0F0FAA; -constexpr uint32_t EP3_INFINITE_TIME = 0xAA1010AA; -constexpr uint32_t EP3_UNMASK_WHISPERS = 0xAA1111AA; +constexpr uint32_t PLAYER_NOTIFICATIONS = 0xAA0202AA; +constexpr uint32_t BLOCK_PINGS = 0xAA0303AA; +constexpr uint32_t INFINITE_HP = 0xAA0404AA; +constexpr uint32_t INFINITE_TP = 0xAA0505AA; +constexpr uint32_t SWITCH_ASSIST = 0xAA0606AA; +constexpr uint32_t BLOCK_EVENTS = 0xAA0707AA; +constexpr uint32_t BLOCK_PATCHES = 0xAA0808AA; +constexpr uint32_t SAVE_FILES = 0xAA0909AA; +constexpr uint32_t RED_NAME = 0xAA0A0AAA; +constexpr uint32_t BLANK_NAME = 0xAA0B0BAA; +constexpr uint32_t SUPPRESS_LOGIN = 0xAA0C0CAA; +constexpr uint32_t SKIP_CARD = 0xAA0D0DAA; +constexpr uint32_t EP3_INFINITE_MESETA = 0xAA0E0EAA; +constexpr uint32_t EP3_INFINITE_TIME = 0xAA0F0FAA; +constexpr uint32_t EP3_UNMASK_WHISPERS = 0xAA1010AA; } // namespace ProxyOptionsMenuItemID namespace TeamRewardMenuItemID { diff --git a/src/ProxyCommands.cc b/src/ProxyCommands.cc index 2fc6cb55..9b656ab0 100644 --- a/src/ProxyCommands.cc +++ b/src/ProxyCommands.cc @@ -1067,9 +1067,7 @@ static HandlerResult C_GXB_61(shared_ptr ses, uint16 if (is_v4(ses->version())) { auto& pd = check_size_t(data, 0xFFFF); - if (ses->config.check_flag(Client::Flag::PROXY_CHAT_FILTER_ENABLED)) { - pd.info_board.encode(add_color(pd.info_board.decode(ses->language())), ses->language()); - } + pd.info_board.encode(add_color(pd.info_board.decode(ses->language())), ses->language()); if (ses->config.check_flag(Client::Flag::PROXY_BLANK_NAME_ENABLED)) { pd.disp.name.encode(" ", ses->language()); modified = true; @@ -1108,9 +1106,7 @@ static HandlerResult C_GXB_61(shared_ptr ses, uint16 } pd = &check_size_t(data, 0xFFFF); } - if (ses->config.check_flag(Client::Flag::PROXY_CHAT_FILTER_ENABLED)) { - pd->info_board.encode(add_color(pd->info_board.decode(ses->language())), ses->language()); - } + pd->info_board.encode(add_color(pd->info_board.decode(ses->language())), ses->language()); if (ses->config.check_flag(Client::Flag::PROXY_BLANK_NAME_ENABLED)) { pd->disp.visual.name.encode(" ", ses->language()); modified = true; @@ -1132,28 +1128,24 @@ static HandlerResult C_GXB_61(shared_ptr ses, uint16 return modified ? HandlerResult::Type::MODIFIED : HandlerResult::Type::FORWARD; } -static HandlerResult C_GX_D9(shared_ptr ses, uint16_t, uint32_t, string& data) { - if (ses->config.check_flag(Client::Flag::PROXY_CHAT_FILTER_ENABLED)) { - data = add_color(data); - // TODO: We should check if the info board text was actually modified and - // return MODIFIED if so. - } - return HandlerResult::Type::FORWARD; +static HandlerResult C_GX_D9(shared_ptr, uint16_t, uint32_t, string& data) { + data = add_color(data); + // TODO: We should check if the info board text was actually modified and + // return FORWARD if not. + return HandlerResult::Type::MODIFIED; } static HandlerResult C_B_D9(shared_ptr ses, uint16_t, uint32_t, string& data) { - if (ses->config.check_flag(Client::Flag::PROXY_CHAT_FILTER_ENABLED)) { - try { - string decoded = tt_utf16_to_utf8(data.data(), data.size()); - add_color_inplace(decoded); - data = tt_utf8_to_utf16(data.data(), data.size()); - } catch (const runtime_error& e) { - ses->log.warning("Failed to replace escape characters in D9 command: %s", e.what()); - } - // TODO: We should check if the info board text was actually modified and - // return HandlerResult::MODIFIED if so. + try { + string decoded = tt_utf16_to_utf8(data.data(), data.size()); + add_color_inplace(decoded); + data = tt_utf8_to_utf16(data.data(), data.size()); + } catch (const runtime_error& e) { + ses->log.warning("Failed to replace escape characters in D9 command: %s", e.what()); } - return HandlerResult::Type::FORWARD; + // TODO: We should check if the info board text was actually modified and + // return HandlerResult::FORWARD if not. + return HandlerResult::Type::MODIFIED; } template @@ -1638,21 +1630,13 @@ static HandlerResult C_06(shared_ptr ses, uint16_t, offset += (text[offset] == command_sentinel) ? 0 : 2; text = text.substr(offset); if (text.size() >= 2 && text[1] == command_sentinel) { - if (ses->config.check_flag(Client::Flag::PROXY_CHAT_FILTER_ENABLED)) { - send_chat_message_from_client(ses->server_channel, add_color(text.substr(1)), private_flags); - } else { - send_chat_message_from_client(ses->server_channel, text.substr(1), private_flags); - } + send_chat_message_from_client(ses->server_channel, text.substr(1), private_flags); return HandlerResult::Type::SUPPRESS; } else { on_chat_command(ses, text); return HandlerResult::Type::SUPPRESS; } - } else if (ses->config.check_flag(Client::Flag::PROXY_CHAT_FILTER_ENABLED)) { - send_chat_message_from_client(ses->server_channel, add_color(text), private_flags); - return HandlerResult::Type::SUPPRESS; - } else { return HandlerResult::Type::FORWARD; } diff --git a/src/ReceiveCommands.cc b/src/ReceiveCommands.cc index d675104f..b1b4690a 100644 --- a/src/ReceiveCommands.cc +++ b/src/ReceiveCommands.cc @@ -49,8 +49,6 @@ static shared_ptr proxy_options_menu_for_client(shared_ptr c, uint16_t, uint32_t, string& data) { case ProxyOptionsMenuItemID::CHAT_COMMANDS: c->config.toggle_flag(Client::Flag::PROXY_CHAT_COMMANDS_ENABLED); goto resend_proxy_options_menu; - case ProxyOptionsMenuItemID::CHAT_FILTER: - c->config.toggle_flag(Client::Flag::PROXY_CHAT_FILTER_ENABLED); - goto resend_proxy_options_menu; case ProxyOptionsMenuItemID::PLAYER_NOTIFICATIONS: c->config.toggle_flag(Client::Flag::PROXY_PLAYER_NOTIFICATIONS_ENABLED); goto resend_proxy_options_menu; diff --git a/src/ServerShell.cc b/src/ServerShell.cc index 225e4b28..91c396d5 100644 --- a/src/ServerShell.cc +++ b/src/ServerShell.cc @@ -772,10 +772,6 @@ Proxy session commands:\n\ auto ses = this->get_proxy_session(session_name); ses->challenge_rank_color_override = stoul(command_args, nullptr, 16); - } else if (command_name == "set-chat-filter") { - auto ses = this->get_proxy_session(session_name); - set_flag(ses->config, Client::Flag::PROXY_CHAT_FILTER_ENABLED, command_args); - } else if (command_name == "set-infinite-hp") { auto ses = this->get_proxy_session(session_name); set_flag(ses->config, Client::Flag::INFINITE_HP_ENABLED, command_args);