12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 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();
- }
- }
|