1
0
mirror of https://github.com/GeyserMC/Floodgate.git synced 2025-12-19 14:59:20 +00:00

Added getPlayers and getPlayerCount to the API

This commit is contained in:
Tim203
2021-01-18 11:29:54 +01:00
parent 3eb607772d
commit 3b8382957c
3 changed files with 25 additions and 3 deletions

View File

@@ -25,6 +25,7 @@
package org.geysermc.floodgate.api;
import java.util.Collection;
import java.util.UUID;
import org.geysermc.cumulus.Form;
import org.geysermc.cumulus.util.FormBuilder;
@@ -39,6 +40,16 @@ public interface FloodgateApi {
return InstanceHolder.getApi();
}
/**
* Returns all the online Floodgate players.
*/
Collection<FloodgatePlayer> getPlayers();
/**
* Returns the number of Floodgate players who are currently online.
*/
int getPlayerCount();
/**
* Method to determine if the given <b>online</b> player is a bedrock player
*

View File

@@ -25,6 +25,8 @@
package org.geysermc.floodgate.api;
import com.google.common.collect.ImmutableSet;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@@ -39,9 +41,19 @@ import org.geysermc.floodgate.util.Utils;
@RequiredArgsConstructor
public class SimpleFloodgateApi implements FloodgateApi {
public final Map<UUID, FloodgatePlayer> players = new HashMap<>();
private final Map<UUID, FloodgatePlayer> players = new HashMap<>();
private final PluginMessageHandler pluginMessageHandler;
@Override
public Collection<FloodgatePlayer> getPlayers() {
return ImmutableSet.copyOf(players.values());
}
@Override
public int getPlayerCount() {
return players.size();
}
@Override
public boolean isFloodgatePlayer(UUID uuid) {
return getPlayer(uuid) != null;

View File

@@ -30,7 +30,6 @@ import cloud.commandframework.CommandManager;
import cloud.commandframework.context.CommandContext;
import net.kyori.adventure.text.Component;
import org.geysermc.floodgate.api.FloodgateApi;
import org.geysermc.floodgate.api.SimpleFloodgateApi;
import org.geysermc.floodgate.config.FloodgateConfig;
import org.geysermc.floodgate.platform.command.FloodgateCommand;
import org.geysermc.floodgate.player.UserAudience;
@@ -47,7 +46,7 @@ public class TestCommand implements FloodgateCommand {
@Override
public void execute(CommandContext<UserAudience> context) {
int players = ((SimpleFloodgateApi) FloodgateApi.getInstance()).players.size();
int players = FloodgateApi.getInstance().getPlayers().size();
context.getSender().sendMessage(Component.text(players));
}