Parcourir la source

Adding auto-teleport for arena-crossing, reworking border msg

RedstoneFuture il y a 1 an
Parent
commit
4701b07a96

+ 2 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/Messages.java

@@ -159,7 +159,8 @@ public class Messages {
         TEAM_MOVE_MOVED_SENDER("team.move.moved.sender", "&7You moved %player% in another team."),
         TEAM_MOVE_MOVED_TARGET("team.move.moved.target", "&cYou was moved from %sender% to another team."),
 
-        ARENA_ARENA_LEAVE("arena.arena_leave", "&cYou are not allowed to leave the arena."),
+        ARENA_REACHED_BORDER("arena.reached_border", "&cYou are not allowed to leave the game-arena."),
+        ARENA_LEAVED("arena.leaved", "&cYou overstepped the game-arena border and were teleported back to your team-spawn."),
         ARENA_MISSILE_PLACE_DENY("arena.missile_place_deny", "&cYou are not allowed to place a missile here."),
         ARENA_NOT_HIGHER("arena.not_higher", "&cYou can not go higher."),
         ARENA_KICK_INACTIVITY("arena.kick_inactivity", "&cYou were inactive on MissileWars."),

+ 14 - 0
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/GameTimer.java

@@ -20,6 +20,8 @@ package de.butzlabben.missilewars.game.timer;
 
 import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.game.Game;
+import org.bukkit.GameMode;
+import org.bukkit.entity.Player;
 
 /**
  * @author Butzlabben
@@ -68,6 +70,18 @@ public class GameTimer extends Timer {
         if (seconds % 10 == 0) {
             game.getScoreboardManager().updateScoreboard();
         }
+        
+        if (seconds % 4 == 0) {
+            game.getPlayers().values().forEach(mwPlayer -> {
+                if (mwPlayer.getPlayer().getGameMode() != GameMode.SURVIVAL) return;
+                
+                Player player = mwPlayer.getPlayer();
+                if (game.isInGameArea(player.getLocation())) return;
+                
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.ARENA_LEAVED));
+                mwPlayer.getTeam().teleportToTeamSpawn(player);
+            });
+        }
 
         seconds--;
     }