Upload folder via GUI - src

This commit is contained in:
Git Manager GUI
2026-04-06 22:42:47 +02:00
parent 51b94955f4
commit 4e18de17fc
41 changed files with 5671 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
package dev.viper.eventengine.model;
import org.bukkit.entity.Player;
import java.util.*;
/**
* Repräsentiert eine aktuell laufende Event-Instanz.
*/
public class ActiveEvent {
public enum State { WAITING, RUNNING, ENDED }
private final EventDefinition definition;
private State state;
private final long startTime;
private final Set<UUID> participants;
private final Map<UUID, Integer> scores;
private int taskId = -1;
public ActiveEvent(EventDefinition definition) {
this.definition = definition;
this.state = State.WAITING;
this.startTime = System.currentTimeMillis();
this.participants = new LinkedHashSet<>();
this.scores = new HashMap<>();
}
public void addParticipant(Player player) {
participants.add(player.getUniqueId());
scores.putIfAbsent(player.getUniqueId(), 0);
}
public void removeParticipant(Player player) {
participants.remove(player.getUniqueId());
}
public boolean isParticipant(Player player) {
return participants.contains(player.getUniqueId());
}
public void addScore(UUID uuid, int points) {
scores.merge(uuid, points, Integer::sum);
}
public int getScore(UUID uuid) {
return scores.getOrDefault(uuid, 0);
}
/** Gibt Spieler sortiert nach Score zurück */
public List<Map.Entry<UUID, Integer>> getLeaderboard() {
List<Map.Entry<UUID, Integer>> entries = new ArrayList<>(scores.entrySet());
entries.sort((a, b) -> b.getValue() - a.getValue());
return entries;
}
public long getElapsedSeconds() {
return (System.currentTimeMillis() - startTime) / 1000;
}
public long getRemainingSeconds() {
if (definition.getDurationSeconds() == 0) return -1;
long remaining = definition.getDurationSeconds() - getElapsedSeconds();
return Math.max(0, remaining);
}
public EventDefinition getDefinition() { return definition; }
public State getState() { return state; }
public void setState(State state) { this.state = state; }
public Set<UUID> getParticipants() { return Collections.unmodifiableSet(participants); }
public Map<UUID, Integer> getScores() { return scores; }
public int getTaskId() { return taskId; }
public void setTaskId(int taskId) { this.taskId = taskId; }
public int getParticipantCount() { return participants.size(); }
}