Merge branch '3.4.5'

This commit is contained in:
MattBDev
2016-07-31 00:16:37 -04:00
37 changed files with 453 additions and 644 deletions

View File

@ -14,17 +14,23 @@ buildscript {
}
}
apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: 'net.minecrell.vanilla.server.library'
dependencies {
compile project(':Core')
compile 'org.spongepowered:spongeapi:5.0.0-SNAPSHOT'
compile 'net.minecrell.mcstats:statslite-sponge:0.2.2'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
maven {
name = 'minecrell'
url = 'http://repo.minecrell.net/releases'
}
maven {
name = 'forge'
url = 'http://files.minecraftforge.net/maven'
@ -35,7 +41,7 @@ repositories {
}
}
minecraft {
version = "2014"
version = "1.10.2"
mappings = "snapshot_20160629"
runDir = 'run'
}
@ -51,9 +57,9 @@ processResources {
shadowJar {
dependencies {
include(dependency(':Core'))
//include(dependency('org.mcstats.sponge:metrics:R8-SNAPSHOT'))
include dependency('net.minecrell.mcstats:statslite-sponge')
}
//relocate 'org.mcstats', 'com.plotsquared.stats'
relocate 'net.minecrell.mcstats', 'com.plotsquared.util.mcstats'
archiveName = "${parent.name}-${project.name}-${parent.version}.jar"
destinationDir = file '../target'
}

View File

@ -41,7 +41,6 @@ import com.plotsquared.sponge.util.SpongeEconHandler;
import com.plotsquared.sponge.util.SpongeEventUtil;
import com.plotsquared.sponge.util.SpongeHybridUtils;
import com.plotsquared.sponge.util.SpongeInventoryUtil;
import com.plotsquared.sponge.util.SpongeMetrics;
import com.plotsquared.sponge.util.SpongeSchematicHandler;
import com.plotsquared.sponge.util.SpongeSetupUtils;
import com.plotsquared.sponge.util.SpongeTaskManager;
@ -51,13 +50,7 @@ import com.plotsquared.sponge.util.block.SpongeLocalQueue;
import com.plotsquared.sponge.uuid.SpongeLowerOfflineUUIDWrapper;
import com.plotsquared.sponge.uuid.SpongeOnlineUUIDWrapper;
import com.plotsquared.sponge.uuid.SpongeUUIDHandler;
import java.io.File;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import net.minecrell.mcstats.SpongeStatsLite;
import org.slf4j.Logger;
import org.spongepowered.api.Game;
import org.spongepowered.api.Server;
@ -66,6 +59,7 @@ import org.spongepowered.api.config.ConfigDir;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.game.state.GameAboutToStartServerEvent;
import org.spongepowered.api.event.game.state.GamePreInitializationEvent;
import org.spongepowered.api.plugin.Plugin;
import org.spongepowered.api.plugin.PluginContainer;
import org.spongepowered.api.profile.GameProfileManager;
@ -74,8 +68,16 @@ import org.spongepowered.api.world.gen.GenerationPopulator;
import org.spongepowered.api.world.gen.WorldGenerator;
import org.spongepowered.api.world.gen.WorldGeneratorModifier;
import java.io.File;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
@Plugin(id = "plotsquared", name = "PlotSquared", description = "Easy, yet powerful Plot World generation and management.",
url = "https://github.com/IntellectualSites/PlotSquared", version = "3.3.3")
url = "https://github.com/IntellectualSites/PlotSquared", version = "3.5.0-SNAPSHOT")
public class SpongeMain implements IPlotMain {
public static SpongeMain THIS;
@ -89,6 +91,9 @@ public class SpongeMain implements IPlotMain {
@Inject
private Game game;
@Inject
public SpongeStatsLite stats;
private Server server;
@Inject
@ -97,8 +102,7 @@ public class SpongeMain implements IPlotMain {
private GameProfileManager resolver;
// @Override
public Logger getLogger() {
private Logger getLogger() {
return this.logger;
}
@ -121,6 +125,12 @@ public class SpongeMain implements IPlotMain {
return THIS;
}
@Listener
public void onPreInitialize(GamePreInitializationEvent event) {
getLogger().info("The metrics section in PlotSquared is ignored in favor of the actual metrics reporter configurations.");
this.stats.start();
}
@Listener
public void onServerAboutToStart(GameAboutToStartServerEvent event) {
THIS = this;
@ -241,14 +251,11 @@ public class SpongeMain implements IPlotMain {
@Override
public void registerPlotPlusEvents() {
// TODO Auto-generated method stub
PS.log("registerPlotPlusEvents is not implemented!");
}
@Override
public void registerForceFieldEvents() {
// TODO Auto-generated method stub
PS.log("registerForceFieldEvents is not implemented!");
}
@Override
@ -292,16 +299,8 @@ public class SpongeMain implements IPlotMain {
Sponge.getEventManager().registerListeners(this, new WorldEvents());
}
@Override
public String getServerName() {
throw new UnsupportedOperationException("NOT IMPLEMENTED YET");
}
@Override
public void startMetrics() {
SpongeMetrics metrics = new SpongeMetrics(this.game, this.plugin);
metrics.start();
PS.log(C.PREFIX.s() + "&6Metrics enabled.");
}
@Override

View File

@ -5,7 +5,6 @@ import com.intellectualcrafters.plot.generator.AugmentedUtils;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.util.block.DelegateLocalBlockQueue;
import com.plotsquared.sponge.util.SpongeUtil;
import java.util.List;
import org.spongepowered.api.block.BlockState;
import org.spongepowered.api.world.World;
import org.spongepowered.api.world.extent.ImmutableBiomeArea;
@ -13,6 +12,8 @@ import org.spongepowered.api.world.extent.MutableBlockVolume;
import org.spongepowered.api.world.gen.GenerationPopulator;
import org.spongepowered.api.world.gen.WorldGenerator;
import java.util.List;
public class SpongeAugmentedGenerator implements GenerationPopulator {
private static SpongeAugmentedGenerator generator;
@ -51,7 +52,7 @@ public class SpongeAugmentedGenerator implements GenerationPopulator {
@Override
public PlotBlock getBlock(int x, int y, int z) {
BlockState block = terrain.getBlock(bx + x, y, bz + z);
return block == null ? PlotBlock.get(0, 0) : SpongeUtil.getPlotBlock(block);
return SpongeUtil.getPlotBlock(block);
}
@Override

View File

@ -0,0 +1,97 @@
package com.plotsquared.sponge.listener;
import com.flowpowered.math.vector.Vector3d;
import com.intellectualcrafters.plot.flag.Flags;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.plotsquared.sponge.object.SpongePlayer;
import com.plotsquared.sponge.util.SpongeUtil;
import org.spongepowered.api.entity.Entity;
import org.spongepowered.api.entity.EntityTypes;
import org.spongepowered.api.entity.living.player.Player;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
public class ForceFieldListener {
private static Set<PlotPlayer> getNearbyPlayers(Player player, Plot plot) {
Set<PlotPlayer> players = new HashSet<>();
for (Entity nearbyEntity : player.getNearbyEntities(entity -> entity.getType().equals(EntityTypes.PLAYER))) {
Player nearbyPlayer = (Player) nearbyEntity;
PlotPlayer plotPlayer;
if ((plotPlayer = SpongeUtil.getPlayer(nearbyPlayer)) == null || !plot.equals(plotPlayer.getCurrentPlot())) {
continue;
}
if (!plot.isAdded(plotPlayer.getUUID())) {
players.add(plotPlayer);
}
}
return players;
}
private static PlotPlayer hasNearbyPermitted(Player player, Plot plot) {
for (Entity nearbyEntity : player.getNearbyEntities(entity -> entity.getType().equals(EntityTypes.PLAYER))) {
Player nearbyPlayer = (Player) nearbyEntity;
PlotPlayer plotPlayer;
if ((plotPlayer = SpongeUtil.getPlayer(nearbyPlayer)) == null || !plot.equals(plotPlayer.getCurrentPlot())) {
continue;
}
if (plot.isAdded(plotPlayer.getUUID())) {
return plotPlayer;
}
}
return null;
}
private static Vector3d calculateVelocity(PlotPlayer player, PlotPlayer e) {
Location playerLocation = player.getLocationFull();
Location oPlayerLocation = e.getLocation();
double playerX = playerLocation.getX();
double playerY = playerLocation.getY();
double playerZ = playerLocation.getZ();
double oPlayerX = oPlayerLocation.getX();
double oPlayerY = oPlayerLocation.getY();
double oPlayerZ = oPlayerLocation.getZ();
double x = 0d;
if (playerX < oPlayerX) {
x = 1.0d;
} else if (playerX > oPlayerX) {
x = -1.0d;
}
double y = 0d;
if (playerY < oPlayerY) {
y = 0.5d;
} else if (playerY > oPlayerY) {
y = -0.5d;
}
double z = 0d;
if (playerZ < oPlayerZ) {
z = 1.0d;
} else if (playerZ > oPlayerZ) {
z = -1.0d;
}
return new Vector3d(x, y, z);
}
public static void handleForcefield(Player player, PlotPlayer plotPlayer, Plot plot) {
if (Flags.FORCEFIELD.isTrue(plot)) {
UUID uuid = plotPlayer.getUUID();
if (plot.isAdded(uuid)) {
Set<PlotPlayer> players = getNearbyPlayers(player, plot);
for (PlotPlayer oPlayer : players) {
((SpongePlayer) oPlayer).player.setVelocity(calculateVelocity(plotPlayer, oPlayer));
}
} else {
PlotPlayer oPlayer = hasNearbyPermitted(player, plot);
if (oPlayer == null) {
return;
}
player.setVelocity(calculateVelocity(oPlayer, plotPlayer));
}
}
}
}

View File

@ -662,6 +662,7 @@ public class MainListener {
return;
}
} else if (now.equals(lastPlot)) {
ForceFieldListener.handleForcefield(player, pp, now);
return;
} else if (!PlotListener.plotEntry(pp, now)) {
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_ENTRY_DENIED);
@ -711,6 +712,7 @@ public class MainListener {
return;
}
} else if (now.equals(lastPlot)) {
ForceFieldListener.handleForcefield(player, pp, now);
return;
} else if (!PlotListener.plotEntry(pp, now)) {
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_ENTRY_DENIED);

View File

@ -1,6 +1,7 @@
package com.plotsquared.sponge.object;
import com.flowpowered.math.vector.Vector3d;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.commands.RequiredType;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.PlotPlayer;
@ -111,8 +112,12 @@ public class SpongePlayer extends PlotPlayer {
@Override
public void setCompassTarget(Location location) {
TargetedLocationData target = this.player.getOrCreate(TargetedLocationData.class).get();
target.set(Keys.TARGETED_LOCATION, SpongeUtil.getLocation(location).getPosition());
Optional<TargetedLocationData> target = this.player.getOrCreate(TargetedLocationData.class);
if (target.isPresent()) {
target.get().set(Keys.TARGETED_LOCATION, SpongeUtil.getLocation(location).getPosition());
} else {
PS.debug("Failed to set compass target.");
}
}
@Override

View File

@ -26,7 +26,7 @@ import java.util.Objects;
import java.util.Optional;
public class SpongeSetupUtils extends SetupUtils {
@Override
public void updateGenerators() {
if (!SetupUtils.generators.isEmpty()) {
@ -48,7 +48,7 @@ public class SpongeSetupUtils extends SetupUtils {
}
}
}
@Override
public String getGenerator(PlotArea plotArea) {
if (SetupUtils.generators.isEmpty()) {
@ -61,7 +61,7 @@ public class SpongeSetupUtils extends SetupUtils {
WorldGenerator generator = world.getWorldGenerator();
throw new UnsupportedOperationException("NOT IMPLEMENTED YET");
}
@Override
public String setupWorld(SetupObject object) {
SetupUtils.manager.updateGenerators();
@ -146,7 +146,7 @@ public class SpongeSetupUtils extends SetupUtils {
.loadsOnStartup(true)
.keepsSpawnLoaded(true)
.dimension(DimensionTypes.OVERWORLD)
.generator(GeneratorTypes.OVERWORLD)
.generator(GeneratorTypes.FLAT)
.usesMapFeatures(false)
.enabled(true)
.generatorModifiers(wgm)

View File

@ -17,16 +17,6 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
import com.intellectualcrafters.plot.util.WorldUtil;
import com.plotsquared.sponge.SpongeMain;
import com.plotsquared.sponge.object.SpongePlayer;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Optional;
import net.minecraft.block.Block;
import net.minecraft.world.biome.Biome;
import org.spongepowered.api.Sponge;
@ -51,6 +41,17 @@ import org.spongepowered.api.world.biome.BiomeType;
import org.spongepowered.api.world.biome.BiomeTypes;
import org.spongepowered.api.world.extent.Extent;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Optional;
public class SpongeUtil extends WorldUtil {
public static Cause CAUSE = Cause.of(NamedCause.source(Sponge.getPluginManager().fromInstance(SpongeMain.THIS).get()));
@ -303,7 +304,8 @@ public class SpongeUtil extends WorldUtil {
StringComparison<PlotBlock> outer = new StringComparison<PlotBlock>();
return outer.new ComparisonResult(match, block);
} catch (NumberFormatException ignored) {}
} catch (NumberFormatException ignored) {
}
return null;
}

View File

@ -4,6 +4,7 @@ import com.intellectualcrafters.plot.object.ChunkWrapper;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.util.block.ScopedLocalBlockQueue;
import com.plotsquared.sponge.SpongeMain;
import com.plotsquared.sponge.util.SpongeUtil;
import org.spongepowered.api.world.biome.BiomeType;
import org.spongepowered.api.world.extent.MutableBiomeArea;

View File

@ -7,9 +7,6 @@ import com.intellectualcrafters.plot.util.StringMan;
import com.intellectualcrafters.plot.util.TaskManager;
import com.intellectualcrafters.plot.util.block.BasicLocalBlockQueue;
import com.plotsquared.sponge.util.SpongeUtil;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.HashSet;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
@ -33,6 +30,10 @@ import org.spongepowered.api.block.BlockTypes;
import org.spongepowered.api.world.World;
import org.spongepowered.api.world.biome.BiomeType;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.HashSet;
public class SpongeLocalQueue extends BasicLocalBlockQueue<char[]> {
public SpongeLocalQueue(String world) {