Knightly 7ab909ee47 Standardize Licensing
- License was intended to be GPLv3 per earlier commit of GPLv3 LICENSE FILE
- This is confirmed by the inclusion of libraries that are incompatible with GPLv2
- This is also confirmed by KLS and the agreement of KLS's predecessors
- Added GPLv3 license headers to the compilable source files
- Removed Folly licensing in strings.h since the string functions do not match the Folly functions and are standard functions - this must have been left over from previous implementations
- Removed individual contributor license headers since the project has been under the "developer" mantle for many years
- Removed comments on files that were previously automatically generated since they've been manually modified multiple times and there are no automatic scripts referencing them (removed in 2023)
2026-04-01 17:09:57 -07:00

81 lines
2.4 KiB
C++

/* EQEmu: EQEmulator
Copyright (C) 2001-2026 EQEmu Development Team
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "common/server_reload_types.h"
#include "common/strings.h"
#include "zone/client.h"
#include "zone/worldserver.h"
#include <string>
extern WorldServer worldserver;
void command_reload(Client *c, const Seperator *sep)
{
std::string command = sep->arg[0] ? sep->arg[0] : "";
const auto arguments = sep->argnum;
if (!arguments && Strings::Contains(command, "#reload")) {
c->SendReloadCommandMessages();
return;
}
std::string full_command = command;
for (int i = 1; i <= sep->argnum; ++i) {
full_command += " " + std::string(sep->arg[i]);
}
bool is_logs_reload_alias = sep->arg[0] && Strings::Contains(command, "#rl");
bool is_opcodes_reload_alias = sep->arg[0] && Strings::Contains(command, "#opcode");
bool is_rq_alias = sep->arg[0] && Strings::Contains(command, "#rq");
if (is_logs_reload_alias) {
full_command = "#reload logs";
}
else if (is_opcodes_reload_alias) {
full_command = "#reload opcodes";
}
else if (is_rq_alias) {
full_command = "#reload quest";
}
auto args = Strings::Split(full_command, ' ');
bool found_command = false;
for (auto &t: ServerReload::GetTypes()) {
std::string reload_slug = Strings::Slugify(ServerReload::GetNameClean(t), "_");
std::string command_arg = args.size() > 1 ? args[1] : "";
bool is_global = args.size() > 2 && args[2] == "global";
if (sep->arg[0] && Strings::EqualFold(command_arg, reload_slug)) {
c->Message(
Chat::White,
fmt::format(
"Attempting to reload [{}] {} from command [{}]",
ServerReload::GetName(t),
is_global ? "globally" : "locally",
full_command
).c_str()
);
worldserver.SendReload(t, is_global);
found_command = true;
}
}
if (!found_command) {
c->SendReloadCommandMessages();
}
}