Class BlockDataController

java.lang.Object
com.xzavier0722.mc.plugin.slimefun4.storage.controller.ADataController
com.xzavier0722.mc.plugin.slimefun4.storage.controller.BlockDataController

public class BlockDataController extends ADataController
方块数据控制器

用于管理区块中的 Slimefun 方块数据

SlimefunBlockData SlimefunUniversalData

Author:
Xzavier0722, NoRainCity
  • Method Details

    • init

      public void init(IDataSourceAdapter<?> dataAdapter, int maxReadThread, int maxWriteThread)
      初始化数据控制器
      Overrides:
      init in class ADataController
      Parameters:
      dataAdapter - 使用的 IDataSourceAdapter
      maxReadThread - 最大数据库读线程数
      maxWriteThread - 最大数据库写线程数
    • initDelayedSaving

      public void initDelayedSaving(org.bukkit.plugin.Plugin p, int delayedSecond, int forceSavePeriod)
      初始化延时加载任务
      Parameters:
      p - 插件实例
      delayedSecond - 首次执行延时
      forceSavePeriod - 强制保存周期
    • isDelayedSavingEnabled

      public boolean isDelayedSavingEnabled()
    • setDelayedSavingEnable

      public void setDelayedSavingEnable(boolean isEnable)
    • createBlock

      @Nonnull public SlimefunBlockData createBlock(org.bukkit.Location l, String sfId)
      在指定位置创建一个新的 Slimefun 方块数据
      Parameters:
      l - Slimefun 方块位置 Location
      sfId - Slimefun 物品 ID SlimefunItem.getId()
      Returns:
      方块数据, SlimefunBlockData
    • createUniversalData

      @Nonnull public SlimefunUniversalData createUniversalData(String sfId)
      创建一个新的 Slimefun 通用数据
      提供一个可供读写的 KV 存储 Map
      Parameters:
      sfId - Slimefun 物品 ID SlimefunItem.getId()
      Returns:
      通用数据, SlimefunUniversalData
    • createUniversalData

      @Nonnull public SlimefunUniversalData createUniversalData(UUID uuid, String sfId)
      创建一个新的 Slimefun 通用数据 提供一个可供读写的 KV 存储 Map
      Parameters:
      uuid - 通用数据的识别 UUID
      sfId - Slimefun 物品 ID SlimefunItem.getId()
      Returns:
      通用数据, SlimefunUniversalData
    • createUniversalBlock

      @Nonnull @ParametersAreNonnullByDefault public SlimefunUniversalBlockData createUniversalBlock(org.bukkit.Location l, String sfId)
      在指定位置创建一个新的 Slimefun 通用方块数据
      Parameters:
      l - Slimefun 方块位置 Location
      sfId - Slimefun 物品 ID SlimefunItem.getId()
      Returns:
      通用方块数据, SlimefunUniversalBlockData
    • removeBlock

      public void removeBlock(org.bukkit.Location l)
      移除指定位置上的 Slimefun 数据
      Parameters:
      l - 位置 Location
    • removeBlockData

      public void removeBlockData(org.bukkit.Location l)
      移除指定位置上的 Slimefun 方块数据
      Parameters:
      l - 位置 Location
    • removeUniversalBlockData

      public void removeUniversalBlockData(org.bukkit.Location l)
      移除指定位置对应的可能存在的 Slimefun 通用方块数据
      Parameters:
      l - Location 位置
    • removeUniversalBlockData

      public void removeUniversalBlockData(UUID uuid)
      移除指定 UUID 对应的 Slimefun 通用方块数据
      Parameters:
      uuid - 通用方块数据识别符
    • getBlockData

      @Nullable @ParametersAreNonnullByDefault public SlimefunBlockData getBlockData(org.bukkit.Location l)
      Get slimefun block data at specific location
      Parameters:
      l - slimefun block location Location
      Returns:
      SlimefunBlockData
    • getBlockDataAsync

      public void getBlockDataAsync(org.bukkit.Location l, IAsyncReadCallback<SlimefunBlockData> callback)
      Get slimefun block data at specific location asynchronous
      Parameters:
      l - slimefun block location Location
      callback - operation when block data fetched IAsyncReadCallback
    • getBlockDataFromCache

      public SlimefunBlockData getBlockDataFromCache(org.bukkit.Location l)
      Get slimefun block data at specific location from cache
      Parameters:
      l - slimefun block location Location
      Returns:
      SlimefunBlockData
    • getUniversalData

      @Nullable public SlimefunUniversalData getUniversalData(@Nonnull UUID uuid)
      从数据库中获取 SlimefunUniversalData
    • getUniversalBlockData

      @Nullable public SlimefunUniversalBlockData getUniversalBlockData(@Nonnull UUID uuid)
      Get slimefun universal data
      Parameters:
      uuid - universal data uuid UUID
    • getUniversalBlockData

      public void getUniversalBlockData(@Nonnull UUID uuid, IAsyncReadCallback<SlimefunUniversalBlockData> callback)
      Get slimefun universal data asynchronous
      Parameters:
      uuid - universal data uuid UUID
      callback - operation when block data fetched IAsyncReadCallback
    • getUniversalDataFromCache

      @Nullable public SlimefunUniversalData getUniversalDataFromCache(@Nonnull UUID uuid)
      从缓存中获取 SlimefunUniversalData
      Parameters:
      uuid - 通用数据 UUID
      Returns:
      SlimefunUniversalData
    • getUniversalBlockDataFromCache

      @Nullable public SlimefunUniversalBlockData getUniversalBlockDataFromCache(@Nonnull UUID uuid)
      Get slimefun universal data from cache
      Parameters:
      uuid - universal data uuid UUID
    • getUniversalBlockDataFromCache

      public Optional<SlimefunUniversalBlockData> getUniversalBlockDataFromCache(@Nonnull org.bukkit.Location l)
      Get slimefun universal data from cache by location
      Parameters:
      l - Slimefun block location Location
    • setBlockDataLocation

      public void setBlockDataLocation(SlimefunBlockData blockData, org.bukkit.Location target)
      Move block data to specific location

      Similar to original BlockStorage#move.

      Parameters:
      blockData - the block data SlimefunBlockData need to move
      target - move target Location
    • loadChunk

      public void loadChunk(org.bukkit.Chunk chunk, boolean isNewChunk)
    • loadWorld

      public void loadWorld(org.bukkit.World world)
    • loadUniversalRecord

      public void loadUniversalRecord()
    • loadBlockData

      public void loadBlockData(SlimefunBlockData blockData)
    • loadBlockDataAsync

      public void loadBlockDataAsync(SlimefunBlockData blockData, IAsyncReadCallback<SlimefunBlockData> callback)
    • loadBlockDataAsync

      public void loadBlockDataAsync(List<SlimefunBlockData> blockDataList, IAsyncReadCallback<List<SlimefunBlockData>> callback)
    • loadUniversalData

      @ParametersAreNonnullByDefault public void loadUniversalData(SlimefunUniversalData uniData)
    • loadUniversalDataAsync

      @ParametersAreNonnullByDefault public void loadUniversalDataAsync(SlimefunUniversalData uniData, IAsyncReadCallback<SlimefunUniversalData> callback)
    • getChunkData

      public SlimefunChunkData getChunkData(org.bukkit.Chunk chunk)
    • getChunkDataAsync

      public void getChunkDataAsync(org.bukkit.Chunk chunk, IAsyncReadCallback<SlimefunChunkData> callback)
    • saveAllBlockInventories

      public void saveAllBlockInventories()
    • saveAllUniversalInventories

      public void saveAllUniversalInventories()
    • saveBlockInventory

      public void saveBlockInventory(SlimefunBlockData blockData)
    • saveBlockInventorySlot

      public void saveBlockInventorySlot(SlimefunBlockData blockData, int slot)
    • getAllLoadedChunkData

      public Set<SlimefunChunkData> getAllLoadedChunkData()
    • removeAllDataInChunk

      public void removeAllDataInChunk(org.bukkit.Chunk chunk)
    • removeAllDataInChunkAsync

      public void removeAllDataInChunkAsync(org.bukkit.Chunk chunk, Runnable onFinishedCallback)
    • removeAllDataInWorld

      public void removeAllDataInWorld(org.bukkit.World world)
    • removeAllDataInWorldAsync

      public void removeAllDataInWorldAsync(org.bukkit.World world, Runnable onFinishedCallback)
    • saveUniversalInventory

      public void saveUniversalInventory(@Nonnull SlimefunUniversalData universalData)
    • getAllLoadedChunkData

      public Set<SlimefunChunkData> getAllLoadedChunkData(org.bukkit.World world)
    • removeFromAllChunkInWorld

      public void removeFromAllChunkInWorld(org.bukkit.World world, String key)
    • removeFromAllChunkInWorldAsync

      public void removeFromAllChunkInWorldAsync(org.bukkit.World world, String key, Runnable onFinishedCallback)
    • shutdown

      public void shutdown()
      Description copied from class: ADataController
      正常关闭 ADataController
      Overrides:
      shutdown in class ADataController