@@ -43,6 +43,8 @@ public class HasCommand implements CommandExecutor, TabCompleter, Listener {
4343 private BukkitTask globalTask = null ;
4444 private BukkitTask countdownTask = null ;
4545 private long countAlivePlayers = 0 ;
46+ // Globale Map, um die Spieler zu tracken, die gevotet haben
47+ private final Set <Player > playersVoted = new HashSet <>();
4648
4749 public HasCommand () {
4850 this .teleportManager = new TeleportManager ();
@@ -111,21 +113,73 @@ else if (args[0].equalsIgnoreCase("version")) {
111113 sender .sendMessage ("§cDu hast keine Berechtigung um diesen Befehl auszuführen!" );
112114 return true ;
113115 }
114- sender .sendMessage ("§c[HASPlugin] §rHASPlugin Version 2.8.1 " );
116+ sender .sendMessage ("§c[HASPlugin] §rHASPlugin Version 2.8.3 " );
115117 return true ;
116118 }
119+
120+
117121 else if (args [0 ].equalsIgnoreCase ("vote" )) {
118- if (!sender .hasPermission ("has.vote" )) {
119- sender .sendMessage ("§cDu hast keine Berechtigung um diesen Befehl auszuführen!" );
122+ if (!(sender instanceof Player )) {
123+ sender .sendMessage ("§cNur Spieler können diesen Befehl ausführen!" );
124+ return true ;
125+ }
126+
127+ Player player = (Player ) sender ;
128+
129+ if (!player .hasPermission ("has.vote" )) {
130+ player .sendMessage ("§cDu hast keine Berechtigung, um diesen Befehl auszuführen!" );
120131 return true ;
121132 }
133+
122134 if (!moreThanOnePlayerOnline ()) {
123- sender .sendMessage ("Es sind nicht genug Spieler online!" );
135+ player .sendMessage ("§cEs sind nicht genug Spieler online!" );
136+ return true ;
137+ }
138+
139+ // Überprüfe, ob der ausgewählte Spieler existiert
140+ if (selectedPlayer == null || !Bukkit .getOnlinePlayers ().contains (selectedPlayer )) {
141+ player .sendMessage ("§cDer ausgewählte Spieler ist nicht online!" );
124142 return true ;
125143 }
126- sender .sendMessage ("VOTE" );
144+
145+ // Spieler hinzufügen, wenn sie gevotet haben
146+ if (playersVoted .contains (player )) {
147+ player .sendMessage ("§cDu hast bereits gevotet!" );
148+ return true ;
149+ }
150+
151+ playersVoted .add (player );
152+ player .sendMessage ("§aDanke für deinen Vote!" );
153+
154+ // Überprüfen, ob alle Spieler (außer selectedPlayer) gevotet haben
155+ Set <Player > requiredPlayers = Bukkit .getOnlinePlayers ().stream ()
156+ .filter (p -> !p .equals (selectedPlayer ))
157+ .collect (Collectors .toSet ());
158+
159+ if (playersVoted .containsAll (requiredPlayers )) {
160+ // Alle Spieler haben gevotet, führe die Logik aus
161+ if (timerRunning ) {
162+ if (time > 5 ) {
163+ time = 5 ;
164+ Bukkit .broadcastMessage ("§a§lDer Timer wurde auf 5 Sekunden gesetzt!" );
165+ } else if (time < 5 ) {
166+ player .sendMessage ("§cDie Zeit ist bereits unter 5 Sekunden!" );
167+ }
168+ } else {
169+ player .sendMessage ("§cEs läuft kein Timer. Bitte starte erst einen, um ihn zu skippen!" );
170+ }
171+
172+ // Liste zurücksetzen, da die Aktion abgeschlossen ist
173+ playersVoted .clear ();
174+ } else {
175+ // Noch nicht alle haben gevotet
176+ Bukkit .broadcastMessage ("§eNoch nicht alle Spieler haben gevotet!" );
177+ }
178+
127179 return true ;
128180 }
181+
182+
129183 else if (args [0 ].equalsIgnoreCase ("add" )) {
130184 if (!sender .hasPermission ("has.addtime" )) {
131185 sender .sendMessage ("§cDu hast keine Berechtigung, um diesen Befehl auszuführen!" );
0 commit comments