diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ClientHandler.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ClientHandler.java index 9ce1b5b0712c2b7bc62d1d90ad920ea73eb7bfcd..cb3e17a80ed734954fb4c021ddc84f519e4c44bb 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ClientHandler.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ClientHandler.java @@ -8,7 +8,7 @@ import lombok.Setter; import java.io.*; import java.net.Socket; -import java.util.UUID; +import java.util.*; public class ClientHandler implements Runnable { @@ -59,7 +59,9 @@ public class ClientHandler implements Runnable { @Setter private boolean gameActive = true; - /** Map seed */ + /** + * Map seed + */ private int seed; /** @@ -67,6 +69,23 @@ public class ClientHandler implements Runnable { */ private User user; + /** + * Planet name array + */ + private String[] names = {"MERCURY", "VENUS", "EARTH", "MARS", "JUPITER", "SATURN", "URANUS", "NEPTUN", "PLUTO", "AUGUSTUS", + "SIRIUS", "HOMESTREAD", "ALPHA CENTAURI", "GLIESE", "404 NOT FOUND", "KEPLER", "TOI", "USCO1621b","OGLE","WASP","WENDELSTEIN" + ,"EPIC","ARION","DIMIDIUM","GALILEO","DAGON","SMETRIOS","THESTIAS","SAMH","SAFFAR","ARBER","MADRIU","AWASIS","DITSO"}; + + /** + * Planet name list + */ + private List<String> planetNames; + + /** + * Used planet names list + */ + private List<String> usedPlanetNames = new ArrayList<>(); + /** * Constructor * @@ -94,6 +113,7 @@ public class ClientHandler implements Runnable { @Override public void run() { System.out.println("\n========== HANDLER RUNNING ==========\n"); + planetNames.addAll(Arrays.asList(names)); // ==================== LOGIN ==================== try { this.username = receive.readLine().replace("[LOGIN]:", ""); @@ -106,6 +126,7 @@ public class ClientHandler implements Runnable { this.user = serverServiceCommunicator.getUserService().getUser(username); if (user.isFirstGame()) { send.println("[NEW-GAME]"); + // ==================== Overworld Creation ==================== Overworld overworld = new Overworld(UUID.randomUUID().hashCode(), UUID.randomUUID().hashCode(), username); this.seed = overworld.getSeed(); //TODO PLANET CREATION, ADD TO OVERWORLD @@ -156,4 +177,21 @@ public class ClientHandler implements Runnable { send.println("[EXCEPTION]:[LOGIN]:[USERNAME]:" + username); } } + + /** + * Get a new planet name + * + * @param names - planet names + * @param usedNames - the already used planet names + * @param seed - the world seed + * @return an unused planet name + */ + private String getPlanetName(List<String> names, List<String> usedNames, int seed) { + Random random = new Random(seed); + String newName = names.get(random.nextInt(names.size())); + if (usedNames.contains(newName)) { + getPlanetName(names, usedNames, seed); + } + return newName; + } }