Skip to content

Commit

Permalink
Add startup call for Forge + Sponge.
Browse files Browse the repository at this point in the history
Sponge untested of course, but uses the same timing as Forge (which
is tested to work).
  • Loading branch information
wizjany committed Jun 22, 2019
1 parent 2011632 commit 949af4e
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 7 deletions.
Expand Up @@ -86,6 +86,7 @@
import java.util.zip.ZipEntry;

import static com.google.common.base.Preconditions.checkNotNull;
import static com.sk89q.worldedit.internal.anvil.ChunkDeleter.DELCHUNKS_FILE_NAME;

/**
* Plugin for Bukkit.
Expand Down Expand Up @@ -114,7 +115,7 @@ public void onLoad() {
server = new BukkitServerInterface(this, getServer());
worldEdit.getPlatformManager().register(server);

Path delChunks = Paths.get(getDataFolder().getPath(), "delete_chunks.json");
Path delChunks = Paths.get(getDataFolder().getPath(), DELCHUNKS_FILE_NAME);
if (Files.exists(delChunks)) {
ChunkDeleter.runFromFile(delChunks, true);
}
Expand Down
Expand Up @@ -55,6 +55,7 @@

import static com.google.common.base.Preconditions.checkNotNull;
import static com.sk89q.worldedit.command.util.Logging.LogMode.REGION;
import static com.sk89q.worldedit.internal.anvil.ChunkDeleter.DELCHUNKS_FILE_NAME;

/**
* Commands for working with chunks.
Expand Down Expand Up @@ -114,8 +115,7 @@ public void deleteChunks(Player player, LocalSession session,
}
Set<BlockVector2> chunks = session.getSelection(player.getWorld()).getChunks();

String chunkFileName = "delete_chunks.json";
File chunkFile = worldEdit.getWorkingDirectoryFile(chunkFileName);
File chunkFile = worldEdit.getWorkingDirectoryFile(DELCHUNKS_FILE_NAME);
Path chunkPath = chunkFile.toPath();
ChunkDeletionInfo currentInfo = null;
if (Files.exists(chunkPath)) {
Expand Down
Expand Up @@ -47,7 +47,9 @@
import java.util.stream.Collectors;

public final class ChunkDeleter {
public static final Logger logger = LoggerFactory.getLogger(ChunkDeleter.class);

public static final String DELCHUNKS_FILE_NAME = "delete_chunks.json";
private static final Logger logger = LoggerFactory.getLogger(ChunkDeleter.class);

private static final Comparator<BlockVector2> chunkSorter = Comparator.comparing(
pos -> (pos.getBlockX() & 31) + (pos.getBlockZ() & 31) * 32);
Expand Down
Expand Up @@ -31,6 +31,7 @@
import com.sk89q.worldedit.forge.proxy.ClientProxy;
import com.sk89q.worldedit.forge.proxy.CommonProxy;
import com.sk89q.worldedit.forge.proxy.ServerProxy;
import com.sk89q.worldedit.internal.anvil.ChunkDeleter;
import com.sk89q.worldedit.util.Location;
import com.sk89q.worldedit.world.biome.BiomeType;
import com.sk89q.worldedit.world.block.BlockCategory;
Expand All @@ -45,7 +46,6 @@
import net.minecraft.util.Hand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.CommandEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
Expand All @@ -58,11 +58,10 @@
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent;
import net.minecraftforge.fml.event.server.FMLServerAboutToStartEvent;
import net.minecraftforge.fml.event.server.FMLServerStartedEvent;
import net.minecraftforge.fml.event.server.FMLServerStoppingEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.fml.loading.FMLLoader;
import net.minecraftforge.fml.loading.FMLPaths;
import net.minecraftforge.registries.ForgeRegistries;
import org.apache.logging.log4j.LogManager;
Expand All @@ -76,6 +75,7 @@

import static com.google.common.base.Preconditions.checkNotNull;
import static com.sk89q.worldedit.forge.ForgeAdapter.adaptPlayer;
import static com.sk89q.worldedit.internal.anvil.ChunkDeleter.DELCHUNKS_FILE_NAME;

/**
* The Forge implementation of WorldEdit.
Expand Down Expand Up @@ -180,6 +180,14 @@ private void setupRegistries() {
}
}

@SubscribeEvent
public void serverAboutToStart(FMLServerAboutToStartEvent event) {
final Path delChunks = workingDir.resolve(DELCHUNKS_FILE_NAME);
if (Files.exists(delChunks)) {
ChunkDeleter.runFromFile(delChunks, true);
}
}

@SubscribeEvent
public void serverStopping(FMLServerStoppingEvent event) {
WorldEdit worldEdit = WorldEdit.getInstance();
Expand Down
Expand Up @@ -20,6 +20,7 @@
package com.sk89q.worldedit.sponge;

import static com.google.common.base.Preconditions.checkNotNull;
import static com.sk89q.worldedit.internal.anvil.ChunkDeleter.DELCHUNKS_FILE_NAME;

import com.google.inject.Inject;
import com.sk89q.worldedit.LocalSession;
Expand All @@ -29,6 +30,7 @@
import com.sk89q.worldedit.extension.platform.Actor;
import com.sk89q.worldedit.extension.platform.Capability;
import com.sk89q.worldedit.extension.platform.Platform;
import com.sk89q.worldedit.internal.anvil.ChunkDeleter;
import com.sk89q.worldedit.sponge.adapter.AdapterLoadException;
import com.sk89q.worldedit.sponge.adapter.SpongeImplAdapter;
import com.sk89q.worldedit.sponge.adapter.SpongeImplLoader;
Expand Down Expand Up @@ -62,6 +64,8 @@

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Optional;
import java.util.concurrent.TimeUnit;

Expand Down Expand Up @@ -134,6 +138,11 @@ public void serverAboutToStart(GameAboutToStartServerEvent event) {
WorldEdit.getInstance().getPlatformManager().unregister(platform);
}

final Path delChunks = workingDir.toPath().resolve(DELCHUNKS_FILE_NAME);
if (Files.exists(delChunks)) {
ChunkDeleter.runFromFile(delChunks, true);
}

this.platform = new SpongePlatform(this);
this.provider = new SpongePermissionsProvider();

Expand Down

0 comments on commit 949af4e

Please sign in to comment.