diff --git a/src/main/java/in/dragonbra/javasteam/steam/discovery/MemoryServerListProvider.java b/src/main/java/in/dragonbra/javasteam/steam/discovery/MemoryServerListProvider.java new file mode 100644 index 00000000..f8439999 --- /dev/null +++ b/src/main/java/in/dragonbra/javasteam/steam/discovery/MemoryServerListProvider.java @@ -0,0 +1,32 @@ +package in.dragonbra.javasteam.steam.discovery; + +import java.util.ArrayList; +import java.util.List; + +/** + * A server list provider that uses an in-memory list + */ +public class MemoryServerListProvider implements IServerListProvider { + + List _server = new ArrayList<>(); + + /** + * Returns the stored server list in memory + * + * @return List of servers if persisted, otherwise an empty list + */ + @Override + public List fetchServerList() { + return _server; + } + + /** + * Stores the supplied list of servers in memory + * + * @param endpoints List of endpoints (servers) + */ + @Override + public void updateServerList(List endpoints) { + _server = endpoints; + } +} diff --git a/src/main/java/in/dragonbra/javasteam/steam/steamclient/configuration/SteamConfigurationBuilder.java b/src/main/java/in/dragonbra/javasteam/steam/steamclient/configuration/SteamConfigurationBuilder.java index 1d419b30..7766b811 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/steamclient/configuration/SteamConfigurationBuilder.java +++ b/src/main/java/in/dragonbra/javasteam/steam/steamclient/configuration/SteamConfigurationBuilder.java @@ -4,7 +4,7 @@ import in.dragonbra.javasteam.enums.EUniverse; import in.dragonbra.javasteam.networking.steam3.ProtocolTypes; import in.dragonbra.javasteam.steam.discovery.IServerListProvider; -import in.dragonbra.javasteam.steam.discovery.NullServerListProvider; +import in.dragonbra.javasteam.steam.discovery.MemoryServerListProvider; import in.dragonbra.javasteam.steam.webapi.WebAPI; import okhttp3.OkHttpClient; @@ -30,7 +30,7 @@ public static SteamConfigurationState createDefaultState() { state.setDefaultPersonaStateFlags(EnumSet.of(EClientPersonaStateFlag.PlayerName, EClientPersonaStateFlag.Presence, EClientPersonaStateFlag.SourceID, EClientPersonaStateFlag.GameExtraInfo, EClientPersonaStateFlag.LastSeen)); state.setProtocolTypes(ProtocolTypes.TCP); - state.setServerListProvider(new NullServerListProvider()); + state.setServerListProvider(new MemoryServerListProvider()); state.setUniverse(EUniverse.Public); state.setWebAPIBaseAddress(WebAPI.DEFAULT_BASE_ADDRESS); state.setHttpClient(new OkHttpClient()); diff --git a/src/test/java/in/dragonbra/javasteam/steam/steamclient/configuration/SteamConfigurationTest.java b/src/test/java/in/dragonbra/javasteam/steam/steamclient/configuration/SteamConfigurationTest.java index e94baa9f..3c2de2e5 100644 --- a/src/test/java/in/dragonbra/javasteam/steam/steamclient/configuration/SteamConfigurationTest.java +++ b/src/test/java/in/dragonbra/javasteam/steam/steamclient/configuration/SteamConfigurationTest.java @@ -4,7 +4,7 @@ import in.dragonbra.javasteam.enums.EUniverse; import in.dragonbra.javasteam.networking.steam3.ProtocolTypes; import in.dragonbra.javasteam.steam.discovery.IServerListProvider; -import in.dragonbra.javasteam.steam.discovery.NullServerListProvider; +import in.dragonbra.javasteam.steam.discovery.MemoryServerListProvider; import in.dragonbra.javasteam.steam.discovery.ServerRecord; import in.dragonbra.javasteam.util.compat.Consumer; import okhttp3.OkHttpClient; @@ -70,7 +70,7 @@ public void defaultHttpClient() { @Test public void serverListProviderIsNothingFancy() { - assertTrue(defaultConfig.getServerListProvider() instanceof NullServerListProvider); + assertTrue(defaultConfig.getServerListProvider() instanceof MemoryServerListProvider); } @Test