mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 11:03:43 +01:00 
			
		
		
		
	More nullability in blockmeta classes
This commit is contained in:
		@@ -3,6 +3,7 @@ package com.gmail.nossr50.util.blockmeta;
 | 
			
		||||
import org.bukkit.Bukkit;
 | 
			
		||||
import org.bukkit.World;
 | 
			
		||||
import org.jetbrains.annotations.NotNull;
 | 
			
		||||
import org.jetbrains.annotations.Nullable;
 | 
			
		||||
 | 
			
		||||
import java.io.*;
 | 
			
		||||
import java.util.BitSet;
 | 
			
		||||
@@ -15,9 +16,9 @@ public class BitSetChunkStore implements ChunkStore {
 | 
			
		||||
    private final int cx;
 | 
			
		||||
    private final int cz;
 | 
			
		||||
    private final int worldHeight;
 | 
			
		||||
    private final UUID worldUid;
 | 
			
		||||
    private final @NotNull UUID worldUid;
 | 
			
		||||
    // Bitset store conforms to a "bottom-up" bit ordering consisting of a stack of {worldHeight} Y planes, each Y plane consists of 16 Z rows of 16 X bits.
 | 
			
		||||
    private final BitSet store;
 | 
			
		||||
    private final @NotNull BitSet store;
 | 
			
		||||
 | 
			
		||||
    private transient boolean dirty = false;
 | 
			
		||||
 | 
			
		||||
@@ -94,7 +95,7 @@ public class BitSetChunkStore implements ChunkStore {
 | 
			
		||||
        return (z * 16 + x) + (256 * y);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static int getWorldHeight(UUID worldUid, int storedWorldHeight)
 | 
			
		||||
    private static int getWorldHeight(@NotNull UUID worldUid, int storedWorldHeight)
 | 
			
		||||
    {
 | 
			
		||||
        World world = Bukkit.getWorld(worldUid);
 | 
			
		||||
 | 
			
		||||
@@ -105,7 +106,7 @@ public class BitSetChunkStore implements ChunkStore {
 | 
			
		||||
        return world.getMaxHeight();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void serialize(DataOutputStream out) throws IOException {
 | 
			
		||||
    private void serialize(@NotNull DataOutputStream out) throws IOException {
 | 
			
		||||
        out.writeInt(MAGIC_NUMBER);
 | 
			
		||||
        out.writeInt(CURRENT_VERSION);
 | 
			
		||||
 | 
			
		||||
@@ -123,7 +124,7 @@ public class BitSetChunkStore implements ChunkStore {
 | 
			
		||||
        dirty = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static BitSetChunkStore deserialize(@NotNull DataInputStream in) throws IOException {
 | 
			
		||||
    private static @NotNull BitSetChunkStore deserialize(@NotNull DataInputStream in) throws IOException {
 | 
			
		||||
        int magic = in.readInt();
 | 
			
		||||
        // Can be used to determine the format of the file
 | 
			
		||||
        int fileVersionNumber = in.readInt();
 | 
			
		||||
@@ -187,7 +188,7 @@ public class BitSetChunkStore implements ChunkStore {
 | 
			
		||||
            throw new IOException("Bad Data Format");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static void writeChunkStore(DataOutputStream outputStream, ChunkStore chunkStore) throws IOException {
 | 
			
		||||
        public static void writeChunkStore(@NotNull DataOutputStream outputStream, @NotNull ChunkStore chunkStore) throws IOException {
 | 
			
		||||
            if (!(chunkStore instanceof BitSetChunkStore))
 | 
			
		||||
                throw new InvalidClassException("ChunkStore must be instance of BitSetChunkStore");
 | 
			
		||||
            outputStream.writeShort(STREAM_MAGIC);
 | 
			
		||||
@@ -209,12 +210,12 @@ public class BitSetChunkStore implements ChunkStore {
 | 
			
		||||
                private LegacyChunkStoreDeserializer() {}
 | 
			
		||||
 | 
			
		||||
                @Deprecated
 | 
			
		||||
                private void writeObject(ObjectOutputStream out) throws IOException {
 | 
			
		||||
                private void writeObject(@NotNull ObjectOutputStream out) throws IOException {
 | 
			
		||||
                    throw new UnsupportedOperationException("You goofed.");
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                @Deprecated
 | 
			
		||||
                private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
 | 
			
		||||
                private void readObject(@NotNull ObjectInputStream in) throws IOException, ClassNotFoundException {
 | 
			
		||||
                    in.readInt(); // Magic number
 | 
			
		||||
                    in.readInt(); // Format version
 | 
			
		||||
                    long lsb = in.readLong();
 | 
			
		||||
@@ -228,7 +229,7 @@ public class BitSetChunkStore implements ChunkStore {
 | 
			
		||||
                    worldHeight = store[0][0].length;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                public BitSetChunkStore convert()
 | 
			
		||||
                public @NotNull BitSetChunkStore convert()
 | 
			
		||||
                {
 | 
			
		||||
                    int currentWorldHeight = getWorldHeight(worldUid, worldHeight);
 | 
			
		||||
 | 
			
		||||
@@ -249,20 +250,20 @@ public class BitSetChunkStore implements ChunkStore {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            public LegacyDeserializationInputStream(InputStream in) throws IOException {
 | 
			
		||||
            public LegacyDeserializationInputStream(@NotNull InputStream in) throws IOException {
 | 
			
		||||
                super(in);
 | 
			
		||||
                enableResolveObject(true);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            @Override
 | 
			
		||||
            protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException {
 | 
			
		||||
            protected @NotNull ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException {
 | 
			
		||||
                ObjectStreamClass read = super.readClassDescriptor();
 | 
			
		||||
                if (read.getName().contentEquals("com.gmail.nossr50.util.blockmeta.chunkmeta.PrimitiveChunkStore"))
 | 
			
		||||
                    return ObjectStreamClass.lookup(LegacyChunkStoreDeserializer.class);
 | 
			
		||||
                return read;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            public ChunkStore readLegacyChunkStore(){
 | 
			
		||||
            public @Nullable ChunkStore readLegacyChunkStore(){
 | 
			
		||||
                try {
 | 
			
		||||
                    LegacyChunkStoreDeserializer deserializer = (LegacyChunkStoreDeserializer)readObject();
 | 
			
		||||
                    return deserializer.convert();
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@ public class HashChunkManager implements ChunkManager {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private synchronized @Nullable McMMOSimpleRegionFile getSimpleRegionFile(World world, int cx, int cz, boolean createIfAbsent) {
 | 
			
		||||
    private synchronized @Nullable McMMOSimpleRegionFile getSimpleRegionFile(@NotNull World world, int cx, int cz, boolean createIfAbsent) {
 | 
			
		||||
        CoordinateKey regionKey = toRegionKey(world.getUID(), cx, cz);
 | 
			
		||||
 | 
			
		||||
        return regionMap.computeIfAbsent(regionKey, k -> {
 | 
			
		||||
@@ -80,7 +80,7 @@ public class HashChunkManager implements ChunkManager {
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private @Nullable ChunkStore loadChunk(int cx, int cz, World world) {
 | 
			
		||||
    private @Nullable ChunkStore loadChunk(int cx, int cz, @NotNull World world) {
 | 
			
		||||
        try {
 | 
			
		||||
            return readChunkStore(world, cx, cz);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user