first commit
This commit is contained in:
commit
3862373cbc
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
target
|
||||||
|
.vscode
|
||||||
|
dependency-reduced-pom.xml
|
1
build.nu
Executable file
1
build.nu
Executable file
|
@ -0,0 +1 @@
|
||||||
|
mvn package; cd target; java -jar lobby-1.0-SNAPSHOT-jar-with-dependencies.jar
|
119
pom.xml
Normal file
119
pom.xml
Normal 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>
|
77
src/main/java/ovh/sad/lobby/Main.java
Normal file
77
src/main/java/ovh/sad/lobby/Main.java
Normal 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());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue