Cleanup demo servers

This commit is contained in:
TheMode 2021-06-21 00:14:28 +02:00
parent e79b5ce41d
commit 8a2f68812c
2 changed files with 9 additions and 46 deletions

View File

@ -25,19 +25,17 @@ public class MainDemo {
InstanceContainer instanceContainer = instanceManager.createInstanceContainer();
// Set the ChunkGenerator
instanceContainer.setChunkGenerator(new GeneratorDemo());
// Enable the auto chunk loading (when players come close)
instanceContainer.enableAutoChunkLoad(true);
// Add an event callback to specify the spawning instance (and the spawn position)
GlobalEventHandler globalEventHandler = MinecraftServer.getGlobalEventHandler();
globalEventHandler.addEventCallback(PlayerLoginEvent.class, event -> {
globalEventHandler.addListener(PlayerLoginEvent.class, event -> {
final Player player = event.getPlayer();
event.setSpawningInstance(instanceContainer);
player.setRespawnPoint(new Position(0, 42, 0));
});
// Start the server on port 25565
minecraftServer.start("localhost", 25565);
minecraftServer.start("0.0.0.0", 25565);
}
private static class GeneratorDemo implements ChunkGenerator {

View File

@ -11,13 +11,14 @@ import net.minestom.server.entity.ItemEntity;
import net.minestom.server.entity.Player;
import net.minestom.server.entity.damage.DamageType;
import net.minestom.server.event.Event;
import net.minestom.server.event.EventFilter;
import net.minestom.server.event.EventNode;
import net.minestom.server.event.entity.EntityAttackEvent;
import net.minestom.server.event.item.ItemDropEvent;
import net.minestom.server.event.item.PickupItemEvent;
import net.minestom.server.event.player.*;
import net.minestom.server.event.trait.PlayerEvent;
import net.minestom.server.event.player.PlayerDeathEvent;
import net.minestom.server.event.player.PlayerDisconnectEvent;
import net.minestom.server.event.player.PlayerLoginEvent;
import net.minestom.server.event.player.PlayerSpawnEvent;
import net.minestom.server.instance.Instance;
import net.minestom.server.instance.InstanceContainer;
import net.minestom.server.instance.InstanceManager;
@ -25,9 +26,7 @@ import net.minestom.server.instance.block.Block;
import net.minestom.server.inventory.Inventory;
import net.minestom.server.inventory.InventoryType;
import net.minestom.server.item.ItemStack;
import net.minestom.server.item.ItemTag;
import net.minestom.server.item.Material;
import net.minestom.server.item.metadata.CompassMeta;
import net.minestom.server.monitoring.BenchmarkManager;
import net.minestom.server.monitoring.TickMonitor;
import net.minestom.server.utils.MathUtils;
@ -95,7 +94,7 @@ public class PlayerInit {
event.setSpawningInstance(instance);
int x = Math.abs(ThreadLocalRandom.current().nextInt()) % 500 - 250;
int z = Math.abs(ThreadLocalRandom.current().nextInt()) % 500 - 250;
player.setRespawnPoint(new Position(0, 82f, 0));
player.setRespawnPoint(new Position(0, 42f, 0));
})
.addListener(PlayerSpawnEvent.class, event -> {
final Player player = event.getPlayer();
@ -112,55 +111,23 @@ public class PlayerInit {
static {
InstanceManager instanceManager = MinecraftServer.getInstanceManager();
//StorageLocation storageLocation = MinecraftServer.getStorageManager().getLocation("instance_data", new StorageOptions().setCompression(true));
ChunkGeneratorDemo chunkGeneratorDemo = new ChunkGeneratorDemo();
NoiseTestGenerator noiseTestGenerator = new NoiseTestGenerator();
InstanceContainer instanceContainer = instanceManager.createInstanceContainer(DimensionType.OVERWORLD);
instanceContainer.enableAutoChunkLoad(true);
instanceContainer.setChunkGenerator(chunkGeneratorDemo);
inventory = new Inventory(InventoryType.CHEST_1_ROW, Component.text("Test inventory"));
/*inventory.addInventoryCondition((p, slot, clickType, inventoryConditionResult) -> {
p.sendMessage("click type inventory: " + clickType);
System.out.println("slot inv: " + slot)0;
inventoryConditionResult.setCancel(slot == 3);
});*/
inventory.setItemStack(3, ItemStack.of(Material.DIAMOND, 34));
{
CompassMeta compassMeta = new CompassMeta.Builder()
.lodestonePosition(new Position(0, 0, 0))
.build();
ItemStack itemStack = ItemStack.builder(Material.COMPASS)
.meta(CompassMeta.class, builder -> {
builder.lodestonePosition(new Position(0, 0, 0));
builder.set(ItemTag.Integer("int"), 25);
})
.build();
itemStack = itemStack.with(itemBuilder -> itemBuilder
.amount(10)
.meta(CompassMeta.class, builder -> {
builder.lodestonePosition(new Position(5, 0, 0));
})
.lore(Component.text("Lore")));
}
}
private static AtomicReference<TickMonitor> LAST_TICK = new AtomicReference<>();
private static final AtomicReference<TickMonitor> LAST_TICK = new AtomicReference<>();
public static void init() {
var eventHandler = MinecraftServer.getGlobalEventHandler();
eventHandler.addChild(DEMO_NODE);
var children = eventHandler.findChildren("demo", Event.class);
eventHandler.replaceChildren("demo", PlayerEvent.class, EventNode.type("random", EventFilter.PLAYER));
MinecraftServer.getUpdateManager().addTickMonitor(tickMonitor ->
LAST_TICK.set(tickMonitor));
MinecraftServer.getUpdateManager().addTickMonitor(LAST_TICK::set);
BenchmarkManager benchmarkManager = MinecraftServer.getBenchmarkManager();
MinecraftServer.getSchedulerManager().buildTask(() -> {
@ -181,6 +148,4 @@ public class PlayerInit {
Audiences.players().sendPlayerListHeaderAndFooter(header, footer);
}).repeat(10, TimeUnit.TICK).schedule();
}
}