Upload folder via GUI - src
This commit is contained in:
@@ -53,6 +53,7 @@ public class EventManager {
|
||||
|
||||
runCommands(def.getStartCommands(), null);
|
||||
handlerRegistry.get(def.getType()).ifPresent(h -> h.onStart(currentEvent));
|
||||
plugin.getScoreboardManager().start(currentEvent);
|
||||
|
||||
if (def.getDurationSeconds() > 0) {
|
||||
final ActiveEvent snap = currentEvent;
|
||||
@@ -87,6 +88,7 @@ public class EventManager {
|
||||
Bukkit.getScheduler().cancelTask(currentEvent.getTaskId());
|
||||
|
||||
handlerRegistry.get(def.getType()).ifPresent(h -> h.onEnd(currentEvent));
|
||||
plugin.getScoreboardManager().stop();
|
||||
|
||||
broadcast(plugin.prefix() + "§6✦ §e" + def.getDisplayName()
|
||||
+ " §7ist beendet! §7(" + reason + ")");
|
||||
@@ -106,6 +108,16 @@ public class EventManager {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean endEventWithWinner(Player winner, String reason) {
|
||||
if (currentEvent == null || currentEvent.getState() == ActiveEvent.State.ENDED) return false;
|
||||
if (winner != null) {
|
||||
currentEvent.setWinner(winner.getUniqueId());
|
||||
broadcast(plugin.prefix() + "§6🏁 " + winner.getName() + " §ehat das Ziel erreicht und gewinnt!");
|
||||
distributeWinnerRewards(currentEvent.getDefinition(), winner);
|
||||
}
|
||||
return endEvent(reason);
|
||||
}
|
||||
|
||||
public boolean join(Player player) {
|
||||
if (currentEvent == null || currentEvent.getState() == ActiveEvent.State.ENDED) {
|
||||
player.sendMessage(plugin.prefix() + "§cKein Event aktiv."); return false;
|
||||
@@ -121,6 +133,7 @@ public class EventManager {
|
||||
broadcast(plugin.prefix() + "§a" + player.getName() + " §7nimmt teil! §8("
|
||||
+ currentEvent.getParticipantCount() + "/" + def.getMaxPlayers() + ")");
|
||||
handlerRegistry.get(def.getType()).ifPresent(h -> h.onPlayerJoin(currentEvent, player));
|
||||
plugin.getScoreboardManager().onJoin(player, currentEvent);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -130,6 +143,7 @@ public class EventManager {
|
||||
currentEvent.removeParticipant(player);
|
||||
handlerRegistry.get(currentEvent.getDefinition().getType())
|
||||
.ifPresent(h -> h.onPlayerLeave(currentEvent, player));
|
||||
plugin.getScoreboardManager().onLeave(player);
|
||||
player.sendMessage(plugin.prefix() + "§7Du hast das Event verlassen.");
|
||||
}
|
||||
|
||||
@@ -161,6 +175,11 @@ public class EventManager {
|
||||
}
|
||||
}
|
||||
|
||||
private void distributeWinnerRewards(EventDefinition def, Player winner) {
|
||||
if (def.getWinnerRewards().isEmpty() || winner == null) return;
|
||||
runCommands(def.getWinnerRewards(), winner);
|
||||
}
|
||||
|
||||
private void runCommands(List<String> cmds, Player player) {
|
||||
for (String cmd : cmds) {
|
||||
String filled = player != null ? cmd.replace("%player%", player.getName()) : cmd;
|
||||
|
||||
Reference in New Issue
Block a user