Class BlockDataController
java.lang.Object
com.xzavier0722.mc.plugin.slimefun4.storage.controller.ADataController
com.xzavier0722.mc.plugin.slimefun4.storage.controller.BlockDataController
方块数据控制器
用于管理区块中的 Slimefun 方块数据
- Author:
- Xzavier0722, NoRainCity
-
Field Summary
Fields inherited from class com.xzavier0722.mc.plugin.slimefun4.storage.controller.ADataController
logger
-
Method Summary
Modifier and TypeMethodDescriptioncreateBlock
(org.bukkit.Location l, String sfId) 在指定位置创建一个新的 Slimefun 方块数据createUniversalBlock
(org.bukkit.Location l, String sfId) 在指定位置创建一个新的 Slimefun 通用方块数据createUniversalData
(String sfId) 创建一个新的 Slimefun 通用数据
提供一个可供读写的 KV 存储 MapcreateUniversalData
(UUID uuid, String sfId) 创建一个新的 Slimefun 通用数据 提供一个可供读写的 KV 存储 MapgetAllLoadedChunkData
(org.bukkit.World world) getBlockData
(org.bukkit.Location l) Get slimefun block data at specific locationvoid
getBlockDataAsync
(org.bukkit.Location l, IAsyncReadCallback<SlimefunBlockData> callback) Get slimefun block data at specific location asynchronousgetBlockDataFromCache
(org.bukkit.Location l) Get slimefun block data at specific location from cachegetChunkData
(org.bukkit.Chunk chunk) void
getChunkDataAsync
(org.bukkit.Chunk chunk, IAsyncReadCallback<SlimefunChunkData> callback) getUniversalBlockData
(UUID uuid) Get slimefun universal datavoid
getUniversalBlockData
(UUID uuid, IAsyncReadCallback<SlimefunUniversalBlockData> callback) Get slimefun universal data asynchronousGet slimefun universal data from cachegetUniversalBlockDataFromCache
(org.bukkit.Location l) Get slimefun universal data from cache by locationgetUniversalData
(UUID uuid) 从数据库中获取SlimefunUniversalData
从缓存中获取SlimefunUniversalData
void
init
(IDataSourceAdapter<?> dataAdapter, int maxReadThread, int maxWriteThread) 初始化数据控制器void
initDelayedSaving
(org.bukkit.plugin.Plugin p, int delayedSecond, int forceSavePeriod) 初始化延时加载任务boolean
void
loadBlockData
(SlimefunBlockData blockData) void
loadBlockDataAsync
(SlimefunBlockData blockData, IAsyncReadCallback<SlimefunBlockData> callback) void
loadBlockDataAsync
(List<SlimefunBlockData> blockDataList, IAsyncReadCallback<List<SlimefunBlockData>> callback) void
loadChunk
(org.bukkit.Chunk chunk, boolean isNewChunk) void
loadUniversalData
(SlimefunUniversalData uniData) void
loadUniversalDataAsync
(SlimefunUniversalData uniData, IAsyncReadCallback<SlimefunUniversalData> callback) void
void
loadWorld
(org.bukkit.World world) void
removeAllDataInChunk
(org.bukkit.Chunk chunk) void
removeAllDataInChunkAsync
(org.bukkit.Chunk chunk, Runnable onFinishedCallback) void
removeAllDataInWorld
(org.bukkit.World world) void
removeAllDataInWorldAsync
(org.bukkit.World world, Runnable onFinishedCallback) void
removeBlock
(org.bukkit.Location l) 移除指定位置上的 Slimefun 数据void
removeBlockData
(org.bukkit.Location l) 移除指定位置上的 Slimefun 方块数据void
removeFromAllChunkInWorld
(org.bukkit.World world, String key) void
removeFromAllChunkInWorldAsync
(org.bukkit.World world, String key, Runnable onFinishedCallback) void
removeUniversalBlockData
(UUID uuid) 移除指定 UUID 对应的 Slimefun 通用方块数据void
removeUniversalBlockData
(org.bukkit.Location l) 移除指定位置对应的可能存在的 Slimefun 通用方块数据void
void
void
saveBlockInventory
(SlimefunBlockData blockData) void
saveBlockInventorySlot
(SlimefunBlockData blockData, int slot) void
saveUniversalInventory
(SlimefunUniversalData universalData) void
setBlockDataLocation
(SlimefunBlockData blockData, org.bukkit.Location target) Move block data to specific locationvoid
setDelayedSavingEnable
(boolean isEnable) void
shutdown()
正常关闭ADataController
Methods inherited from class com.xzavier0722.mc.plugin.slimefun4.storage.controller.ADataController
abortScopeTask, checkDestroy, deleteData, getData, getData, getDataType, invokeCallback, scheduleDeleteTask, scheduleReadTask, scheduleWriteTask, scheduleWriteTask, scheduleWriteTask, setData
-
Method Details
-
init
初始化数据控制器- Overrides:
init
in classADataController
- 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
在指定位置创建一个新的 Slimefun 方块数据- Parameters:
l
- Slimefun 方块位置Location
sfId
- Slimefun 物品 IDSlimefunItem.getId()
- Returns:
- 方块数据,
SlimefunBlockData
-
createUniversalData
创建一个新的 Slimefun 通用数据
提供一个可供读写的 KV 存储 Map- Parameters:
sfId
- Slimefun 物品 IDSlimefunItem.getId()
- Returns:
- 通用数据,
SlimefunUniversalData
-
createUniversalData
创建一个新的 Slimefun 通用数据 提供一个可供读写的 KV 存储 Map- Parameters:
uuid
- 通用数据的识别 UUIDsfId
- Slimefun 物品 IDSlimefunItem.getId()
- Returns:
- 通用数据,
SlimefunUniversalData
-
createUniversalBlock
@Nonnull @ParametersAreNonnullByDefault public SlimefunUniversalBlockData createUniversalBlock(org.bukkit.Location l, String sfId) 在指定位置创建一个新的 Slimefun 通用方块数据- Parameters:
l
- Slimefun 方块位置Location
sfId
- Slimefun 物品 IDSlimefunItem.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
移除指定 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 locationLocation
- 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 locationLocation
callback
- operation when block data fetchedIAsyncReadCallback
-
getBlockDataFromCache
Get slimefun block data at specific location from cache- Parameters:
l
- slimefun block locationLocation
- Returns:
SlimefunBlockData
-
getUniversalData
从数据库中获取SlimefunUniversalData
-
getUniversalBlockData
Get slimefun universal data- Parameters:
uuid
- universal data uuidUUID
-
getUniversalBlockData
public void getUniversalBlockData(@Nonnull UUID uuid, IAsyncReadCallback<SlimefunUniversalBlockData> callback) Get slimefun universal data asynchronous- Parameters:
uuid
- universal data uuidUUID
callback
- operation when block data fetchedIAsyncReadCallback
-
getUniversalDataFromCache
从缓存中获取SlimefunUniversalData
- Parameters:
uuid
- 通用数据 UUID- Returns:
SlimefunUniversalData
-
getUniversalBlockDataFromCache
Get slimefun universal data from cache- Parameters:
uuid
- universal data uuidUUID
-
getUniversalBlockDataFromCache
public Optional<SlimefunUniversalBlockData> getUniversalBlockDataFromCache(@Nonnull org.bukkit.Location l) Get slimefun universal data from cache by location- Parameters:
l
- Slimefun block locationLocation
-
setBlockDataLocation
Move block data to specific locationSimilar to original BlockStorage#move.
- Parameters:
blockData
- the block dataSlimefunBlockData
need to movetarget
- move targetLocation
-
loadChunk
public void loadChunk(org.bukkit.Chunk chunk, boolean isNewChunk) -
loadWorld
public void loadWorld(org.bukkit.World world) -
loadUniversalRecord
public void loadUniversalRecord() -
loadBlockData
-
loadBlockDataAsync
public void loadBlockDataAsync(SlimefunBlockData blockData, IAsyncReadCallback<SlimefunBlockData> callback) -
loadBlockDataAsync
public void loadBlockDataAsync(List<SlimefunBlockData> blockDataList, IAsyncReadCallback<List<SlimefunBlockData>> callback) -
loadUniversalData
-
loadUniversalDataAsync
@ParametersAreNonnullByDefault public void loadUniversalDataAsync(SlimefunUniversalData uniData, IAsyncReadCallback<SlimefunUniversalData> callback) -
getChunkData
-
getChunkDataAsync
public void getChunkDataAsync(org.bukkit.Chunk chunk, IAsyncReadCallback<SlimefunChunkData> callback) -
saveAllBlockInventories
public void saveAllBlockInventories() -
saveAllUniversalInventories
public void saveAllUniversalInventories() -
saveBlockInventory
-
saveBlockInventorySlot
-
getAllLoadedChunkData
-
removeAllDataInChunk
public void removeAllDataInChunk(org.bukkit.Chunk chunk) -
removeAllDataInChunkAsync
-
removeAllDataInWorld
public void removeAllDataInWorld(org.bukkit.World world) -
removeAllDataInWorldAsync
-
saveUniversalInventory
-
getAllLoadedChunkData
-
removeFromAllChunkInWorld
-
removeFromAllChunkInWorldAsync
-
shutdown
public void shutdown()Description copied from class:ADataController
正常关闭ADataController
- Overrides:
shutdown
in classADataController
-