Merge pull request #635 from Smart123s/fix/floodgate/prefix-detect

Fix Floodgate player detection (caused by prefixes)
This commit is contained in:
games647
2021-10-23 17:38:14 +02:00
committed by GitHub

View File

@ -130,13 +130,25 @@ public class FloodgateService {
* The FloodgateApi does not support querying players by name, so this function * The FloodgateApi does not support querying players by name, so this function
* iterates over every online FloodgatePlayer and checks if the requested * iterates over every online FloodgatePlayer and checks if the requested
* username can be found * username can be found
* <br>
* <i>Falls back to non-prefixed name checks, if ProtocolLib is installed</i>
* *
* @param username the name of the player * @param prefixedUsername the name of the player with the prefix appended
* @return FloodgatePlayer if found, null otherwise * @return FloodgatePlayer if found, null otherwise
*/ */
public FloodgatePlayer getFloodgatePlayer(String username) { public FloodgatePlayer getFloodgatePlayer(String prefixedUsername) {
//prefixes are broken with ProtocolLib, so fall back to name checks without prefixes
//this should be removed if #493 gets fixed
if (core.getPlugin().isPluginInstalled("ProtocolLib")) {
for (FloodgatePlayer floodgatePlayer : FloodgateApi.getInstance().getPlayers()) {
if (floodgatePlayer.getUsername().equals(prefixedUsername)) {
return floodgatePlayer;
}
}
return null;
}
for (FloodgatePlayer floodgatePlayer : FloodgateApi.getInstance().getPlayers()) { for (FloodgatePlayer floodgatePlayer : FloodgateApi.getInstance().getPlayers()) {
if (floodgatePlayer.getUsername().equals(username)) { if (floodgatePlayer.getCorrectUsername().equals(prefixedUsername)) {
return floodgatePlayer; return floodgatePlayer;
} }
} }