removed package minenet
This commit is contained in:
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);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in new issue
Block a user