Don't call ticking_list on Spigot (#1655)

* ticking_list is paper only

* Update adapters
This commit is contained in:
Jordan 2022-03-14 10:08:10 +00:00 committed by GitHub
parent d400a470a1
commit 1708584e8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 5 deletions

View File

@ -481,8 +481,10 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
// Don't attempt to tick section whilst we're editing // Don't attempt to tick section whilst we're editing
if (existingSection != null) { if (existingSection != null) {
PaperweightPlatformAdapter.clearCounts(existingSection); PaperweightPlatformAdapter.clearCounts(existingSection);
if (PaperLib.isPaper()) {
existingSection.tickingList.clear(); existingSection.tickingList.clear();
} }
}
if (existingSection == null) { if (existingSection == null) {
newSection = PaperweightPlatformAdapter.newChunkSection(layerNo, setArr, fastmode, adapter); newSection = PaperweightPlatformAdapter.newChunkSection(layerNo, setArr, fastmode, adapter);
@ -503,7 +505,9 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
//ensure that the server doesn't try to tick the chunksection while we're editing it (again). //ensure that the server doesn't try to tick the chunksection while we're editing it (again).
DelegateSemaphore lock = PaperweightPlatformAdapter.applyLock(existingSection); DelegateSemaphore lock = PaperweightPlatformAdapter.applyLock(existingSection);
PaperweightPlatformAdapter.clearCounts(existingSection); PaperweightPlatformAdapter.clearCounts(existingSection);
if (PaperLib.isPaper()) {
existingSection.tickingList.clear(); existingSection.tickingList.clear();
}
synchronized (lock) { synchronized (lock) {
// lock.acquire(); // lock.acquire();

View File

@ -510,8 +510,10 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
// Don't attempt to tick section whilst we're editing // Don't attempt to tick section whilst we're editing
if (existingSection != null) { if (existingSection != null) {
PaperweightPlatformAdapter.clearCounts(existingSection); PaperweightPlatformAdapter.clearCounts(existingSection);
if (PaperLib.isPaper()) {
existingSection.tickingList.clear(); existingSection.tickingList.clear();
} }
}
if (createCopy) { if (createCopy) {
char[] tmpLoad = loadPrivately(layerNo); char[] tmpLoad = loadPrivately(layerNo);
@ -553,7 +555,9 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
//ensure that the server doesn't try to tick the chunksection while we're editing it. (Again) //ensure that the server doesn't try to tick the chunksection while we're editing it. (Again)
PaperweightPlatformAdapter.clearCounts(existingSection); PaperweightPlatformAdapter.clearCounts(existingSection);
if (PaperLib.isPaper()) {
existingSection.tickingList.clear(); existingSection.tickingList.clear();
}
DelegateSemaphore lock = PaperweightPlatformAdapter.applyLock(existingSection); DelegateSemaphore lock = PaperweightPlatformAdapter.applyLock(existingSection);
synchronized (lock) { synchronized (lock) {

View File

@ -514,6 +514,13 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
LevelChunkSection newSection; LevelChunkSection newSection;
LevelChunkSection existingSection = levelChunkSections[getSectionIndex]; LevelChunkSection existingSection = levelChunkSections[getSectionIndex];
// Don't attempt to tick section whilst we're editing
if (existingSection != null) {
PaperweightPlatformAdapter.clearCounts(existingSection);
if (PaperLib.isPaper()) {
existingSection.tickingList.clear();
}
}
if (createCopy) { if (createCopy) {
char[] tmpLoad = loadPrivately(layerNo); char[] tmpLoad = loadPrivately(layerNo);
@ -564,7 +571,9 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
//ensure that the server doesn't try to tick the chunksection while we're editing it. (Again) //ensure that the server doesn't try to tick the chunksection while we're editing it. (Again)
PaperweightPlatformAdapter.clearCounts(existingSection); PaperweightPlatformAdapter.clearCounts(existingSection);
if (PaperLib.isPaper()) {
existingSection.tickingList.clear(); existingSection.tickingList.clear();
}
DelegateSemaphore lock = PaperweightPlatformAdapter.applyLock(existingSection); DelegateSemaphore lock = PaperweightPlatformAdapter.applyLock(existingSection);
synchronized (lock) { synchronized (lock) {