Skip to content

Commit bdd5626

Browse files
Changes for 2.8.0
- Now playable with more than 2 players - Now no particles of the effects visible
1 parent 734c51b commit bdd5626

File tree

10 files changed

+103
-33
lines changed

10 files changed

+103
-33
lines changed

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

Lines changed: 67 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

src/main/resources/plugin.yml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: HASPlugin
2-
version: 2.7.8
2+
version: 2.8.0
33
# '${project.version}'
44
main: de.vmoon.hasplugin.HASPlugin
55
api-version: '1.20'
@@ -45,6 +45,12 @@ commands:
4545
has.vote:
4646
description: Voten zum verkürzen des wartens
4747
permission: has.vote
48+
has.addtime:
49+
description: Zeit zum verstecken hinzufügen
50+
permission: has.addtime
51+
has.autor:
52+
description: Autor Befehl
53+
permission: has.autor
4854
pvp:
4955
description: Aktiviert oder deaktiviert PVP.
5056
permission: pvp.use
@@ -108,6 +114,17 @@ permissions:
108114
has.endgame:
109115
description: Beendet das laufende Spiel mit einer Animation.
110116
default: op
117+
has.vote:
118+
description: Voten zum verkürzen des wartens
119+
permission: has.vote
120+
has.autor:
121+
description: Autor Befehl
122+
permission: has.autor
123+
default: false
124+
has.addtime:
125+
description: Zeit zum verstecken hinzufügen
126+
permission: has.addtime
127+
default: op
111128
pvp.use:
112129
description: Aktiviert oder Deaktiviert PVP.
113130
default: op
582 Bytes
Binary file not shown.

target/HASPlugin-1.0-SNAPSHOT.jar

582 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
861 Bytes
Binary file not shown.

target/classes/plugin.yml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: HASPlugin
2-
version: 2.7.8
2+
version: 2.8.0
33
# '1.0-SNAPSHOT'
44
main: de.vmoon.hasplugin.HASPlugin
55
api-version: '1.20'
@@ -45,6 +45,12 @@ commands:
4545
has.vote:
4646
description: Voten zum verkürzen des wartens
4747
permission: has.vote
48+
has.addtime:
49+
description: Zeit zum verstecken hinzufügen
50+
permission: has.addtime
51+
has.autor:
52+
description: Autor Befehl
53+
permission: has.autor
4854
pvp:
4955
description: Aktiviert oder deaktiviert PVP.
5056
permission: pvp.use
@@ -108,6 +114,17 @@ permissions:
108114
has.endgame:
109115
description: Beendet das laufende Spiel mit einer Animation.
110116
default: op
117+
has.vote:
118+
description: Voten zum verkürzen des wartens
119+
permission: has.vote
120+
has.autor:
121+
description: Autor Befehl
122+
permission: has.autor
123+
default: false
124+
has.addtime:
125+
description: Zeit zum verstecken hinzufügen
126+
permission: has.addtime
127+
default: op
111128
pvp.use:
112129
description: Aktiviert oder Deaktiviert PVP.
113130
default: op
582 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)