Skip to content

Commit ac44f2c

Browse files
Changes for 2.7.1
- Actionbar Timer now usable - added new debug commands
1 parent 843f733 commit ac44f2c

File tree

11 files changed

+66
-47
lines changed

11 files changed

+66
-47
lines changed

src/main/java/de/vmoon/hasplugin/commands/HasCommand.java

Lines changed: 63 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.bukkit.potion.PotionEffect;
2121
import org.bukkit.potion.PotionEffectType;
2222
import org.bukkit.scheduler.BukkitRunnable;
23+
import org.bukkit.scheduler.BukkitTask;
2324
import org.bukkit.scoreboard.Scoreboard;
2425
import org.bukkit.scoreboard.ScoreboardManager;
2526
import org.bukkit.scoreboard.Team;
@@ -38,6 +39,9 @@ public class HasCommand implements CommandExecutor, TabCompleter, Listener {
3839
private TeleportManager teleportManager;
3940
private Team noNameTagTeam;
4041
private Map<Player, Integer> timers = new HashMap<>();
42+
private int globalTimer = 0;
43+
private BukkitTask globalTask = null;
44+
private BukkitTask countdownTask = null;
4145

4246
public HasCommand() {
4347
this.teleportManager = new TeleportManager();
@@ -48,9 +52,6 @@ public HasCommand() {
4852
@Override
4953
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
5054
selectRandomPlayer();
51-
for (Player player : Bukkit.getOnlinePlayers()) {
52-
resetActionbarTimer();
53-
}
5455
if (cmd.getName().equalsIgnoreCase("has")) {
5556
if (!sender.hasPermission("has.run")) {
5657
sender.sendMessage("§cDu hast keine Berechtigung um diesen Befehl auszuführen!");
@@ -73,8 +74,25 @@ else if (args[0].equalsIgnoreCase("help")) {
7374
sender.sendMessage("Bitte benutze /hashelp!");
7475
return true;
7576
}
76-
else if (args[0].equalsIgnoreCase("debug")) {
77+
else if (args[0].equalsIgnoreCase("debugstart")) {
7778
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+
}
7896
return true;
7997
}
8098
else if (args[0].equalsIgnoreCase("beep")) {
@@ -113,7 +131,7 @@ else if (args[0].equalsIgnoreCase("version")) {
113131
sender.sendMessage("§cDu hast keine Berechtigung um diesen Befehl auszuführen!");
114132
return true;
115133
}
116-
sender.sendMessage("§c[HASPlugin] §rHASPlugin Version 2.7.0");
134+
sender.sendMessage("§c[HASPlugin] §rHASPlugin Version 2.7.1");
117135
return true;
118136
}
119137
else if (args[0].equalsIgnoreCase("stop")) {
@@ -312,7 +330,7 @@ public void run() {
312330
break;
313331
case 0:
314332
enablepvp();
315-
startTimerForAllPlayers();
333+
startGlobalTimer();
316334
break;
317335
}
318336

@@ -418,7 +436,7 @@ private void cancelgame() {
418436
player.setGameMode(GameMode.ADVENTURE);
419437
player.getInventory().clear();
420438
disablepvp();
421-
stopActionbarTimer(player);
439+
stopGlobalTimer();
422440
gamerunning = false;
423441
}
424442
}
@@ -437,7 +455,7 @@ private void checkIfSelectedPlayerKilledEveryone() {
437455
disablepvp();
438456
for (Player player : Bukkit.getOnlinePlayers()) {
439457
player.sendTitle("§2Alle Gefunden!", "§cSucher: §r" + selectedPlayer.getName(), 10, 70, 20);
440-
stopActionbarTimer(player);
458+
stopGlobalTimer();
441459
}
442460
Bukkit.getScheduler().runTaskLater(HASPlugin.getPlugin(), () -> {
443461
teleportAllPlayers();
@@ -454,7 +472,7 @@ private void endgame() {
454472
disablepvp();
455473
for (Player player : Bukkit.getOnlinePlayers()) {
456474
player.sendTitle("§2Alle Gefunden!", "§cSucher: §r" + selectedPlayer.getName(), 10, 70, 20);
457-
stopActionbarTimer(player);
475+
stopGlobalTimer();
458476
}
459477
Bukkit.getScheduler().runTaskLater(HASPlugin.getPlugin(), () -> {
460478
teleportAllPlayers();
@@ -502,59 +520,59 @@ public void playbeep(Player executor) {
502520
}
503521
}
504522
}
505-
public void startActionbarTimer(Player player) {
506-
if (timers.containsKey(player)) {
507-
player.sendMessage(ChatColor.RED + "Du hast bereits einen Timer gestartet!");
523+
524+
525+
public void startGlobalTimer() {
526+
if (globalTask != null) {
527+
// Der Timer läuft bereits
508528
return;
509529
}
510530

511-
timers.put(player, 0);
512-
new BukkitRunnable() {
531+
globalTimer = 0;
532+
globalTask = new BukkitRunnable() {
513533
@Override
514534
public void run() {
515-
int time = timers.get(player);
516-
time++;
517-
518-
if (!timers.containsKey(player)) {
519-
cancel();
520-
return;
521-
}
522-
523-
timers.put(player, time);
524-
updateActionBar(player, time); // Aktualisiert die Actionbar mit der aktuellen Zeit
535+
globalTimer++;
536+
updateGlobalActionBar();
525537
}
526538
}.runTaskTimer(HASPlugin.getPlugin(), 0, 20);
527539
}
528540

529-
public void startTimerForAllPlayers() {
530-
for (Player player : Bukkit.getOnlinePlayers()) {
531-
startActionbarTimer(player);
541+
public void stopGlobalTimer() {
542+
if (globalTask != null) {
543+
globalTask.cancel();
544+
globalTask = null;
545+
updateGlobalActionBar();
546+
globalTimer = 0;
532547
}
533548
}
534-
535-
private void updateActionBar(Player player, int time) {
536-
String actionBarMessage;
537-
if (time >= 60) {
538-
int minutes = time / 60;
539-
int seconds = time % 60;
540-
String minuteString = (minutes != 1) ? " Minuten" : " Minute";
541-
String secondString = (seconds != 1) ? " Sekunden" : " Sekunde";
542-
actionBarMessage = ChatColor.GREEN + "Timer: " + ChatColor.WHITE + minutes + minuteString + " " + seconds + secondString;
543-
} else {
544-
actionBarMessage = ChatColor.GREEN + "Timer: " + ChatColor.WHITE + time + " Sekunden";
549+
public void resetGlobalTimer() {
550+
stopGlobalTimer();
551+
globalTimer = 0;
552+
updateGlobalActionBar();
553+
554+
// Wenn bereits ein Countdown läuft, breche ihn ab
555+
if (countdownTask != null) {
556+
countdownTask.cancel();
545557
}
546558

547-
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(actionBarMessage));
548-
559+
// Starte einen neuen Countdown für 5 Sekunden
560+
countdownTask = new BukkitRunnable() {
561+
@Override
562+
public void run() {
563+
globalTimer = 0;
564+
updateGlobalActionBar();
565+
}
566+
}.runTaskLater(HASPlugin.getPlugin(), 5 * 20); // 5 Sekunden (20 Ticks pro Sekunde)
549567
}
550568

551-
public void stopActionbarTimer(Player player) {
552-
timers.remove(player);
553-
}
554-
public void resetActionbarTimer() {
569+
public void updateGlobalActionBar() {
570+
String actionBarMessage = ChatColor.GREEN + "Globaler Timer: " + ChatColor.WHITE + globalTimer + " Sekunden";
571+
555572
for (Player player : Bukkit.getOnlinePlayers()) {
556-
timers.put(player, 0);
573+
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(actionBarMessage));
557574
}
558575
}
559576

577+
560578
}

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: HASPlugin
2-
version: 2.7.0
2+
version: 2.7.1
33
# '${project.version}'
44
main: de.vmoon.hasplugin.HASPlugin
55
api-version: '1.20'
140 Bytes
Binary file not shown.

target/HASPlugin-1.0-SNAPSHOT.jar

140 Bytes
Binary file not shown.
-7 Bytes
Binary file not shown.
-657 Bytes
Binary file not shown.
814 Bytes
Binary file not shown.
-299 Bytes
Binary file not shown.

target/classes/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: HASPlugin
2-
version: 2.7.0
2+
version: 2.7.1
33
# '1.0-SNAPSHOT'
44
main: de.vmoon.hasplugin.HASPlugin
55
api-version: '1.20'

target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ de\vmoon\hasplugin\commands\helpCommand.class
55
de\vmoon\hasplugin\commands\pvpCommand.class
66
de\vmoon\hasplugin\commands\TeleportManager.class
77
de\vmoon\hasplugin\HASPlugin.class
8+
de\vmoon\hasplugin\commands\HasCommand$3.class

0 commit comments

Comments
 (0)