我正在製作一個UHC插件,我需要在傳送用戶之前預先生成世界,以便加載所有的塊。我發現這是無效的,因爲這些塊在沒有人時會卸載。我的一個朋友建議我用這個:傳送玩家之前爆炸世界的Bukkit API
Map<Pair<Integer, Integer>, Object> map = CacheBuilder.newBuilder().expireAfterWrite(500, TimeUnit.MILLISECONDS).build(new CacheLoader<Key, Graph>() {
@Override
public Graph load(Key key) { // no checked exception
return createExpensiveGraph(key);
}
});
teleport(Location, Player) {
map.put(new Pair(location,getChunk.getX, location.getChunk.getZ));
location.getChunk().load;
Bukkit.getScheduler.runTaskLater(plugin,() -> player.teleport(location), 5L);
}
而且別的地方我有一個事件處理程序處理該塊是在映射的時間塊卸載事件。我的問題是我對這個谷歌API很少或沒有經驗,我正在這裏修復CacheBuilder,我不完全確定我在做什麼錯。我意識到createExpensiveGraph是一種方法,但我不知道它應該在番石榴api內還是我需要做我自己的。我想知道是否有人可能有更好的方法來解決我的世界問題,或者在創建一個chacheloader的新實例時幫助解釋我做錯了什麼。任何輸入都會很棒,謝謝!