Added isRegistered(DimensionType) and getDimension(NamespaceID) to DimensionTypeManager

This commit is contained in:
ALS 2021-04-03 13:57:07 +02:00
parent 4cf66fde08
commit 99151cb05a

View File

@ -1,6 +1,8 @@
package net.minestom.server.world;
import net.minestom.server.utils.NamespaceID;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jglrxavpok.hephaistos.nbt.NBTCompound;
import org.jglrxavpok.hephaistos.nbt.NBTList;
import org.jglrxavpok.hephaistos.nbt.NBTTypes;
@ -43,6 +45,32 @@ public final class DimensionTypeManager {
return dimensionTypes.remove(dimensionType);
}
/**
* @param namespaceID The dimension name
* @return true if the dimension is registered
*/
public boolean isRegistered(@NotNull NamespaceID namespaceID) {
return isRegistered(getDimension(namespaceID));
}
/**
* @param dimensionType dimension to check if is registered
* @return true if the dimension is registered
*/
public boolean isRegistered(@Nullable DimensionType dimensionType) {
return dimensionType != null && dimensionTypes.contains(dimensionType) && dimensionType.isRegistered();
}
/**
* Return to a @{@link DimensionType} only if present and registered
*
* @param namespaceID The Dimension Name
* @return an a DimensionType if it present and registered
*/
public DimensionType getDimension(@NotNull NamespaceID namespaceID) {
return unmodifiableList().stream().filter(dimensionType -> dimensionType.getName().equals(namespaceID)).filter(DimensionType::isRegistered).findFirst().orElse(null);
}
/**
* Returns an immutable copy of the dimension types already registered.
*