first commit

This commit is contained in:
Soph :3 2024-05-06 13:44:55 +03:00
commit 3862373cbc
Signed by: sophie
GPG key ID: EDA5D222A0C270F2
4 changed files with 200 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
target
.vscode
dependency-reduced-pom.xml

1
build.nu Executable file
View file

@ -0,0 +1 @@
mvn package; cd target; java -jar lobby-1.0-SNAPSHOT-jar-with-dependencies.jar

119
pom.xml Normal file
View file

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ovh.sad.lobby</groupId>
<artifactId>lobby</artifactId>
<version>1.0-SNAPSHOT</version>
<name>lobby</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>22</maven.compiler.source>
<maven.compiler.target>22</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.1.0-alpha1</version>
</dependency>
<dependency>
<groupId>com.github.Minestom</groupId>
<artifactId>Minestom</artifactId>
<version>6b8a4e4cc9</version>
<exclusions>
<exclusion>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-depchain</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<repositories>
<!-- ... -->
<repository>
<id>jitpack</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<build>
<!-- lock down plugins versions to avoid using Maven defaults (may be moved to
parent pom) -->
<plugins>
<!-- clean lifecycle, see
https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- default lifecycle, jar packaging: see
https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!-- site lifecycle, see
https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>jar-with-dependencies</shadedClassifierName>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>ovh.sad.lobby.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View file

@ -0,0 +1,77 @@
package ovh.sad.lobby;
import com.google.gson.JsonIOException;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;
import net.minestom.server.MinecraftServer;
import net.minestom.server.coordinate.Pos;
import net.minestom.server.entity.GameMode;
import net.minestom.server.event.GlobalEventHandler;
import net.minestom.server.event.player.AsyncPlayerConfigurationEvent;
import net.minestom.server.event.player.PlayerSpawnEvent;
import net.minestom.server.extras.velocity.VelocityProxy;
import net.minestom.server.instance.AnvilLoader;
import net.minestom.server.instance.InstanceContainer;
import net.minestom.server.instance.InstanceManager;
import net.minestom.server.instance.LightingChunk;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class Main {
public static void main( String[] args )
{
File file = new File("config.json");
if(!file.exists()) {
System.err.println("config.json missing!");
return;
}
if(file.isDirectory()) {
System.err.println("config.json has to be a file!");
return;
}
JsonObject json = JsonParser.parseString("{}").getAsJsonObject();
try {
json = JsonParser.parseReader(new FileReader("config.json")).getAsJsonObject();
} catch (JsonIOException | JsonSyntaxException | FileNotFoundException e) {
e.printStackTrace();
}
MinecraftServer minecraftServer = MinecraftServer.init();
InstanceManager instanceManager = MinecraftServer.getInstanceManager();
InstanceContainer instance = instanceManager.createInstanceContainer();
instance.setChunkLoader(new AnvilLoader("./world"));
instance.setChunkSupplier(LightingChunk::new);
if(json.has("velocity")) {
MinecraftServer.LOGGER.info("Enabling velocity proxy support!");
VelocityProxy.enable(json.get("velocity").getAsString());
} else {
MinecraftServer.LOGGER.info("Velocity support NOT enabled!");
}
GlobalEventHandler globalEventHandler = MinecraftServer.getGlobalEventHandler();
globalEventHandler.addListener(AsyncPlayerConfigurationEvent.class, event -> {
event.setSpawningInstance(instance);
event.getPlayer().setRespawnPoint(new Pos(-342, 57, -342));
event.getEntity().setGameMode(GameMode.ADVENTURE);
});
globalEventHandler.addListener(PlayerSpawnEvent.class, event -> {
event.getEntity().sendMessage("Welcome to The Alliance!");
event.getEntity().sendMessage("");
event.getEntity().sendMessage("Use /server to list the available servers,");
event.getEntity().sendMessage("and then join them via /server <server name>");
event.getEntity().sendMessage("I hope you enjoy the server! -sophie");
});
// Start the server
minecraftServer.start(json.get("host").getAsString(), json.get("port").getAsInt());
System.out.println("Server started on host " + json.get("host").getAsString() + " and port " + json.get("port").getAsInt());
}
}