Mirror von
https://github.com/IntellectualSites/FastAsyncWorldEdit.git
synchronisiert 2024-11-20 09:50:06 +01:00
Merge branch 'main' into feature/tuinity-starlight
Dieser Commit ist enthalten in:
Commit
56714e44fd
@ -50,7 +50,7 @@ public class BukkitImplLoader {
|
|||||||
"\n**********************************************\n"
|
"\n**********************************************\n"
|
||||||
+ "** This FastAsyncWorldEdit version does not fully support your version of Bukkit.\n"
|
+ "** This FastAsyncWorldEdit version does not fully support your version of Bukkit.\n"
|
||||||
+ "** You can fix this by:\n"
|
+ "** You can fix this by:\n"
|
||||||
+ "** - Updating your server version\n** - Updating FAWE\n"
|
+ "** - Updating your server version (Check /version to see how many versions you are behind)\n** - Updating FAWE\n"
|
||||||
+ "**\n" + "** When working with blocks or undoing, chests will be empty, signs\n"
|
+ "**\n" + "** When working with blocks or undoing, chests will be empty, signs\n"
|
||||||
+ "** will be blank, and so on. There will be no support for entity\n"
|
+ "** will be blank, and so on. There will be no support for entity\n"
|
||||||
+ "** and block property-related functions.\n"
|
+ "** and block property-related functions.\n"
|
||||||
|
@ -12,17 +12,26 @@ import com.sk89q.worldedit.world.biome.BiomeType;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
public class CFIChangeSet extends AbstractChangeSet {
|
public class CFIChangeSet extends AbstractChangeSet {
|
||||||
|
|
||||||
|
private static final Map<UUID, Map<String, Integer>> NEXT_INDEX = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
private final File file;
|
private final File file;
|
||||||
|
|
||||||
public CFIChangeSet(HeightMapMCAGenerator hmmg, UUID uuid) throws IOException {
|
public CFIChangeSet(HeightMapMCAGenerator hmmg, UUID uuid) throws IOException {
|
||||||
super(hmmg);
|
super(hmmg);
|
||||||
File folder = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HISTORY + File.separator + uuid + File.separator + "CFI" + File.separator + hmmg.getId());
|
final String hmmgId = hmmg.getId();
|
||||||
int max = MainUtil.getMaxFileId(folder);
|
final File folder = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HISTORY + File.separator + uuid + File.separator + "CFI" + File.separator + hmmgId);
|
||||||
|
|
||||||
|
final int max = NEXT_INDEX.computeIfAbsent(uuid, _uuid -> new HashMap<>())
|
||||||
|
.compute(hmmgId, (_hmmgId, id) -> (id == null ? MainUtil.getMaxFileId(folder) : id) + 1) - 1;
|
||||||
|
|
||||||
this.file = new File(folder, max + ".cfi");
|
this.file = new File(folder, max + ".cfi");
|
||||||
File parent = this.file.getParentFile();
|
File parent = this.file.getParentFile();
|
||||||
if (!parent.exists()) {
|
if (!parent.exists()) {
|
||||||
|
@ -19,7 +19,9 @@ import java.io.File;
|
|||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Store the change on disk
|
* Store the change on disk
|
||||||
@ -30,6 +32,8 @@ import java.util.UUID;
|
|||||||
*/
|
*/
|
||||||
public class DiskStorageHistory extends FaweStreamChangeSet {
|
public class DiskStorageHistory extends FaweStreamChangeSet {
|
||||||
|
|
||||||
|
private static final Map<String, Map<UUID, Integer>> NEXT_INDEX = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
private UUID uuid;
|
private UUID uuid;
|
||||||
private File bdFile;
|
private File bdFile;
|
||||||
private File bioFile;
|
private File bioFile;
|
||||||
@ -67,8 +71,11 @@ public class DiskStorageHistory extends FaweStreamChangeSet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void init(UUID uuid, String worldName) {
|
private void init(UUID uuid, String worldName) {
|
||||||
File folder = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HISTORY + File.separator + worldName + File.separator + uuid);
|
final File folder = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HISTORY + File.separator + worldName + File.separator + uuid);
|
||||||
int max = MainUtil.getMaxFileId(folder);
|
|
||||||
|
final int max = NEXT_INDEX.computeIfAbsent(worldName, _worldName -> new ConcurrentHashMap<>())
|
||||||
|
.compute(uuid, (_uuid, id) -> (id == null ? MainUtil.getMaxFileId(folder) : id) + 1) - 1;
|
||||||
|
|
||||||
init(uuid, max);
|
init(uuid, max);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren