From 0699206c21c3cb03cb4502710145477435b6215c Mon Sep 17 00:00:00 2001
From: lars <larslukasneuhaus@gmx.de>
Date: Sat, 23 Nov 2024 14:26:19 +0100
Subject: [PATCH] started fixing pr comments

---
 build.gradle                                   |  2 +-
 .../minigames/command/PrivilegedCommand.java   |  4 +---
 .../instance/game/stateless/StatelessGame.java |  2 +-
 .../game/stateless/types/tetris/Tetris.java    | 18 +++++++++++-------
 4 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/build.gradle b/build.gradle
index 5d7a77d..6607b2c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -89,5 +89,5 @@ tasks.register('copyJarToServer', Exec) {
     dependsOn shadowJar
     mustRunAfter shadowJar
 
-    commandLine 'scp', 'build/libs/Minigames-1.0-SNAPSHOT.jar', '/home/lars/Documents/Minecraft Server/minigames'
+    commandLine 'scp', 'build/libs/Minigames-1.0-SNAPSHOT.jar', 'root@10.20.6.5:/root/minigames'
 }
diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/PrivilegedCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/PrivilegedCommand.java
index 7a2cc37..13294f6 100644
--- a/src/main/java/eu/mhsl/minenet/minigames/command/PrivilegedCommand.java
+++ b/src/main/java/eu/mhsl/minenet/minigames/command/PrivilegedCommand.java
@@ -27,9 +27,7 @@ public class PrivilegedCommand extends Command {
     }
 
     protected CommandCondition isPrivileged() {
-        //TODO
-//        return (sender, commandString) -> sender.hasPermission("admin");
-        return (sender, commandString) -> true;
+        return (sender, commandString) -> sender.hasPermission("admin");
     }
 
     protected void addCondition(CommandCondition condition) {
diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/StatelessGame.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/StatelessGame.java
index 7bb79c8..cef6668 100644
--- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/StatelessGame.java
+++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/StatelessGame.java
@@ -100,7 +100,7 @@ public class StatelessGame extends Game {
         countdownUnload();
     }
 
-    protected void countdownUnload() {
+    private void countdownUnload() {
         new TitleMessage(Duration.ofSeconds(1)).appendTranslated("score#done").send(getPlayers());
         scheduler().scheduleTask(this::unload, TaskSchedule.seconds(5), TaskSchedule.stop());
     }
diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java
index f7b19ef..a5d506b 100644
--- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java
+++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java
@@ -18,12 +18,13 @@ import net.minestom.server.item.ItemStack;
 import net.minestom.server.item.Material;
 import org.jetbrains.annotations.NotNull;
 
-import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Random;
+import java.util.WeakHashMap;
 
 class Tetris extends StatelessGame {
-    private final Map<Player, TetrisGame> tetrisGames = new HashMap<>();
+    private final Map<Player, TetrisGame> tetrisGames = new WeakHashMap<>();
     private final int nextTetrominoesCount;
     private final boolean isFast;
     private final boolean hasCombat;
@@ -53,7 +54,7 @@ class Tetris extends StatelessGame {
             .forEach(Entity::remove);
 
         if(this.hasCombat) {
-            this.tetrisGames.forEach((player, tetrisGame) -> tetrisGame.updateOtherTetrisGames(this.tetrisGames.values().stream().toList()));
+            this.tetrisGames.values().forEach(tetrisGame -> tetrisGame.updateOtherTetrisGames((List<TetrisGame>) this.tetrisGames.values()));
         }
 
         this.tetrisGames.forEach((player, tetrisGame) -> tetrisGame.start());
@@ -76,6 +77,8 @@ class Tetris extends StatelessGame {
 
     @Override
     protected void onPlayerMove(@NotNull PlayerMoveEvent event) {
+        event.setCancelled(true);
+
         Player player = event.getPlayer();
         Pos previousPosition = event.getPlayer().getPosition();
         Pos currentPosition = event.getNewPosition();
@@ -103,15 +106,16 @@ class Tetris extends StatelessGame {
         double forwardAmount = movementVector.dot(forward);
         double leftAmount = movementVector.dot(left);
 
-        if (forwardAmount > 0.018) {
+        double buttonPressAmount = 0.018;
+        if (forwardAmount > buttonPressAmount) {
             tetrisGame.pressedButton(TetrisGame.Button.W);
-        } else if (forwardAmount < -0.018) {
+        } else if (forwardAmount < -buttonPressAmount) {
             tetrisGame.pressedButton(TetrisGame.Button.S);
         }
 
-        if (leftAmount > 0.018) {
+        if (leftAmount > buttonPressAmount) {
             tetrisGame.pressedButton(TetrisGame.Button.D);
-        } else if (leftAmount < -0.018) {
+        } else if (leftAmount < -buttonPressAmount) {
             tetrisGame.pressedButton(TetrisGame.Button.A);
         }