|
@@ -3,22 +3,17 @@ package xyz.tbvns.rogue_block.Managers;
|
|
|
import com.mojang.datafixers.util.Either;
|
|
|
import com.sk89q.worldedit.EditSession;
|
|
|
import com.sk89q.worldedit.WorldEdit;
|
|
|
-import com.sk89q.worldedit.WorldEditException;
|
|
|
-import com.sk89q.worldedit.extension.input.ParserContext;
|
|
|
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
|
|
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat;
|
|
|
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats;
|
|
|
import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader;
|
|
|
import com.sk89q.worldedit.fabric.FabricAdapter;
|
|
|
-import com.sk89q.worldedit.fabric.FabricWorld;
|
|
|
-import com.sk89q.worldedit.fabric.FabricWorldEdit;
|
|
|
import com.sk89q.worldedit.function.operation.Operation;
|
|
|
import com.sk89q.worldedit.function.operation.Operations;
|
|
|
import com.sk89q.worldedit.math.BlockVector3;
|
|
|
import com.sk89q.worldedit.session.ClipboardHolder;
|
|
|
-import com.sk89q.worldedit.world.World;
|
|
|
-import com.sk89q.worldedit.world.block.BlockTypes;
|
|
|
import net.fabricmc.fabric.api.util.TriState;
|
|
|
+import net.minecraft.advancement.PlayerAdvancementTracker;
|
|
|
import net.minecraft.block.Blocks;
|
|
|
import net.minecraft.entity.Entity;
|
|
|
import net.minecraft.network.packet.s2c.play.PositionFlag;
|
|
@@ -29,10 +24,16 @@ import net.minecraft.registry.entry.RegistryEntryList;
|
|
|
import net.minecraft.registry.entry.RegistryEntryOwner;
|
|
|
import net.minecraft.registry.tag.TagKey;
|
|
|
import net.minecraft.server.MinecraftServer;
|
|
|
+import net.minecraft.server.command.CommandOutput;
|
|
|
+import net.minecraft.server.command.ServerCommandSource;
|
|
|
import net.minecraft.server.network.ServerPlayerEntity;
|
|
|
import net.minecraft.server.world.ServerWorld;
|
|
|
import net.minecraft.structure.StructureSet;
|
|
|
+import net.minecraft.text.Text;
|
|
|
+import net.minecraft.util.Identifier;
|
|
|
import net.minecraft.util.math.BlockPos;
|
|
|
+import net.minecraft.util.math.Vec2f;
|
|
|
+import net.minecraft.util.math.Vec3d;
|
|
|
import net.minecraft.world.Difficulty;
|
|
|
import net.minecraft.world.GameRules;
|
|
|
import net.minecraft.world.biome.Biome;
|
|
@@ -42,19 +43,17 @@ import net.minecraft.world.gen.chunk.FlatChunkGenerator;
|
|
|
import net.minecraft.world.gen.chunk.FlatChunkGeneratorConfig;
|
|
|
import net.minecraft.world.gen.chunk.FlatChunkGeneratorLayer;
|
|
|
import net.minecraft.world.gen.feature.PlacedFeature;
|
|
|
-import org.apache.commons.io.FileUtils;
|
|
|
-import org.apache.commons.io.IOUtils;
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
import xyz.nucleoid.fantasy.Fantasy;
|
|
|
import xyz.nucleoid.fantasy.RuntimeWorldConfig;
|
|
|
import xyz.nucleoid.fantasy.RuntimeWorldHandle;
|
|
|
import xyz.tbvns.rogue_block.Utils;
|
|
|
|
|
|
-import java.io.File;
|
|
|
-import java.io.FileInputStream;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
+import static xyz.tbvns.rogue_block.Rogue_block.MOD_ID;
|
|
|
+
|
|
|
public class WorldManager {
|
|
|
|
|
|
static RuntimeWorldHandle runWorldHandle;
|
|
@@ -85,9 +84,9 @@ public class WorldManager {
|
|
|
.setTimeOfDay(18000)
|
|
|
.setGenerator(generator)
|
|
|
.setFlat(TriState.TRUE)
|
|
|
- .setSeed(1234L);
|
|
|
+ .setSeed(0L);
|
|
|
|
|
|
- lobbyWorldHandle = fantasy.openTemporaryWorld(worldConfig);
|
|
|
+ lobbyWorldHandle = fantasy.getOrOpenPersistentWorld(Identifier.of(MOD_ID, "lobby"), worldConfig);
|
|
|
|
|
|
ServerWorld world = lobbyWorldHandle.asWorld();
|
|
|
world.setMobSpawnOptions(false);
|
|
@@ -98,7 +97,8 @@ public class WorldManager {
|
|
|
}
|
|
|
|
|
|
ClipboardFormat format = ClipboardFormats.findByAlias("schem");
|
|
|
- System.out.println(format.getFileExtensions());
|
|
|
+
|
|
|
+
|
|
|
try {
|
|
|
Utils.delay(100, () -> {
|
|
|
try {
|
|
@@ -113,8 +113,6 @@ public class WorldManager {
|
|
|
.build();
|
|
|
Operations.complete(operation);
|
|
|
editSession.close();
|
|
|
-
|
|
|
- teleportToLobbyWorld(server);
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException(e);
|
|
|
}
|
|
@@ -159,6 +157,20 @@ public class WorldManager {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public static void clearAchievements(MinecraftServer server) {
|
|
|
+ server.getCommandManager().executeWithPrefix(new ServerCommandSource(
|
|
|
+ CommandOutput.DUMMY,
|
|
|
+ Vec3d.ZERO,
|
|
|
+ Vec2f.ZERO,
|
|
|
+ runWorldHandle.asWorld(),
|
|
|
+ 4,
|
|
|
+ "null",
|
|
|
+ Text.empty(),
|
|
|
+ server,
|
|
|
+ null
|
|
|
+ ), "advancement revoke @a everything");
|
|
|
+ }
|
|
|
+
|
|
|
public static void teleportToLobbyWorld(ServerPlayerEntity entity) {
|
|
|
Random random = new Random();
|
|
|
int x = random.nextInt(-3, 3);
|