This commit is contained in:
parent
f55ae746be
commit
27fbb70dd3
|
@ -6,30 +6,32 @@ import com.google.gson.JsonParser;
|
||||||
import com.google.gson.JsonSyntaxException;
|
import com.google.gson.JsonSyntaxException;
|
||||||
|
|
||||||
import net.minestom.server.MinecraftServer;
|
import net.minestom.server.MinecraftServer;
|
||||||
|
import net.minestom.server.coordinate.Point;
|
||||||
import net.minestom.server.coordinate.Pos;
|
import net.minestom.server.coordinate.Pos;
|
||||||
import net.minestom.server.entity.GameMode;
|
import net.minestom.server.entity.GameMode;
|
||||||
import net.minestom.server.event.GlobalEventHandler;
|
import net.minestom.server.event.GlobalEventHandler;
|
||||||
import net.minestom.server.event.player.AsyncPlayerConfigurationEvent;
|
import net.minestom.server.event.player.AsyncPlayerConfigurationEvent;
|
||||||
|
import net.minestom.server.event.player.PlayerBlockInteractEvent;
|
||||||
import net.minestom.server.event.player.PlayerSpawnEvent;
|
import net.minestom.server.event.player.PlayerSpawnEvent;
|
||||||
import net.minestom.server.extras.velocity.VelocityProxy;
|
import net.minestom.server.extras.velocity.VelocityProxy;
|
||||||
import net.minestom.server.instance.AnvilLoader;
|
import net.minestom.server.instance.AnvilLoader;
|
||||||
import net.minestom.server.instance.InstanceContainer;
|
import net.minestom.server.instance.InstanceContainer;
|
||||||
import net.minestom.server.instance.InstanceManager;
|
import net.minestom.server.instance.InstanceManager;
|
||||||
import net.minestom.server.instance.LightingChunk;
|
import net.minestom.server.instance.LightingChunk;
|
||||||
|
import net.minestom.server.instance.block.Block;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
public static void main( String[] args )
|
public static void main(String[] args) {
|
||||||
{
|
|
||||||
File file = new File("config.json");
|
File file = new File("config.json");
|
||||||
if(!file.exists()) {
|
if (!file.exists()) {
|
||||||
System.err.println("config.json missing!");
|
System.err.println("config.json missing!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(file.isDirectory()) {
|
if (file.isDirectory()) {
|
||||||
System.err.println("config.json has to be a file!");
|
System.err.println("config.json has to be a file!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -40,28 +42,83 @@ public class Main {
|
||||||
} catch (JsonIOException | JsonSyntaxException | FileNotFoundException e) {
|
} catch (JsonIOException | JsonSyntaxException | FileNotFoundException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
MinecraftServer minecraftServer = MinecraftServer.init();
|
MinecraftServer minecraftServer = MinecraftServer.init();
|
||||||
|
|
||||||
InstanceManager instanceManager = MinecraftServer.getInstanceManager();
|
InstanceManager instanceManager = MinecraftServer.getInstanceManager();
|
||||||
InstanceContainer instance = instanceManager.createInstanceContainer();
|
InstanceContainer instance = instanceManager.createInstanceContainer();
|
||||||
|
|
||||||
instance.setChunkLoader(new AnvilLoader("./world"));
|
instance.setChunkLoader(new AnvilLoader("./world"));
|
||||||
instance.setChunkSupplier(LightingChunk::new);
|
instance.setChunkSupplier(LightingChunk::new);
|
||||||
|
|
||||||
if(json.has("velocity")) {
|
if (json.has("velocity")) {
|
||||||
MinecraftServer.LOGGER.info("Enabling velocity proxy support!");
|
MinecraftServer.LOGGER.info("Enabling velocity proxy support!");
|
||||||
VelocityProxy.enable(json.get("velocity").getAsString());
|
VelocityProxy.enable(json.get("velocity").getAsString());
|
||||||
} else {
|
} else {
|
||||||
MinecraftServer.LOGGER.info("Velocity support NOT enabled!");
|
MinecraftServer.LOGGER.info("Velocity support NOT enabled!");
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalEventHandler globalEventHandler = MinecraftServer.getGlobalEventHandler();
|
GlobalEventHandler globalEventHandler = MinecraftServer.getGlobalEventHandler();
|
||||||
globalEventHandler.addListener(AsyncPlayerConfigurationEvent.class, event -> {
|
globalEventHandler.addListener(AsyncPlayerConfigurationEvent.class, event -> {
|
||||||
event.setSpawningInstance(instance);
|
event.setSpawningInstance(instance);
|
||||||
event.getPlayer().setRespawnPoint(new Pos(-342, 57, -342));
|
event.getPlayer().setRespawnPoint(new Pos(-342, 57, -342));
|
||||||
event.getEntity().setGameMode(GameMode.ADVENTURE);
|
event.getEntity().setGameMode(GameMode.ADVENTURE);
|
||||||
});
|
});
|
||||||
|
globalEventHandler.addListener(PlayerBlockInteractEvent.class, event -> {
|
||||||
|
Block[] trapdoors = {
|
||||||
|
Block.IRON_TRAPDOOR,
|
||||||
|
Block.OAK_TRAPDOOR,
|
||||||
|
Block.SPRUCE_TRAPDOOR,
|
||||||
|
Block.BIRCH_TRAPDOOR,
|
||||||
|
Block.JUNGLE_TRAPDOOR,
|
||||||
|
Block.ACACIA_TRAPDOOR,
|
||||||
|
Block.DARK_OAK_TRAPDOOR,
|
||||||
|
Block.MANGROVE_TRAPDOOR,
|
||||||
|
Block.CHERRY_TRAPDOOR,
|
||||||
|
Block.BAMBOO_TRAPDOOR,
|
||||||
|
Block.CRIMSON_TRAPDOOR,
|
||||||
|
Block.WARPED_TRAPDOOR
|
||||||
|
};
|
||||||
|
Block[] doors = {
|
||||||
|
Block.IRON_DOOR,
|
||||||
|
Block.OAK_DOOR,
|
||||||
|
Block.SPRUCE_DOOR,
|
||||||
|
Block.BIRCH_DOOR,
|
||||||
|
Block.JUNGLE_DOOR,
|
||||||
|
Block.ACACIA_DOOR,
|
||||||
|
Block.DARK_OAK_DOOR,
|
||||||
|
Block.MANGROVE_DOOR,
|
||||||
|
Block.CHERRY_DOOR,
|
||||||
|
Block.BAMBOO_DOOR,
|
||||||
|
Block.CRIMSON_DOOR,
|
||||||
|
Block.WARPED_DOOR
|
||||||
|
};
|
||||||
|
boolean isTrapdoor = false;
|
||||||
|
boolean isDoor = false;
|
||||||
|
|
||||||
|
for (int i = 0; i < trapdoors.length; i++) {
|
||||||
|
if (trapdoors[i].compare(event.getBlock())) {
|
||||||
|
isTrapdoor = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 0; i < doors.length; i++) {
|
||||||
|
if (doors[i].compare(event.getBlock())) {
|
||||||
|
isDoor = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isTrapdoor || isDoor) {
|
||||||
|
boolean isOpen = event.getBlock().getProperty("open").equals("true");
|
||||||
|
Block newBlock = event.getBlock().withProperty("open", isOpen ? "false" : "true");
|
||||||
|
event.getInstance().setBlock(event.getBlockPosition(), newBlock);
|
||||||
|
}
|
||||||
|
if (isDoor) {
|
||||||
|
Point pos = event.getBlockPosition().add(0, event.getBlock().getProperty("half").equals("upper") ? -1 : 1,
|
||||||
|
0);
|
||||||
|
Block newBlock = event.getInstance().getBlock(pos).withProperty("open",
|
||||||
|
event.getBlock().getProperty("open").equals("true") ? "false" : "true");
|
||||||
|
event.getInstance().setBlock(pos, newBlock);
|
||||||
|
}
|
||||||
|
});
|
||||||
globalEventHandler.addListener(PlayerSpawnEvent.class, event -> {
|
globalEventHandler.addListener(PlayerSpawnEvent.class, event -> {
|
||||||
event.getEntity().sendMessage("Welcome to The Alliance!");
|
event.getEntity().sendMessage("Welcome to The Alliance!");
|
||||||
event.getEntity().sendMessage("");
|
event.getEntity().sendMessage("");
|
||||||
|
@ -72,6 +129,7 @@ public class Main {
|
||||||
|
|
||||||
// Start the server
|
// Start the server
|
||||||
minecraftServer.start(json.get("host").getAsString(), json.get("port").getAsInt());
|
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());
|
System.out.println("Server started on host " + json.get("host").getAsString() + " and port "
|
||||||
|
+ json.get("port").getAsInt());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue