version 1.0 release
This commit is contained in:
parent
d439140fd6
commit
4702589c25
@ -2,12 +2,11 @@ package eu.mhsl.craftattack.worldmuseum;
|
|||||||
|
|
||||||
import eu.mhsl.craftattack.worldmuseum.commands.GamemodeCommand;
|
import eu.mhsl.craftattack.worldmuseum.commands.GamemodeCommand;
|
||||||
import eu.mhsl.craftattack.worldmuseum.items.ItemManager;
|
import eu.mhsl.craftattack.worldmuseum.items.ItemManager;
|
||||||
import eu.mhsl.craftattack.worldmuseum.temp.GcCommand;
|
|
||||||
import eu.mhsl.craftattack.worldmuseum.commands.SpawnCommand;
|
import eu.mhsl.craftattack.worldmuseum.commands.SpawnCommand;
|
||||||
import eu.mhsl.craftattack.worldmuseum.commands.TeleportCommand;
|
import eu.mhsl.craftattack.worldmuseum.commands.TeleportCommand;
|
||||||
import eu.mhsl.craftattack.worldmuseum.listener.*;
|
import eu.mhsl.craftattack.worldmuseum.listener.*;
|
||||||
import eu.mhsl.craftattack.worldmuseum.skins.SkinCache;
|
import eu.mhsl.craftattack.worldmuseum.skins.SkinCache;
|
||||||
import eu.mhsl.craftattack.worldmuseum.temp.TablistUpdateTask;
|
import eu.mhsl.craftattack.worldmuseum.util.TablistUpdateTask;
|
||||||
import eu.mhsl.craftattack.worldmuseum.util.Config;
|
import eu.mhsl.craftattack.worldmuseum.util.Config;
|
||||||
import eu.mhsl.craftattack.worldmuseum.util.MuseumPlayer;
|
import eu.mhsl.craftattack.worldmuseum.util.MuseumPlayer;
|
||||||
import eu.mhsl.craftattack.worldmuseum.handler.SignHandler;
|
import eu.mhsl.craftattack.worldmuseum.handler.SignHandler;
|
||||||
@ -20,19 +19,20 @@ import net.minestom.server.event.inventory.InventoryPreClickEvent;
|
|||||||
import net.minestom.server.event.item.ItemDropEvent;
|
import net.minestom.server.event.item.ItemDropEvent;
|
||||||
import net.minestom.server.event.player.*;
|
import net.minestom.server.event.player.*;
|
||||||
import net.minestom.server.timer.TaskSchedule;
|
import net.minestom.server.timer.TaskSchedule;
|
||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
static int PORT = 25565;
|
static int PORT = 25565;
|
||||||
static String IP = "0.0.0.0";
|
static final String IP = "0.0.0.0";
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
// Initialization
|
// Initialization
|
||||||
System.setProperty("minestom.chunk-view-distance", "8");
|
System.setProperty("minestom.chunk-view-distance", "16");
|
||||||
MinecraftServer minecraftServer = MinecraftServer.init();
|
MinecraftServer minecraftServer = MinecraftServer.init();
|
||||||
MinecraftServer.getConnectionManager().setPlayerProvider(MuseumPlayer::new);
|
MinecraftServer.getConnectionManager().setPlayerProvider(MuseumPlayer::new);
|
||||||
|
|
||||||
//temp
|
//update Taskbar
|
||||||
MinecraftServer.getSchedulerManager().scheduleTask(new TablistUpdateTask(), TaskSchedule.tick(20), TaskSchedule.tick(20));
|
MinecraftServer.getSchedulerManager().scheduleTask(new TablistUpdateTask(), TaskSchedule.tick(20), TaskSchedule.tick(20));
|
||||||
|
|
||||||
//load eu.mhsl.craftattack.worldmuseum.worlds / configExample file
|
//load eu.mhsl.craftattack.worldmuseum.worlds / configExample file
|
||||||
@ -66,7 +66,6 @@ public class Main {
|
|||||||
|
|
||||||
//commands
|
//commands
|
||||||
MinecraftServer.getCommandManager().register(new TeleportCommand());
|
MinecraftServer.getCommandManager().register(new TeleportCommand());
|
||||||
MinecraftServer.getCommandManager().register(new GcCommand());
|
|
||||||
MinecraftServer.getCommandManager().register(new GamemodeCommand());
|
MinecraftServer.getCommandManager().register(new GamemodeCommand());
|
||||||
MinecraftServer.getCommandManager().register(new SpawnCommand());
|
MinecraftServer.getCommandManager().register(new SpawnCommand());
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ import java.util.Objects;
|
|||||||
public class TeleportCommand extends Command {
|
public class TeleportCommand extends Command {
|
||||||
|
|
||||||
public TeleportCommand() {
|
public TeleportCommand() {
|
||||||
super("tp","teleport");
|
super("tp");
|
||||||
|
|
||||||
var cordinate = ArgumentType.RelativeBlockPosition("Koordinate");
|
var cordinate = ArgumentType.RelativeBlockPosition("Koordinate");
|
||||||
addSyntax(((sender, context) -> {
|
addSyntax(((sender, context) -> {
|
||||||
@ -18,7 +18,7 @@ public class TeleportCommand extends Command {
|
|||||||
player.teleport(pos);
|
player.teleport(pos);
|
||||||
}), cordinate);
|
}), cordinate);
|
||||||
|
|
||||||
var playerArgument = ArgumentType.Entity("Spieler").onlyPlayers(true);
|
var playerArgument = ArgumentType.Entity("Spieler").onlyPlayers(true).singleEntity(true);
|
||||||
addSyntax(((sender, context) -> {
|
addSyntax(((sender, context) -> {
|
||||||
if (context.get(playerArgument).find(sender).size() == 0) return; //check if player is online
|
if (context.get(playerArgument).find(sender).size() == 0) return; //check if player is online
|
||||||
Player targetPlayer = (Player) context.get(playerArgument).find(sender).get(0);
|
Player targetPlayer = (Player) context.get(playerArgument).find(sender).get(0);
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
package eu.mhsl.craftattack.worldmuseum.temp;
|
|
||||||
|
|
||||||
import net.minestom.server.command.builder.Command;
|
|
||||||
|
|
||||||
public class GcCommand extends Command {
|
|
||||||
private static long lastRun = System.currentTimeMillis();
|
|
||||||
private static final Runtime runtime = Runtime.getRuntime();
|
|
||||||
|
|
||||||
public GcCommand() {
|
|
||||||
super("gc");
|
|
||||||
|
|
||||||
// setCondition((sender, commandString) -> sender.hasPermission("admin"));
|
|
||||||
|
|
||||||
setDefaultExecutor((sender, context) -> {
|
|
||||||
long nextRun = (lastRun - (System.currentTimeMillis() - 30*1000)) / 1000;
|
|
||||||
if(nextRun > 0) {
|
|
||||||
sender.sendMessage("pls wait");
|
|
||||||
// new ChatMessage(Icon.ERROR).appendStatic("Please wait ").appendStatic(String.valueOf(nextRun)).appendStatic(" seconds before running GC again!").send(sender);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
lastRun = System.currentTimeMillis();
|
|
||||||
|
|
||||||
long before = getRamUsage();
|
|
||||||
System.gc();
|
|
||||||
long after = getRamUsage();
|
|
||||||
|
|
||||||
sender.sendMessage("before: " + before + " now: " + after);
|
|
||||||
// new ChatMessage(Icon.SUCCESS).appendStatic("Garbage collector ran successfully!").indent(1).newLine()
|
|
||||||
// .appendStatic("before: ").appendStatic(String.valueOf(before)).appendStatic("MB").newLine()
|
|
||||||
// .appendStatic("now: ").appendStatic(String.valueOf(after)).appendStatic("MB").indent(1).newLine()
|
|
||||||
// .appendStatic("difference: ").appendStatic(String.valueOf(before-after)).appendStatic("MB")
|
|
||||||
// .send(sender);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
public static long getRamUsage() {
|
|
||||||
return (runtime.totalMemory() - runtime.freeMemory()) / 1024 / 1024;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +1,4 @@
|
|||||||
package eu.mhsl.craftattack.worldmuseum.temp;
|
package eu.mhsl.craftattack.worldmuseum.util;
|
||||||
|
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
@ -10,10 +10,6 @@ import java.util.Collection;
|
|||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
public class TablistUpdateTask implements Runnable {
|
public class TablistUpdateTask implements Runnable {
|
||||||
private static final Runtime runtime = Runtime.getRuntime();
|
|
||||||
private static final AtomicReference<TickMonitor> lastTick = new AtomicReference<>();
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
Collection<Player> players = MinecraftServer.getConnectionManager().getOnlinePlayers();
|
Collection<Player> players = MinecraftServer.getConnectionManager().getOnlinePlayers();
|
||||||
@ -21,11 +17,8 @@ public class TablistUpdateTask implements Runnable {
|
|||||||
|
|
||||||
final Component header =
|
final Component header =
|
||||||
Component.newline()
|
Component.newline()
|
||||||
.append(Component.text("MineNet Network", NamedTextColor.GOLD))
|
.append(Component.text(" Welten-Museum ", NamedTextColor.GOLD))
|
||||||
.append(Component.newline()).append(Component.text("Players: " + players.size()))
|
.append(Component.newline()).append(Component.text("Players: " + players.size()))
|
||||||
.append(Component.newline())
|
|
||||||
.append(Component.newline()).append(Component.text("RAM: " + getRamUsage() + " MB", NamedTextColor.GRAY))
|
|
||||||
.append(Component.newline()).append(Component.text("TICK: " + getTickMonitor().getTickTime() + "ms", NamedTextColor.GRAY))
|
|
||||||
.append(Component.newline());
|
.append(Component.newline());
|
||||||
|
|
||||||
final Component footer =
|
final Component footer =
|
||||||
@ -35,11 +28,4 @@ public class TablistUpdateTask implements Runnable {
|
|||||||
|
|
||||||
Audiences.players().sendPlayerListHeaderAndFooter(header, footer);
|
Audiences.players().sendPlayerListHeaderAndFooter(header, footer);
|
||||||
}
|
}
|
||||||
public static long getRamUsage() {
|
|
||||||
return (runtime.totalMemory() - runtime.freeMemory()) / 1024 / 1024;
|
|
||||||
}
|
|
||||||
public static TickMonitor getTickMonitor() {
|
|
||||||
return lastTick.get() != null ? lastTick.get() : new TickMonitor(0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
@ -20,19 +20,6 @@ public class World extends InstanceContainer {
|
|||||||
private String name = "default";
|
private String name = "default";
|
||||||
private Pos spawn = new Pos(0,0,0);
|
private Pos spawn = new Pos(0,0,0);
|
||||||
private boolean enabled = false;
|
private boolean enabled = false;
|
||||||
private final String defaultConfig = "{\n" +
|
|
||||||
" \"enabled\": false,\n" +
|
|
||||||
" \"name\": \"DEFAULT_NAME\",\n" +
|
|
||||||
" \"material\": \"GRASS_BLOCK\",\n" +
|
|
||||||
" \"spawn\": {\n" +
|
|
||||||
" \"x\": 0,\n" +
|
|
||||||
" \"y\": 0,\n" +
|
|
||||||
" \"z\": 0\n" +
|
|
||||||
" },\n" +
|
|
||||||
" \"tags\": [\n" +
|
|
||||||
" \"RANDOM_TAG\"\n" +
|
|
||||||
" ]\n" +
|
|
||||||
"}";
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
MinecraftServer.getDimensionTypeManager().addDimension(dimension);
|
MinecraftServer.getDimensionTypeManager().addDimension(dimension);
|
||||||
@ -47,6 +34,20 @@ public class World extends InstanceContainer {
|
|||||||
File checkFile = new File(file.getPath() + "/config.json");
|
File checkFile = new File(file.getPath() + "/config.json");
|
||||||
if (checkFile.createNewFile()) {
|
if (checkFile.createNewFile()) {
|
||||||
FileWriter fileWriter = new FileWriter(file.getPath() + "/config.json");
|
FileWriter fileWriter = new FileWriter(file.getPath() + "/config.json");
|
||||||
|
String defaultConfig = """
|
||||||
|
{
|
||||||
|
"enabled": false,
|
||||||
|
"name": "DEFAULT_NAME",
|
||||||
|
"material": "GRASS_BLOCK",
|
||||||
|
"spawn": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"RANDOM_TAG"
|
||||||
|
]
|
||||||
|
}""";
|
||||||
fileWriter.write(defaultConfig);
|
fileWriter.write(defaultConfig);
|
||||||
fileWriter.close();
|
fileWriter.close();
|
||||||
}
|
}
|
||||||
@ -54,7 +55,6 @@ public class World extends InstanceContainer {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Material material = Material.GRASS_BLOCK;
|
Material material = Material.GRASS_BLOCK;
|
||||||
try {
|
try {
|
||||||
JsonObject config = (JsonObject) JsonParser.parseReader(new FileReader(file.getPath() + "/config.json"));
|
JsonObject config = (JsonObject) JsonParser.parseReader(new FileReader(file.getPath() + "/config.json"));
|
||||||
|
Reference in New Issue
Block a user