diff options
author | Squibid <me@zacharyscheiman.com> | 2024-06-05 15:59:40 -0400 |
---|---|---|
committer | Squibid <me@zacharyscheiman.com> | 2024-06-05 15:59:40 -0400 |
commit | a5cb4ed629e277b38f8db92d3f0a7da3a5ed1c34 (patch) | |
tree | 467941c9c57c6ccf8ea88831d19d7c6a9e8ee78f /src/main/java/los/numeros/HidersAndDiggers | |
parent | 5270e7554d7366b65e7355945285373891b2f9b7 (diff) | |
download | lnm-a5cb4ed629e277b38f8db92d3f0a7da3a5ed1c34.tar.gz lnm-a5cb4ed629e277b38f8db92d3f0a7da3a5ed1c34.tar.bz2 lnm-a5cb4ed629e277b38f8db92d3f0a7da3a5ed1c34.zip |
seperate hiders from diggers
Diffstat (limited to 'src/main/java/los/numeros/HidersAndDiggers')
-rw-r--r-- | src/main/java/los/numeros/HidersAndDiggers/Main.java | 55 |
1 files changed, 50 insertions, 5 deletions
diff --git a/src/main/java/los/numeros/HidersAndDiggers/Main.java b/src/main/java/los/numeros/HidersAndDiggers/Main.java index f5fb21c..951b530 100644 --- a/src/main/java/los/numeros/HidersAndDiggers/Main.java +++ b/src/main/java/los/numeros/HidersAndDiggers/Main.java @@ -1,29 +1,74 @@ package los.numeros.HidersAndDiggers; +import java.util.Random; +import java.util.UUID; import java.util.Collection; +import java.util.Date; import java.util.function.BooleanSupplier; import los.numeros.GameEngine.Engine; import los.numeros.GameEngine.Module; import net.fabricmc.fabric.api.networking.v1.PlayerLookup; +import net.minecraft.network.MessageType; import net.minecraft.server.MinecraftServer; import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.text.LiteralText; import los.numeros.HidersAndDiggers.modules.*; public class Main implements Engine { BooleanSupplier running = () -> { return true; }; Module modules[]; - public Main(MinecraftServer server) { + public Main(MinecraftServer server, int numDiggers) { + int i; + ServerPlayerEntity[] players, diggers, hiders; + Random r = new Random(new Date().getTime()); + /* get all the players on the server */ - Collection<ServerPlayerEntity> players = PlayerLookup.all(server); - - /* print out all players on the server */ + Collection<ServerPlayerEntity> playerCollection = PlayerLookup.all(server); + players = playerCollection.toArray(new ServerPlayerEntity[playerCollection.size()]); + + /* create the hiders and diggers array of appropriate sizes */ + diggers = new ServerPlayerEntity[numDiggers]; + hiders = new ServerPlayerEntity[players.length]; + + /* too few players to start the game */ + if (players.length <= 2) { + /* send a message letting everyone know there aren't enough players to start the game */ + server.getPlayerManager().broadcastChatMessage( + new LiteralText("Not enough players to start the game"), + MessageType.SYSTEM, + new UUID(0, 0) + ); + return; + } + + /* creates an array of diggers */ + for (i = 0; numDiggers > 0; numDiggers--, i++) { + /* TODO: make sure the same person isn't picked to be all of the diggers */ + diggers[i] = players[r.nextInt(players.length)]; + } + + /* creates an array of hiders */ for (ServerPlayerEntity p : players) { - System.out.println(p.getEntityName()); + i = 0; + + /* add all players who arent diggers to the hiders array */ + if (!hasPlayer(diggers, p)) { + hiders[i++] = p; + } } /* start the game */ Engine.StartEngine(running, modules); } + + private boolean hasPlayer(ServerPlayerEntity[] array, ServerPlayerEntity player) + { + for (ServerPlayerEntity p : array) { + if (p == player) + return true; + } + return false; + } } |