mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2026-02-18 09:43:00 +01:00
50 lines
1.8 KiB
Java
50 lines
1.8 KiB
Java
package com.gmail.nossr50.metadata;
|
|
|
|
import com.gmail.nossr50.mcMMO;
|
|
import org.bukkit.block.Furnace;
|
|
import org.bukkit.persistence.PersistentDataContainer;
|
|
import org.bukkit.persistence.PersistentDataHolder;
|
|
import org.bukkit.persistence.PersistentDataType;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
import java.util.UUID;
|
|
|
|
import static com.gmail.nossr50.metadata.MetadataService.NSK_FURNACE_UUID_LEAST_SIG;
|
|
import static com.gmail.nossr50.metadata.MetadataService.NSK_FURNACE_UUID_MOST_SIG;
|
|
|
|
public class BlockMetadataService {
|
|
|
|
private final @NotNull mcMMO pluginRef;
|
|
|
|
public BlockMetadataService(@NotNull mcMMO pluginRef) {
|
|
this.pluginRef = pluginRef;
|
|
}
|
|
|
|
public @Nullable UUID getFurnaceOwner(@NotNull Furnace furnace) {
|
|
//Get container from entity
|
|
PersistentDataContainer dataContainer = ((PersistentDataHolder) furnace).getPersistentDataContainer();
|
|
|
|
//Too lazy to make a custom data type for this stuff
|
|
Long mostSigBits = dataContainer.get(NSK_FURNACE_UUID_MOST_SIG, PersistentDataType.LONG);
|
|
Long leastSigBits = dataContainer.get(NSK_FURNACE_UUID_LEAST_SIG, PersistentDataType.LONG);
|
|
|
|
if (mostSigBits != null && leastSigBits != null) {
|
|
return new UUID(mostSigBits, leastSigBits);
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public void setFurnaceOwner(@NotNull Furnace furnace, @NotNull UUID uuid) {
|
|
PersistentDataContainer dataContainer = ((PersistentDataHolder) furnace).getPersistentDataContainer();
|
|
|
|
dataContainer.set(NSK_FURNACE_UUID_MOST_SIG, PersistentDataType.LONG, uuid.getMostSignificantBits());
|
|
dataContainer.set(NSK_FURNACE_UUID_LEAST_SIG, PersistentDataType.LONG, uuid.getLeastSignificantBits());
|
|
|
|
furnace.update();
|
|
}
|
|
|
|
|
|
}
|