Fix for sponge

This commit is contained in:
Jesse Boyd
2015-10-07 17:33:33 +11:00
parent 74a967b535
commit 0c4b703510
66 changed files with 1266 additions and 1198 deletions

View File

@@ -2,6 +2,7 @@ package com.plotsquared.sponge.util;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import org.spongepowered.api.block.BlockState;
import org.spongepowered.api.block.BlockType;
@@ -15,7 +16,6 @@ import org.spongepowered.api.world.World;
import org.spongepowered.api.world.biome.BiomeType;
import org.spongepowered.api.world.biome.BiomeTypes;
import com.google.common.base.Optional;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.schematic.PlotItem;
@@ -30,7 +30,8 @@ public class SpongeBlockManager extends BlockManager {
public boolean isBlockSolid(final PlotBlock block) {
final BlockState state = SpongeMain.THIS.getBlockState(block);
final BlockType type = state.getType();
return type.isSolidCube() && !type.isAffectedByGravity();
// TODO check if solid;
return true;
}
@Override
@@ -220,7 +221,6 @@ public class SpongeBlockManager extends BlockManager {
if (block != state) {
world.setBlock(x, y, z, state);
}
}
@Override

View File

@@ -1,9 +1,8 @@
package com.plotsquared.sponge.util;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.function.Predicate;
import org.spongepowered.api.entity.Entity;
import org.spongepowered.api.entity.living.Living;
@@ -11,15 +10,11 @@ import org.spongepowered.api.entity.living.animal.Animal;
import org.spongepowered.api.entity.living.monster.Monster;
import org.spongepowered.api.world.Chunk;
import org.spongepowered.api.world.World;
import org.spongepowered.api.world.storage.ChunkDataStream;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.intellectualcrafters.plot.object.ChunkLoc;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.util.ChunkManager;
import com.intellectualcrafters.plot.util.SetBlockQueue.ChunkWrapper;
import com.intellectualcrafters.plot.util.TaskManager;
@@ -29,7 +24,6 @@ public class SpongeChunkManager extends ChunkManager {
@Override
public void setChunk(final ChunkWrapper loc, final PlotBlock[][] result) {
// TODO Auto-generated method stub
}
@Override
@@ -46,7 +40,7 @@ public class SpongeChunkManager extends ChunkManager {
final int[] count = new int[5];
world.getEntities(new Predicate<Entity>() {
@Override
public boolean apply(final Entity entity) {
public boolean test(final Entity entity) {
final org.spongepowered.api.world.Location loc = entity.getLocation();
final int x = loc.getBlockX();
if ((x >= bx) && (x <= tx)) {
@@ -78,27 +72,10 @@ public class SpongeChunkManager extends ChunkManager {
return worldObj.loadChunk(loc.x << 4, 0, loc.z << 4, force).isPresent();
}
@Override
public boolean unloadChunk(final String world, final ChunkLoc loc, final boolean save, final boolean safe) {
final World worldObj = SpongeUtil.getWorld(world);
final Optional<Chunk> chunk = worldObj.getChunk(loc.x << 4, 0, loc.z << 4);
if (chunk.isPresent()) {
return worldObj.unloadChunk(chunk.get());
}
return false;
}
@Override
public Set<ChunkLoc> getChunkChunks(final String world) {
final HashSet<ChunkLoc> chunks = new HashSet<ChunkLoc>();
final World worldObj = SpongeUtil.getWorld(world);
final ChunkDataStream storage = worldObj.getWorldStorage().getGeneratedChunks();
while (storage.hasNext()) {
storage.next();
// TODO get chunk from DataContainer
}
return chunks;
// TODO save world;
return super.getChunkChunks(world);
}
@Override
@@ -110,55 +87,19 @@ public class SpongeChunkManager extends ChunkManager {
}
}
@Override
public void deleteRegionFile(final String world, final ChunkLoc loc) {
// TODO Auto-generated method stub
}
@Override
public void deleteRegionFiles(final String world, final List<ChunkLoc> chunks) {
// TODO Auto-generated method stub
}
@Override
public void deleteRegionFiles(String world, List<ChunkLoc> chunks, Runnable whenDone) {
// TODO Auto-generated method stub
}
@Override
public Plot hasPlot(final String world, final ChunkLoc chunk) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean copyRegion(final Location pos1, final Location pos2, final Location newPos, final Runnable whenDone) {
// TODO Auto-generated method stub
// TODO copy a region
TaskManager.runTask(whenDone);
return false;
}
@Override
public boolean regenerateRegion(final Location pos1, final Location pos2, final Runnable whenDone) {
// TODO Auto-generated method stub
TaskManager.runTask(whenDone);
return false;
}
@Override
public void swap(final String world, final PlotId id, final PlotId plotid) {
// TODO Auto-generated method stub
}
@Override
public void swap(final String worldname, final Location bot1, final Location top1, final Location bot2, final Location top2) {
// TODO Auto-generated method stub
}
@Override
public void clearAllEntities(final Location pos1, final Location pos2) {
final String worldname = pos1.getWorld();
@@ -169,7 +110,7 @@ public class SpongeChunkManager extends ChunkManager {
final int tz = pos2.getZ();
world.getEntities(new Predicate<Entity>() {
@Override
public boolean apply(final Entity entity) {
public boolean test(final Entity entity) {
final org.spongepowered.api.world.Location loc = entity.getLocation();
final int x = loc.getBlockX();
if ((x >= bx) && (x <= tx)) {
@@ -183,4 +124,19 @@ public class SpongeChunkManager extends ChunkManager {
});
}
@Override
public void swap(Location bot1, Location top1, Location bot2, Location top2, Runnable whenDone) {
// TODO swap region
}
@Override
public void unloadChunk(String world, ChunkLoc loc, boolean save, boolean safe) {
final World worldObj = SpongeUtil.getWorld(world);
final Optional<Chunk> chunk = worldObj.getChunk(loc.x << 4, 0, loc.z << 4);
if (chunk.isPresent()) {
worldObj.unloadChunk(chunk.get());
}
}
}

View File

@@ -5,7 +5,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import org.spongepowered.api.entity.player.Player;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.Texts;
import org.spongepowered.api.util.command.CommandCallable;
@@ -13,7 +13,7 @@ import org.spongepowered.api.util.command.CommandException;
import org.spongepowered.api.util.command.CommandResult;
import org.spongepowered.api.util.command.CommandSource;
import com.google.common.base.Optional;
import java.util.Optional;
import com.intellectualcrafters.plot.commands.MainCommand;
import com.intellectualcrafters.plot.object.ConsolePlayer;
import com.intellectualcrafters.plot.object.PlotPlayer;

View File

@@ -0,0 +1,44 @@
package com.plotsquared.sponge.util;
import com.intellectualcrafters.plot.object.OfflinePlotPlayer;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.EconHandler;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.plotsquared.sponge.object.SpongePlayer;
public class SpongeEconHandler extends EconHandler {
@Override
public void withdrawMoney(PlotPlayer player, double amount) {
// TODO Auto-generated method stub
}
@Override
public void depositMoney(PlotPlayer player, double amount) {
// TODO Auto-generated method stub
}
@Override
public void depositMoney(OfflinePlotPlayer player, double amount) {
// TODO Auto-generated method stub
}
@Override
public void setPermission(String world, String player, String perm, boolean value) {
// TODO Auto-generated method stub
}
@Override
public boolean hasPermission(String world, String player, String perm) {
SpongePlayer obj = (SpongePlayer) UUIDHandler.getPlayer(player);
if (obj != null) {
return obj.player.hasPermission(perm);
}
// TODO offline
return false;
}
}

View File

@@ -3,7 +3,6 @@ package com.plotsquared.sponge.util;
import java.util.ArrayList;
import java.util.UUID;
import org.spongepowered.api.event.Cancellable;
import org.spongepowered.api.event.Event;
import org.spongepowered.api.service.event.EventManager;
@@ -41,11 +40,7 @@ public class SpongeEventUtil extends EventUtil {
}
public boolean callEvent(final Event event) {
events.post(event);
if (event instanceof Cancellable) {
return !((Cancellable) event).isCancelled();
}
return true;
return !events.post(event);
}
@Override

View File

@@ -3,7 +3,7 @@ package com.plotsquared.sponge.util;
import java.util.ArrayList;
import java.util.Locale;
import org.spongepowered.api.entity.player.Player;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.item.ItemType;
import org.spongepowered.api.item.ItemTypes;
import org.spongepowered.api.item.inventory.Carrier;

View File

@@ -1,13 +1,14 @@
package com.plotsquared.sponge.util;
import java.util.Optional;
import org.spongepowered.api.entity.Entity;
import org.spongepowered.api.entity.player.Player;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.world.World;
import org.spongepowered.api.world.extent.Extent;
import com.flowpowered.math.vector.Vector3d;
import com.flowpowered.math.vector.Vector3i;
import com.google.common.base.Optional;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.MathMan;
@@ -24,12 +25,8 @@ public class SpongeUtil {
return new Location(world, pos.getX(), pos.getY(), pos.getZ());
}
public static Location getLocation(final org.spongepowered.api.world.Location block) {
final Extent extent = block.getExtent();
if (extent instanceof World) {
return getLocation(((World) extent).getName(), block);
}
return null;
public static Location getLocation(final org.spongepowered.api.world.Location<World> block) {
return getLocation(block.getExtent().getName(), block);
}
public static Location getLocationFull(final Entity player) {
@@ -83,7 +80,6 @@ public class SpongeUtil {
public static void removePlayer(final String player) {
lastPlayer = null;
lastPlotPlayer = null;
UUIDHandler.getPlayers().remove(player);
}
public static Location getLocation(final String world, final org.spongepowered.api.world.Location spawn) {
@@ -110,4 +106,12 @@ public class SpongeUtil {
}
return new org.spongepowered.api.world.Location(world.get(), loc.getX(), loc.getY(), loc.getZ());
}
public static Location getLocation(String world, Vector3i position) {
return new Location(world, position.getX(), position.getY(), position.getZ());
}
public static Location getLocation(String world, Vector3d position) {
return new Location(world, MathMan.roundInt(position.getX()), MathMan.roundInt(position.getY()), MathMan.roundInt(position.getZ()));
}
}