@@ -42,6 +42,7 @@ public class HasCommand implements CommandExecutor, TabCompleter, Listener {
4242 private int globalTimer = 0 ;
4343 private BukkitTask globalTask = null ;
4444 private BukkitTask countdownTask = null ;
45+ private long countAlivePlayers = 0 ;
4546
4647 public HasCommand () {
4748 this .teleportManager = new TeleportManager ();
@@ -74,27 +75,6 @@ else if (args[0].equalsIgnoreCase("help")) {
7475 sender .sendMessage ("Bitte benutze /hashelp!" );
7576 return true ;
7677 }
77- else if (args [0 ].equalsIgnoreCase ("debugstart" )) {
78- sender .sendMessage ("§cBenutzt!" );
79- for (Player player : Bukkit .getOnlinePlayers ()) {
80- startGlobalTimer ();
81- }
82- return true ;
83- }
84- else if (args [0 ].equalsIgnoreCase ("debugstop" )) {
85- sender .sendMessage ("§cBenutzt!" );
86- for (Player player : Bukkit .getOnlinePlayers ()) {
87- stopGlobalTimer ();
88- }
89- return true ;
90- }
91- else if (args [0 ].equalsIgnoreCase ("debugreset" )) {
92- sender .sendMessage ("§cBenutzt!" );
93- for (Player player : Bukkit .getOnlinePlayers ()) {
94- resetGlobalTimer ();
95- }
96- return true ;
97- }
9878 else if (args [0 ].equalsIgnoreCase ("beep" )) {
9979 if (!sender .hasPermission ("has.beep" )) {
10080 sender .sendMessage ("§cDu hast keine Berechtigung um diesen Befehl auszuführen!" );
@@ -113,11 +93,6 @@ else if (args[0].equalsIgnoreCase("teleportall")) {
11393 sender .sendMessage ("Alle Spieler wurden zu den gespeicherten Koordinaten teleportiert." );
11494 return true ;
11595 }
116- else if (args [0 ].equalsIgnoreCase ("time" )) {
117- String globalTimerString = "Abgelaufene Zeit: " + globalTimer ;
118- sender .sendMessage (globalTimerString );
119- return true ;
120- }
12196 else if (args [0 ].equalsIgnoreCase ("endgame" )) {
12297 if (!sender .hasPermission ("has.endgame" )) {
12398 sender .sendMessage ("§cDu hast keine Berechtigung um diesen Befehl auszuführen!" );
@@ -136,7 +111,7 @@ else if (args[0].equalsIgnoreCase("version")) {
136111 sender .sendMessage ("§cDu hast keine Berechtigung um diesen Befehl auszuführen!" );
137112 return true ;
138113 }
139- sender .sendMessage ("§c[HASPlugin] §rHASPlugin Version 2.7.3 " );
114+ sender .sendMessage ("§c[HASPlugin] §rHASPlugin Version 2.8.0 " );
140115 return true ;
141116 }
142117 else if (args [0 ].equalsIgnoreCase ("vote" )) {
@@ -147,6 +122,43 @@ else if (args[0].equalsIgnoreCase("vote")) {
147122 sender .sendMessage ("VOTE" );
148123 return true ;
149124 }
125+ else if (args [0 ].equalsIgnoreCase ("add" )) {
126+ if (!sender .hasPermission ("has.addtime" )) {
127+ sender .sendMessage ("§cDu hast keine Berechtigung, um diesen Befehl auszuführen!" );
128+ return true ;
129+ }
130+
131+ // Überprüfen, ob eine Zeit angegeben wurde
132+ if (args .length < 2 ) {
133+ sender .sendMessage ("§cBitte gib eine Zeit in Sekunden an. Beispiel: /has add 30" );
134+ return true ;
135+ }
136+
137+ try {
138+ // Zeit in Sekunden aus den Argumenten parsen
139+ int secondsToAdd = Integer .parseInt (args [1 ]);
140+
141+ // Negative Zeit verhindern
142+ if (secondsToAdd <= 0 ) {
143+ sender .sendMessage ("§cBitte gib eine positive Zahl ein!" );
144+ return true ;
145+ }
146+
147+ // Prüfen, ob der Timer läuft
148+ if (!timerRunning ) {
149+ sender .sendMessage ("§cAktuell startet keine Runde. Es kann nur Zeit hinzugefügt werden, wenn ein Spiel startet." );
150+ return true ;
151+ }
152+
153+ // Variable 'time' aktualisieren
154+ time += secondsToAdd ;
155+ Bukkit .broadcastMessage ("§aEs wurden §e" + secondsToAdd + " Sekunden §azu hinzugefügt! Die Zeit beträgt jetzt: §e" + time + " Sekunden." );
156+ } catch (NumberFormatException e ) {
157+ sender .sendMessage ("§cBitte gib eine gültige Zahl ein!" );
158+ }
159+
160+ return true ;
161+ }
150162 else if (args [0 ].equalsIgnoreCase ("stop" )) {
151163 if (!sender .hasPermission ("has.stop" )) {
152164 sender .sendMessage ("§cDu hast keine Berechtigung um diesen Befehl auszuführen!" );
@@ -187,7 +199,7 @@ else if (args[0].equalsIgnoreCase("select")) {
187199 Player newSelectedPlayer = Bukkit .getPlayer (args [1 ]);
188200 if (newSelectedPlayer != null && newSelectedPlayer .isOnline ()) {
189201 selectedPlayer = newSelectedPlayer ;
190- sender .sendMessage (selectedPlayer .getName () + " wurde als der suchender Spieler ausgewählt!" );
202+ sender .sendMessage (selectedPlayer .getName () + " wurde als der suchende Spieler ausgewählt!" );
191203 }
192204 else {
193205 sender .sendMessage ("Der angegebene Spieler ist nicht online." );
@@ -222,6 +234,24 @@ else if (time <5) {
222234 }
223235 return true ;
224236 }
237+
238+ //Ab hier die nicht gelisteten (debug) Commands:
239+
240+ else if (args [0 ].equalsIgnoreCase ("debugtime" )) {
241+ if (!sender .hasPermission ("has.debug" )) {
242+ sender .sendMessage ("§cDu hast keine Berechtigung um diesen Befehl auszuführen!" );
243+ return true ;
244+ }
245+ String globalTimerString = "Abgelaufene Zeit: " + globalTimer ;
246+ sender .sendMessage (globalTimerString );
247+ return true ;
248+ }
249+ else if (args [0 ].equalsIgnoreCase ("autor" )) {
250+ for (Player player : Bukkit .getOnlinePlayers ()) {
251+ player .sendTitle ("§4Dieses Plugin wurde programmiert von:" , "§aVoidableMoon884" , 10 , 70 , 20 );
252+ }
253+ return true ;
254+ }
225255 else {
226256 if (!moreThanOnePlayerOnline ()) {
227257 sender .sendMessage ("Es sind nicht genug Spieler online!" );
@@ -271,6 +301,10 @@ public List<String> onTabComplete(CommandSender sender, Command cmd, String alia
271301 completions .add ("beep" );
272302 completions .add ("endgame" );
273303 completions .add ("vote" );
304+ completions .add ("add" );
305+ if (sender .hasPermission ("has.autor" )) {
306+ completions .add ("autor" );
307+ }
274308 return completions .stream ()
275309 .filter (s -> s .startsWith (args [0 ]))
276310 .collect (Collectors .toList ());
@@ -478,7 +512,9 @@ private void checkIfSelectedPlayerKilledEveryone() {
478512 }
479513
480514 long countAlivePlayers = Bukkit .getOnlinePlayers ().stream ()
481- .filter (player -> !player .equals (selectedPlayer ) && !player .isDead ())
515+ .filter (player -> !player .equals (selectedPlayer )
516+ && player .isOnline ()
517+ && !player .getGameMode ().equals (GameMode .SPECTATOR ))
482518 .count ();
483519
484520 if (countAlivePlayers == 0 ) {
@@ -609,10 +645,10 @@ public void removeEffects() {
609645 }
610646
611647 public void giveEffects () {
612- selectedPlayer .addPotionEffect (new PotionEffect (PotionEffectType .INCREASE_DAMAGE , PotionEffect .INFINITE_DURATION , 1 ));
648+ selectedPlayer .addPotionEffect (new PotionEffect (PotionEffectType .INCREASE_DAMAGE , PotionEffect .INFINITE_DURATION , 1 , true , false ));
613649 for (Player player : Bukkit .getOnlinePlayers ()) {
614650 if (!player .equals (selectedPlayer )) {
615- player .addPotionEffect (new PotionEffect (PotionEffectType .SLOW , PotionEffect .INFINITE_DURATION , 0 ));
651+ player .addPotionEffect (new PotionEffect (PotionEffectType .SLOW , PotionEffect .INFINITE_DURATION , 0 , true , false ));
616652 }
617653 }
618654 }
0 commit comments