Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/StarPlayerStorage.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-07-24 17:54:31 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-07-24 17:54:31 +1000
commita2d901bd66178bbaacc2fec3acd07e7a27b9235f (patch)
treecc4ed0a2d3403d5e3a02c3e0482adfc840ce5121 /source/game/StarPlayerStorage.cpp
parent5f0e44d60e6925dc3c9e6a6888e540012d4ddaa7 (diff)
Fix ToolUser exception when swapping player
Also made /swap by name exclude the current player when searching
Diffstat (limited to 'source/game/StarPlayerStorage.cpp')
-rw-r--r--source/game/StarPlayerStorage.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/source/game/StarPlayerStorage.cpp b/source/game/StarPlayerStorage.cpp
index c6ae2a3..f128244 100644
--- a/source/game/StarPlayerStorage.cpp
+++ b/source/game/StarPlayerStorage.cpp
@@ -99,7 +99,7 @@ Maybe<Uuid> PlayerStorage::playerUuidAt(size_t index) {
return {};
}
-Maybe<Uuid> PlayerStorage::playerUuidByName(String const& name) {
+Maybe<Uuid> PlayerStorage::playerUuidByName(String const& name, Maybe<Uuid> except) {
String cleanMatch = Text::stripEscapeCodes(name).toLower();
Maybe<Uuid> uuid;
@@ -107,7 +107,9 @@ Maybe<Uuid> PlayerStorage::playerUuidByName(String const& name) {
size_t longest = SIZE_MAX;
for (auto& cache : m_savedPlayersCache) {
- if (auto name = cache.second.optQueryString("identity.name")) {
+ if (except && *except == cache.first)
+ continue;
+ else if (auto name = cache.second.optQueryString("identity.name")) {
auto cleanName = Text::stripEscapeCodes(*name).toLower();
auto len = cleanName.size();
if (len < longest && cleanName.utf8().rfind(cleanMatch.utf8()) == 0) {