Mirror von
https://github.com/IntellectualSites/FastAsyncWorldEdit.git
synchronisiert 2024-12-25 02:20:07 +01:00
use paper writeLock
Dieser Commit ist enthalten in:
Ursprung
adb2c37a02
Commit
18e6c09fdd
@ -125,12 +125,20 @@ public class BukkitQueue extends SimpleCharQueueExtent {
|
|||||||
fieldNonEmptyBlockCount = ChunkSection.class.getDeclaredField("nonEmptyBlockCount");
|
fieldNonEmptyBlockCount = ChunkSection.class.getDeclaredField("nonEmptyBlockCount");
|
||||||
fieldNonEmptyBlockCount.setAccessible(true);
|
fieldNonEmptyBlockCount.setAccessible(true);
|
||||||
|
|
||||||
fieldLock = DataPaletteBlock.class.getDeclaredField("j");
|
{
|
||||||
fieldLock.setAccessible(true);
|
Field tmp = null;
|
||||||
Field modifiersField = Field.class.getDeclaredField("modifiers");
|
try {
|
||||||
int modifiers = modifiersField.getInt(fieldLock);
|
tmp = DataPaletteBlock.class.getDeclaredField("j");
|
||||||
modifiers &= ~Modifier.FINAL;
|
} catch (NoSuchFieldException paper) {
|
||||||
modifiersField.setInt(fieldLock, modifiers);
|
tmp = DataPaletteBlock.class.getDeclaredField("writeLock");
|
||||||
|
}
|
||||||
|
fieldLock = tmp;
|
||||||
|
fieldLock.setAccessible(true);
|
||||||
|
Field modifiersField = Field.class.getDeclaredField("modifiers");
|
||||||
|
int modifiers = modifiersField.getInt(fieldLock);
|
||||||
|
int newModifiers = modifiers & (~Modifier.FINAL);
|
||||||
|
if (newModifiers != modifiers) modifiersField.setInt(fieldLock, newModifiers);
|
||||||
|
}
|
||||||
|
|
||||||
Unsafe unsafe = UnsafeUtils.getUNSAFE();
|
Unsafe unsafe = UnsafeUtils.getUNSAFE();
|
||||||
CHUNKSECTION_BASE = unsafe.arrayBaseOffset(ChunkSection[].class);
|
CHUNKSECTION_BASE = unsafe.arrayBaseOffset(ChunkSection[].class);
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren