Progress towards #515
Fixes #512
Fixes #514
Fixes (possibly) #529
Fixes #535
Update to latest sponge
This commit is contained in:
boy0001
2015-08-11 20:45:13 +10:00
parent b77b550e56
commit 1a9ec84a4d
23 changed files with 391 additions and 167 deletions

View File

@@ -1,17 +1,21 @@
package com.plotsquared.sponge.util;
import java.util.ArrayList;
import java.util.List;
import org.spongepowered.api.block.BlockState;
import org.spongepowered.api.block.BlockType;
import org.spongepowered.api.block.BlockTypes;
import org.spongepowered.api.block.tileentity.Sign;
import org.spongepowered.api.data.manipulator.tileentity.SignData;
import org.spongepowered.api.block.tileentity.TileEntity;
import org.spongepowered.api.data.key.Keys;
import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData;
import org.spongepowered.api.text.Text;
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;
@@ -132,13 +136,22 @@ public class SpongeBlockManager extends BlockManager {
@Override
public String[] getSign(Location loc) {
BlockState block = SpongeUtil.getWorld(loc.getWorld()).getBlock(loc.getX(), loc.getY(), loc.getZ());
if (!(block instanceof Sign)) {
World world = SpongeUtil.getWorld(loc.getWorld());
Optional<TileEntity> block = world.getTileEntity(loc.getX(), loc.getY(), loc.getZ());
if (!block.isPresent()) {
return null;
}
TileEntity tile = block.get();
if (!(tile instanceof Sign)) {
return null;
}
Sign sign = (Sign) tile;
Optional<List<Text>> optional = tile.get(Keys.SIGN_LINES);
if (!optional.isPresent()) {
return null;
}
Sign sign = (Sign) block;
String[] result = new String[4];
List<Text> lines = sign.getData().get().getLines();
List<Text> lines = optional.get();
for (int i = 0; i < 4; i++) {
result[i] = lines.get(i).toString();
}
@@ -161,15 +174,20 @@ public class SpongeBlockManager extends BlockManager {
public void functionSetSign(String worldname, int x, int y, int z, String[] lines) {
World world = SpongeUtil.getWorld(worldname);
world.setBlock(x, y, z, BlockTypes.WALL_SIGN.getDefaultState());
BlockState block = world.getBlock(x, y, z);
if (!(block instanceof Sign)) {
Optional<TileEntity> block = world.getTileEntity(x, y, z);
if (!block.isPresent()) {
return;
}
Sign sign = (Sign) block;
SignData data = sign.getData().get();
for (int i = 0; i < 4; i++) {
data.setLine(i, SpongeMain.THIS.getText(lines[i]));
TileEntity tile = block.get();
if (!(tile instanceof Sign)) {
return;
}
Sign sign = (Sign) tile;
List<Text> text = new ArrayList<>(4);
for (int i = 0; i < 4; i++) {
text.add(SpongeMain.THIS.getText(lines[i]));
}
sign.offer(Keys.SIGN_LINES, text);
}
@Override

View File

@@ -27,7 +27,7 @@ public class SpongeInventoryUtil extends InventoryUtil {
public ItemStackBuilder builder;
public SpongeInventoryUtil() {
this.builder = SpongeMain.THIS.getGame().getRegistry().getItemBuilder();
this.builder = SpongeMain.THIS.getGame().getRegistry().createItemBuilder();
}
@Override

View File

@@ -184,7 +184,7 @@ public class SpongeMetrics {
}
// Begin hitting the server with glorious data
TaskBuilder builder = game.getScheduler().getTaskBuilder();
TaskBuilder builder = game.getScheduler().createTaskBuilder();
builder.async()
.interval(TimeUnit.MINUTES.toMillis(PING_INTERVAL))
.execute(new Runnable() {

View File

@@ -18,7 +18,7 @@ public class SpongeTaskManager extends TaskManager {
@Override
public int taskRepeat(Runnable r, int interval) {
int val = i.incrementAndGet();
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().getTaskBuilder();
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().createTaskBuilder();
TaskBuilder built = builder.delay(interval).interval(interval).execute(r);
Task task = built.submit(SpongeMain.THIS.getPlugin());
tasks.put(val, task);
@@ -28,7 +28,7 @@ public class SpongeTaskManager extends TaskManager {
@Override
public int taskRepeatAsync(Runnable r, int interval) {
int val = i.incrementAndGet();
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().getTaskBuilder();
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().createTaskBuilder();
TaskBuilder built = builder.delay(interval).async().interval(interval).execute(r);
Task task = built.submit(SpongeMain.THIS.getPlugin());
tasks.put(val, task);
@@ -37,25 +37,25 @@ public class SpongeTaskManager extends TaskManager {
@Override
public void taskAsync(Runnable r) {
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().getTaskBuilder();
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().createTaskBuilder();
builder.async().execute(r).submit(SpongeMain.THIS.getPlugin());
}
@Override
public void task(Runnable r) {
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().getTaskBuilder();
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().createTaskBuilder();
builder.execute(r).submit(SpongeMain.THIS.getPlugin());
}
@Override
public void taskLater(Runnable r, int delay) {
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().getTaskBuilder();
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().createTaskBuilder();
builder.delay(delay).execute(r).submit(SpongeMain.THIS.getPlugin());
}
@Override
public void taskLaterAsync(Runnable r, int delay) {
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().getTaskBuilder();
TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().createTaskBuilder();
builder.async().delay(delay).execute(r).submit(SpongeMain.THIS.getPlugin());
}