removed package minenet

This commit is contained in:
jannis committed 2026-10-24 22:43:09 +02:00
1 parent 4e6255483b
commit d70b3b826e
6 files changed
-321

No files matched your search

@@ -1,83 +0,0 @@
package eu.mhsl.minenet.loginServer;
import net.kyori.adventure.key.Key;
import net.kyori.adventure.nbt.CompoundBinaryTag;
import net.kyori.adventure.text.Component;
import net.minestom.server.dialog.*;
import net.minestom.server.entity.Player;
import java.util.ArrayList;
import java.util.List;
public final class Dialog {
private static final Key submitKey = Key.key("profile", "submit");
public static void open(Player player) {
List<DialogInput> inputs = new ArrayList<>();
boolean isAfterStart = Main.globalConfig
.node("server", "is-after-start")
.getBoolean(false);
if (isAfterStart) {
inputs.add(new DialogInput.Text(
"secret", 300,
Component.text("Secret"),
true, "", 50, null
));
}
inputs.add(new DialogInput.Text(
"name", 300,
Component.text("Vorname"),
true, "", 50, null
));
inputs.add(new DialogInput.Text(
"secondName", 300,
Component.text("Nachname"),
true, "", 50, null
));
inputs.add(new DialogInput.Text(
"birthday", 300,
Component.text("Geburtstag (TT.MM.JJJJ)"),
true, "", 10, null
));
inputs.add(new DialogInput.Text(
"phoneNumber", 300,
Component.text("Telefonnummer (optional)"),
true, "", 30, null
));
net.minestom.server.dialog.Dialog dialog = new net.minestom.server.dialog.Dialog.Notice(
new DialogMetadata(
Component.text("Spielerprofil erstellen"),
null,
true,
false,
DialogAfterAction.CLOSE,
List.of(
new DialogBody.PlainMessage(
Component.text(
"Bitte fülle deine Profildaten aus."
),
300
)
),
inputs
),
new DialogActionButton(
Component.text("Speichern"),
null,
200,
new DialogAction.DynamicCustom(
submitKey,
CompoundBinaryTag.builder().build()
)
)
);
player.showDialog(dialog);
}
}
@@ -1,73 +0,0 @@
package eu.mhsl.minenet.loginServer;
import eu.mhsl.minenet.loginServer.listeners.Listener;
import net.minestom.server.Auth;
import net.minestom.server.MinecraftServer;
import net.minestom.server.extras.lan.OpenToLAN;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.yaml.YamlConfigurationLoader;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.logging.Logger;
public class Main {
private static final Logger logger = Logger.getLogger(Main.class.getName());
public static ConfigurationNode globalConfig;
static void main(String[] args) throws IOException {
Path configPath = Path.of("resources", "config.yml");
if (Files.notExists(configPath)) {
Files.createDirectories(configPath.getParent());
try (InputStream in = Main.class.getResourceAsStream("/config.yml")) {
if (in == null) {
throw new IllegalStateException("config.yml fehlt in src/main/resources!");
}
Files.copy(in, configPath);
}
}
globalConfig = YamlConfigurationLoader.builder().path(configPath).build().load();
ConfigurationNode serverConfig = globalConfig.node("server");
int viewDistance = serverConfig.node("view-distance").getInt(12);
if (viewDistance > 0) {
System.setProperty("minestom.chunk-view-distance", String.valueOf(viewDistance));
}
logger.info("Initialisiere Minecraft-Server ...");
Auth auth = new Auth.Online();
if (globalConfig.node("bungeecord", "enabled").getBoolean(false)) {
auth = new Auth.Bungee();
} else if (globalConfig.node("velocity", "enabled").getBoolean(false)) {
String secret = globalConfig.node("velocity", "secret").getString("");
if (secret.isBlank()) {
throw new IllegalStateException("Velocity ist aktiviert, aber das Secret fehlt!");
}
auth = new Auth.Velocity(secret);
}
MinecraftServer server = MinecraftServer.init(auth);
MinecraftServer.setCompressionThreshold(serverConfig.node("compression-threshold").getInt(0));
Listener.registerAll(
MinecraftServer.getGlobalEventHandler(),
MinecraftServer.getInstanceManager()
);
if (serverConfig.node("open-to-lan").getBoolean(false)) {
OpenToLAN.open();
}
int port = serverConfig.node("port").getInt(25565);
logger.info("Starte Minecraft-Server auf Port " + port + " ...");
server.start("0.0.0.0", port);
}
}
@@ -1,21 +0,0 @@
package eu.mhsl.minenet.loginServer.listeners;
import net.minestom.server.event.Event;
import net.minestom.server.event.EventNode;
import net.minestom.server.instance.InstanceManager;
import java.util.List;
public interface Listener {
void register(EventNode<Event> node);
static void registerAll(EventNode<Event> node, InstanceManager instanceManager) {
List<Listener> listeners = List.of(
new onPlayerJoin(instanceManager),
new onPlayerMove(),
new dialogOutput()
);
listeners.forEach(listener -> listener.register(node));
}
}
@@ -1,99 +0,0 @@
package eu.mhsl.minenet.loginServer.listeners;
import eu.mhsl.minenet.loginServer.Dialog;
import eu.mhsl.minenet.loginServer.Main;
import net.kyori.adventure.key.Key;
import net.kyori.adventure.nbt.CompoundBinaryTag;
import net.minestom.server.MinecraftServer;
import net.minestom.server.entity.Player;
import net.minestom.server.event.Event;
import net.minestom.server.event.EventNode;
import net.minestom.server.event.player.PlayerCustomClickEvent;
import net.minestom.server.timer.SchedulerManager;
import java.time.Duration;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.time.format.ResolverStyle;
import java.util.Locale;
import java.util.UUID;
public class dialogOutput implements Listener {
@Override
public void register(EventNode<Event> node) {
node.addListener(PlayerCustomClickEvent.class, event -> {
Player player = event.getPlayer();
SchedulerManager schedule = MinecraftServer.getSchedulerManager();
boolean isAfterStart = Main.globalConfig.node("server", "is-after-start").getBoolean(false);
if (!event.getKey().equals(
Key.key("profile", "submit"))) {
return;
}
if (!(event.getPayload() instanceof CompoundBinaryTag data)) {
return;
}
String requiredSecret = "test1234";
String secret = data.getString("secret");
String name = data.getString("name");
String secondName = data.getString("secondName");
String birthday = data.getString("birthday");
String phoneNumber = data.getString("phoneNumber");
String playerName = event.getPlayer().getUsername();
UUID playerUUID = event.getPlayer().getUuid();
if(isAfterStart && !secret.equals(requiredSecret)) {
player.sendMessage("Bitte gebe das richtige Secret an.");
schedule.buildTask(() -> {
Dialog.open(player);
}).delay(Duration.ofMillis(1500)).schedule();
return;
}
if (name.isBlank() || secondName.isBlank() || birthday.isBlank()) {
player.sendMessage("Bitte fülle alle Pflichtfelder aus.");
schedule.buildTask(() -> {
Dialog.open(player);
}).delay(Duration.ofMillis(1500)).schedule();
return;
}
if(!isValidBirthday(birthday)) {
player.sendMessage("Bitte gebe ein richtiges Geburtsdatum an.");
schedule.buildTask(() -> {
Dialog.open(player);
}).delay(Duration.ofMillis(1500)).schedule();
return;
}
player.sendMessage("Danke für deine Anmeldung.");
player.sendMessage("Du bist für das Projekt Craftattack 9 registriert!");
schedule.buildTask(() -> {
player.kick("Anmeldung erfolgreich!");
}).delay(Duration.ofMillis(1500)).schedule();
System.out.println("Vorname: " + name);
System.out.println("Nachname: " + secondName);
System.out.println("Geburtstag: " + birthday);
System.out.println("Telefonnummer: " + phoneNumber);
System.out.println("Spielername: " + playerName);
System.out.println("Spieler UUID: " + playerUUID);
});
}
public static boolean isValidBirthday(String birthday) {
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("dd.MM.uuuu", Locale.GERMANY)
.withResolverStyle(ResolverStyle.STRICT);
try {
LocalDate date = LocalDate.parse(birthday, formatter);
return !date.isAfter(LocalDate.now());
} catch (DateTimeParseException e) {
return false;
}
}
}
@@ -1,31 +0,0 @@
package eu.mhsl.minenet.loginServer.listeners;
import eu.mhsl.minenet.loginServer.Dialog;
import net.minestom.server.MinecraftServer;
import net.minestom.server.coordinate.Pos;
import net.minestom.server.entity.Player;
import net.minestom.server.event.Event;
import net.minestom.server.event.EventNode;
import net.minestom.server.event.player.AsyncPlayerConfigurationEvent;
import net.minestom.server.instance.InstanceManager;
import java.time.Duration;
public class onPlayerJoin implements Listener {
private final InstanceManager instanceManager;
public onPlayerJoin(InstanceManager instanceManager) {
this.instanceManager = instanceManager;
}
@Override
public void register(EventNode<Event> node) {
node.addListener(AsyncPlayerConfigurationEvent.class, event ->{
final Player player = event.getPlayer();
event.setSpawningInstance(instanceManager.createInstanceContainer());
player.setRespawnPoint(new Pos(0, 100, 0));
MinecraftServer.getSchedulerManager().buildTask(() -> {
Dialog.open(player);
}).delay(Duration.ofMillis(500)).schedule();
});
}
}
@@ -1,14 +0,0 @@
package eu.mhsl.minenet.loginServer.listeners;
import net.minestom.server.event.Event;
import net.minestom.server.event.EventNode;
import net.minestom.server.event.player.PlayerMoveEvent;
public class onPlayerMove implements Listener {
@Override
public void register(EventNode<Event> node) {
node.addListener(PlayerMoveEvent.class, event -> {
event.setCancelled(true);
});
}
}