Merge pull request 'Add deadline to autoprüfer' (#118) from deadline2 into master
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
Reviewed-on: #118 Reviewed-by: Chaoscaot <chaoscaot444@gmail.com> Reviewed-by: Lixfel <lixfel@steamwar.de>
Dieser Commit ist enthalten in:
Commit
92cb06191a
@ -30,6 +30,10 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
|
||||
@ -45,6 +49,8 @@ public class CheckSchemType {
|
||||
private final Map<Set<String>, Integer> limits;
|
||||
private final int maxBlocks;
|
||||
|
||||
private final Date deadline;
|
||||
|
||||
private CheckSchemType(ConfigurationSection section) {
|
||||
String name = section.getString("Schematic.Type");
|
||||
width = section.getInt("Schematic.Size.x");
|
||||
@ -65,6 +71,18 @@ public class CheckSchemType {
|
||||
}
|
||||
}
|
||||
|
||||
String deadlineString = section.getString("deadline", null);
|
||||
if (deadlineString != null) {
|
||||
try {
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm");
|
||||
deadline = dateFormat.parse(deadlineString);
|
||||
} catch (ParseException e) {
|
||||
throw new SecurityException(e.getMessage(), e);
|
||||
}
|
||||
} else {
|
||||
deadline = null;
|
||||
}
|
||||
|
||||
types.put(SchematicType.fromDB(name.toLowerCase()), this);
|
||||
types.put(SchematicType.fromDB("c" + name.toLowerCase()), this);
|
||||
}
|
||||
@ -126,6 +144,14 @@ public class CheckSchemType {
|
||||
return new HashMap<>(limits);
|
||||
}
|
||||
|
||||
public boolean isAfterDeadline() {
|
||||
return deadline != null && deadline.before(Date.from(Instant.now()));
|
||||
}
|
||||
|
||||
public String getDeadline() {
|
||||
return DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT, Locale.GERMAN).format(deadline);
|
||||
}
|
||||
|
||||
|
||||
public static final ICheckSchemType impl = VersionDependent.getVersionImpl(SchematicSystem.getInstance());
|
||||
|
||||
|
@ -392,7 +392,13 @@ public class SchematicCommandUtils {
|
||||
return;
|
||||
}
|
||||
|
||||
AutoCheckResult result = CheckSchemType.get(type).autoCheck(node);
|
||||
CheckSchemType checkSchemType = CheckSchemType.get(type);
|
||||
if (checkSchemType.isAfterDeadline()) {
|
||||
player.sendMessage("§cVon diesem Typen können keine Schematics mehr eingesendet werden. Einsendeschluss war: " + checkSchemType.getDeadline());
|
||||
return;
|
||||
}
|
||||
|
||||
AutoCheckResult result = checkSchemType.autoCheck(node);
|
||||
Collection<String> errors = result.errors();
|
||||
for (String warning : result.warnings()) {
|
||||
player.sendMessage(" §e" + warning);
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren