Fix implementation of #176

As @creeper123123321 noted on Discord, the javadoc specifies "Matches all {@link Player}s whose names start with the provided partial name.".

With the current implementation, if there were two online players named Notch and Notch2, only Notch would be returned as a singleton Collection. This PR fixes this behavior by removing the `exactMatch` code.
This commit is contained in:
Hugo Manrique 2019-03-09 21:02:41 +01:00 committed by GitHub
parent e2fa06fa17
commit 8bb118022d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -450,11 +450,6 @@ public class VelocityServer implements ProxyServer {
public Collection<Player> matchPlayer(String partialName) {
Objects.requireNonNull(partialName);
Optional<Player> exactMatch = getPlayer(partialName);
if (exactMatch.isPresent()) {
return Collections.singleton(exactMatch.get());
}
return getAllPlayers().stream().filter(p -> p.getUsername()
.regionMatches(true, 0, partialName, 0, partialName.length()))
.collect(Collectors.toList());
@ -464,11 +459,6 @@ public class VelocityServer implements ProxyServer {
public Collection<RegisteredServer> matchServer(String partialName) {
Objects.requireNonNull(partialName);
Optional<RegisteredServer> exactMatch = getServer(partialName);
if (exactMatch.isPresent()) {
return Collections.singleton(exactMatch.get());
}
return getAllServers().stream().filter(s -> s.getServerInfo().getName()
.regionMatches(true, 0, partialName, 0, partialName.length()))
.collect(Collectors.toList());