aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/los/numeros
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/los/numeros')
-rw-r--r--src/main/java/los/numeros/HidersAndDiggers/Main.java55
-rw-r--r--src/main/java/los/numeros/command/HidersAndDiggersCommand.java2
2 files changed, 51 insertions, 6 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;
+ }
}
diff --git a/src/main/java/los/numeros/command/HidersAndDiggersCommand.java b/src/main/java/los/numeros/command/HidersAndDiggersCommand.java
index eed4eed..8e27655 100644
--- a/src/main/java/los/numeros/command/HidersAndDiggersCommand.java
+++ b/src/main/java/los/numeros/command/HidersAndDiggersCommand.java
@@ -24,7 +24,7 @@ public class HidersAndDiggersCommand {
MinecraftServer server = ctx.getSource().getMinecraftServer();
/* pass in the minecraft server object and start it */
- new Main(server);
+ new Main(server, 1);
return 0;
}