diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-24 17:54:31 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-24 17:54:31 +1000 |
commit | a2d901bd66178bbaacc2fec3acd07e7a27b9235f (patch) | |
tree | cc4ed0a2d3403d5e3a02c3e0482adfc840ce5121 /source/game/StarPlayerStorage.cpp | |
parent | 5f0e44d60e6925dc3c9e6a6888e540012d4ddaa7 (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.cpp | 6 |
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) { |