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