mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-04 03:56:41 +00:00
Fixed a few more errors, and added legacy support to the item parser.
This commit is contained in:
@ -36,7 +36,7 @@ public interface NbtValued {
|
||||
*
|
||||
* @return true if there is NBT data
|
||||
*/
|
||||
public boolean hasNbtData();
|
||||
boolean hasNbtData();
|
||||
|
||||
/**
|
||||
* Get the object's NBT data (tile entity data). The returned tag, if
|
||||
|
@ -29,16 +29,18 @@ import com.sk89q.jnbt.Tag;
|
||||
import com.sk89q.worldedit.BlockVector;
|
||||
import com.sk89q.worldedit.Vector;
|
||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||
import com.sk89q.worldedit.blocks.TileEntityBlock;
|
||||
import com.sk89q.worldedit.world.DataException;
|
||||
import com.sk89q.worldedit.world.World;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import com.sk89q.worldedit.world.registry.LegacyMapper;
|
||||
import com.sk89q.worldedit.world.storage.InvalidFormatException;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class AnvilChunk implements Chunk {
|
||||
|
||||
private CompoundTag rootTag;
|
||||
@ -256,16 +258,11 @@ public class AnvilChunk implements Chunk {
|
||||
public BaseBlock getBlock(Vector position) throws DataException {
|
||||
int id = getBlockID(position);
|
||||
int data = getBlockData(position);
|
||||
BaseBlock block;
|
||||
|
||||
block = new BaseBlock(id, data);
|
||||
|
||||
BlockState state = LegacyMapper.getInstance().getBlockFromLegacy(id, data);
|
||||
CompoundTag tileEntity = getBlockTileEntity(position);
|
||||
if (tileEntity != null) {
|
||||
((TileEntityBlock) block).setNbtData(tileEntity);
|
||||
}
|
||||
|
||||
return block;
|
||||
return new BaseBlock(state, tileEntity);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -28,9 +28,11 @@ import com.sk89q.jnbt.Tag;
|
||||
import com.sk89q.worldedit.BlockVector;
|
||||
import com.sk89q.worldedit.Vector;
|
||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
import com.sk89q.worldedit.world.DataException;
|
||||
import com.sk89q.worldedit.world.World;
|
||||
import com.sk89q.worldedit.world.registry.LegacyMapper;
|
||||
import com.sk89q.worldedit.world.storage.InvalidFormatException;
|
||||
|
||||
import java.util.HashMap;
|
||||
@ -178,14 +180,10 @@ public class OldChunk implements Chunk {
|
||||
throw new DataException("Chunk does not contain position " + position);
|
||||
}
|
||||
|
||||
BaseBlock block = new BaseBlock(id, dataVal);
|
||||
|
||||
BlockState state = LegacyMapper.getInstance().getBlockFromLegacy(id, dataVal);
|
||||
CompoundTag tileEntity = getBlockTileEntity(position);
|
||||
if (tileEntity != null) {
|
||||
block.setNbtData(tileEntity);
|
||||
}
|
||||
|
||||
return block;
|
||||
return new BaseBlock(state, tileEntity);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -20,6 +20,7 @@
|
||||
package com.sk89q.worldedit.world.registry;
|
||||
|
||||
import com.sk89q.worldedit.blocks.BaseItem;
|
||||
import com.sk89q.worldedit.world.item.ItemType;
|
||||
import com.sk89q.worldedit.world.item.ItemTypes;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
@ -33,6 +34,7 @@ public class BundledItemRegistry implements ItemRegistry {
|
||||
@Nullable
|
||||
@Override
|
||||
public BaseItem createFromId(String id) {
|
||||
return new BaseItem(ItemTypes.get(id));
|
||||
ItemType itemType = ItemTypes.get(id);
|
||||
return itemType == null ? null : new BaseItem(itemType);
|
||||
}
|
||||
}
|
||||
|
@ -30,13 +30,14 @@ import com.sk89q.worldedit.world.chunk.AnvilChunk;
|
||||
import com.sk89q.worldedit.world.chunk.Chunk;
|
||||
import com.sk89q.worldedit.world.chunk.OldChunk;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Represents chunk storage mechanisms.
|
||||
*/
|
||||
public abstract class ChunkStore {
|
||||
public abstract class ChunkStore implements Closeable {
|
||||
|
||||
/**
|
||||
* >> to chunk
|
||||
@ -86,11 +87,6 @@ public abstract class ChunkStore {
|
||||
return new OldChunk(world, tag);
|
||||
}
|
||||
|
||||
/**
|
||||
* Close resources.
|
||||
*
|
||||
* @throws IOException on I/O error
|
||||
*/
|
||||
public void close() throws IOException {
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user