Merge remote-tracking branch 'upstream/master' into breaking

This commit is contained in:
Jesse Boyd
2019-04-03 16:53:34 +11:00
281 changed files with 5963 additions and 5444 deletions

View File

@ -63,6 +63,7 @@ task copyFiles {
shadowJar {
dependencies {
include(dependency(':worldedit-core'))
include(dependency('org.bstats:bstats-sponge:1.4'))
}
archiveName = "${parent.name}-${project.name.replaceAll("worldedit-", "")}-${parent.version}.jar"
destinationDir = file '../target'

View File

@ -26,6 +26,8 @@ import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.math.Vector3;
import com.sk89q.worldedit.util.Location;
import com.sk89q.worldedit.world.World;
import com.sk89q.worldedit.world.biome.BiomeType;
import com.sk89q.worldedit.world.biome.BiomeTypes;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.entity.living.player.Player;
@ -103,6 +105,14 @@ public class SpongeAdapter {
}
}
public static BiomeType adapt(org.spongepowered.api.world.biome.BiomeType biomeType) {
return BiomeTypes.get(biomeType.getId());
}
public static org.spongepowered.api.world.biome.BiomeType adapt(BiomeType biomeType) {
return Sponge.getRegistry().getType(org.spongepowered.api.world.biome.BiomeType.class, biomeType.getId()).orElse(null);
}
/**
* Create a WorldEdit location from a Sponge location.
*

View File

@ -19,15 +19,10 @@
package com.sk89q.worldedit.sponge;
import com.sk89q.worldedit.world.biome.BaseBiome;
import com.sk89q.worldedit.world.biome.BiomeData;
import com.sk89q.worldedit.world.registry.BiomeRegistry;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.world.biome.BiomeType;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
/**
@ -37,23 +32,8 @@ class SpongeBiomeRegistry implements BiomeRegistry {
@Nullable
@Override
public BaseBiome createFromId(int id) {
return new BaseBiome(id);
}
@Override
public List<BaseBiome> getBiomes() {
List<BaseBiome> list = new ArrayList<>();
for (BiomeType biome : Sponge.getGame().getRegistry().getAllOf(BiomeType.class)) {
list.add(new BaseBiome(SpongeWorldEdit.inst().getAdapter().resolve(biome)));
}
return list;
}
@Nullable
@Override
public BiomeData getData(BaseBiome biome) {
return new SpongeBiomeData(SpongeWorldEdit.inst().getAdapter().resolveBiome(biome.getId()));
public BiomeData getData(com.sk89q.worldedit.world.biome.BiomeType biome) {
return new SpongeBiomeData(SpongeAdapter.adapt(biome));
}
private static class SpongeBiomeData implements BiomeData {

View File

@ -25,7 +25,6 @@ import com.flowpowered.math.vector.Vector3d;
import com.flowpowered.math.vector.Vector3i;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.WorldEditException;
import com.sk89q.worldedit.world.block.BaseBlock;
import com.sk89q.worldedit.blocks.BaseItemStack;
import com.sk89q.worldedit.entity.BaseEntity;
import com.sk89q.worldedit.entity.Entity;
@ -36,7 +35,7 @@ import com.sk89q.worldedit.regions.Region;
import com.sk89q.worldedit.registry.state.Property;
import com.sk89q.worldedit.util.Location;
import com.sk89q.worldedit.world.AbstractWorld;
import com.sk89q.worldedit.world.biome.BaseBiome;
import com.sk89q.worldedit.world.biome.BiomeType;
import com.sk89q.worldedit.world.block.BaseBlock;
import com.sk89q.worldedit.world.block.BlockStateHolder;
import com.sk89q.worldedit.world.item.ItemTypes;
@ -193,17 +192,17 @@ public abstract class SpongeWorld extends AbstractWorld {
}
@Override
public BaseBiome getBiome(BlockVector2 position) {
public BiomeType getBiome(BlockVector2 position) {
checkNotNull(position);
return new BaseBiome(SpongeWorldEdit.inst().getAdapter().resolve(getWorld().getBiome(position.getBlockX(), 0, position.getBlockZ())));
return SpongeAdapter.adapt(getWorld().getBiome(position.getBlockX(), 0, position.getBlockZ()));
}
@Override
public boolean setBiome(BlockVector2 position, BaseBiome biome) {
public boolean setBiome(BlockVector2 position, BiomeType biome) {
checkNotNull(position);
checkNotNull(biome);
getWorld().setBiome(position.getBlockX(), 0, position.getBlockZ(), SpongeWorldEdit.inst().getAdapter().resolveBiome(biome.getId()));
getWorld().setBiome(position.getBlockX(), 0, position.getBlockZ(), SpongeAdapter.adapt(biome));
return true;
}

View File

@ -33,7 +33,6 @@ import com.sk89q.worldedit.sponge.adapter.AdapterLoadException;
import com.sk89q.worldedit.sponge.adapter.SpongeImplAdapter;
import com.sk89q.worldedit.sponge.adapter.SpongeImplLoader;
import com.sk89q.worldedit.sponge.config.SpongeConfiguration;
import com.sk89q.worldedit.world.item.ItemTypes;
import org.bstats.sponge.Metrics2;
import org.slf4j.Logger;
import org.spongepowered.api.Sponge;
@ -141,14 +140,14 @@ public class SpongeWorldEdit {
// TODO Handle blockstate stuff
String id = blockType.getId();
if (!com.sk89q.worldedit.world.block.BlockType.REGISTRY.keySet().contains(id)) {
com.sk89q.worldedit.world.block.BlockTypes.register(new com.sk89q.worldedit.world.block.BlockType(id));
com.sk89q.worldedit.world.block.BlockType.REGISTRY.register(id, new com.sk89q.worldedit.world.block.BlockType(id));
}
}
for (ItemType itemType : Sponge.getRegistry().getAllOf(ItemType.class)) {
String id = itemType.getId();
if (!com.sk89q.worldedit.world.item.ItemType.REGISTRY.keySet().contains(id)) {
ItemTypes.register(new com.sk89q.worldedit.world.item.ItemType(id));
com.sk89q.worldedit.world.item.ItemType.REGISTRY.register(id, new com.sk89q.worldedit.world.item.ItemType(id));
}
}

View File

@ -36,16 +36,6 @@ import org.spongepowered.api.world.biome.BiomeType;
*/
public interface SpongeImplAdapter {
/**
* Resolves the numerical ID from this {@link BiomeType}
*
* @param type The biometype
* @return The numerical ID
*/
int resolve(BiomeType type);
BiomeType resolveBiome(int intID);
BaseEntity createBaseEntity(Entity entity);
ItemStack makeSpongeStack(BaseItemStack itemStack);

View File

@ -21,6 +21,8 @@ package com.sk89q.worldedit.sponge.adapter;
import com.google.common.collect.Lists;
import com.sk89q.worldedit.util.io.Closer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
@ -30,15 +32,13 @@ import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Loads Sponge implementation adapters.
*/
public class SpongeImplLoader {
private static final Logger log = Logger.getLogger(SpongeImplLoader.class.getCanonicalName());
private static final Logger log = LoggerFactory.getLogger(SpongeImplLoader.class);
private final List<String> adapterCandidates = new ArrayList<>();
private String customCandidate;
@ -71,7 +71,7 @@ public class SpongeImplLoader {
if (className != null) {
customCandidate = className;
adapterCandidates.add(className);
log.log(Level.INFO, "-Dworldedit.sponge.adapter used to add " + className + " to the list of available Sponge adapters");
log.info("-Dworldedit.sponge.adapter used to add " + className + " to the list of available Sponge adapters");
}
}
@ -157,18 +157,18 @@ public class SpongeImplLoader {
if (SpongeImplAdapter.class.isAssignableFrom(cls)) {
suitableAdapters.add((SpongeImplAdapter) cls.newInstance());
} else {
log.log(Level.WARNING, "Failed to load the Sponge adapter class '" + className +
log.warn("Failed to load the Sponge adapter class '" + className +
"' because it does not implement " + SpongeImplAdapter.class.getCanonicalName());
}
} catch (ClassNotFoundException e) {
log.log(Level.WARNING, "Failed to load the Sponge adapter class '" + className +
log.warn("Failed to load the Sponge adapter class '" + className +
"' that is not supposed to be missing", e);
} catch (IllegalAccessException e) {
log.log(Level.WARNING, "Failed to load the Sponge adapter class '" + className +
log.warn("Failed to load the Sponge adapter class '" + className +
"' that is not supposed to be raising this error", e);
} catch (Throwable e) {
if (className.equals(customCandidate)) {
log.log(Level.WARNING, "Failed to load the Sponge adapter class '" + className + "'", e);
log.warn("Failed to load the Sponge adapter class '" + className + "'", e);
}
}
}

View File

@ -59,6 +59,7 @@ public class ConfigurateConfiguration extends LocalConfiguration {
}
profile = node.getNode("debug").getBoolean(profile);
traceUnflushedSessions = node.getNode("debugging", "trace-unflushed-sessions").getBoolean(traceUnflushedSessions);
wandItem = node.getNode("wand-item").getString(wandItem);
try {
wandItem = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(wandItem)).getId();