mirror of
https://github.com/PlayPro/CoreProtect.git
synced 2024-09-30 04:37:29 +02:00
Improved hopper logging performance when using Paper
Disables snapshot creation when getting inventory holders
This commit is contained in:
parent
2fd366389b
commit
922e4478dc
@ -28,6 +28,7 @@ import net.coreprotect.database.Database;
|
|||||||
import net.coreprotect.database.statement.UserStatement;
|
import net.coreprotect.database.statement.UserStatement;
|
||||||
import net.coreprotect.language.Phrase;
|
import net.coreprotect.language.Phrase;
|
||||||
import net.coreprotect.model.BlockGroup;
|
import net.coreprotect.model.BlockGroup;
|
||||||
|
import net.coreprotect.paper.PaperAdapter;
|
||||||
import net.coreprotect.patch.Patch;
|
import net.coreprotect.patch.Patch;
|
||||||
import net.coreprotect.spigot.SpigotAdapter;
|
import net.coreprotect.spigot.SpigotAdapter;
|
||||||
import net.coreprotect.utility.Chat;
|
import net.coreprotect.utility.Chat;
|
||||||
@ -361,6 +362,7 @@ public class ConfigHandler extends Queue {
|
|||||||
try {
|
try {
|
||||||
BukkitAdapter.loadAdapter();
|
BukkitAdapter.loadAdapter();
|
||||||
SpigotAdapter.loadAdapter();
|
SpigotAdapter.loadAdapter();
|
||||||
|
PaperAdapter.loadAdapter();
|
||||||
BlockGroup.initialize();
|
BlockGroup.initialize();
|
||||||
|
|
||||||
ConfigHandler.loadConfig(); // Load (or create) the configuration file.
|
ConfigHandler.loadConfig(); // Load (or create) the configuration file.
|
||||||
|
@ -31,6 +31,7 @@ import net.coreprotect.config.Config;
|
|||||||
import net.coreprotect.config.ConfigHandler;
|
import net.coreprotect.config.ConfigHandler;
|
||||||
import net.coreprotect.consumer.Queue;
|
import net.coreprotect.consumer.Queue;
|
||||||
import net.coreprotect.model.BlockGroup;
|
import net.coreprotect.model.BlockGroup;
|
||||||
|
import net.coreprotect.paper.PaperAdapter;
|
||||||
import net.coreprotect.utility.Util;
|
import net.coreprotect.utility.Util;
|
||||||
import net.coreprotect.utility.Validate;
|
import net.coreprotect.utility.Validate;
|
||||||
|
|
||||||
@ -315,12 +316,12 @@ public final class InventoryChangeListener extends Queue implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
InventoryHolder sourceHolder = event.getSource().getHolder();
|
InventoryHolder sourceHolder = PaperAdapter.ADAPTER.getHolder(event.getSource(), false);
|
||||||
if (sourceHolder == null) {
|
if (sourceHolder == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
InventoryHolder destinationHolder = event.getDestination().getHolder();
|
InventoryHolder destinationHolder = PaperAdapter.ADAPTER.getHolder(event.getDestination(), false);
|
||||||
if (destinationHolder == null) {
|
if (destinationHolder == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
47
src/main/java/net/coreprotect/paper/PaperAdapter.java
Normal file
47
src/main/java/net/coreprotect/paper/PaperAdapter.java
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
package net.coreprotect.paper;
|
||||||
|
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
|
|
||||||
|
import net.coreprotect.bukkit.BukkitAdapter;
|
||||||
|
import net.coreprotect.config.ConfigHandler;
|
||||||
|
|
||||||
|
public class PaperAdapter implements PaperInterface {
|
||||||
|
|
||||||
|
public static PaperInterface ADAPTER;
|
||||||
|
public static final int PAPER_UNAVAILABLE = 0;
|
||||||
|
public static final int PAPER_v1_13 = BukkitAdapter.BUKKIT_v1_13;
|
||||||
|
public static final int PAPER_v1_14 = BukkitAdapter.BUKKIT_v1_14;
|
||||||
|
public static final int PAPER_v1_15 = BukkitAdapter.BUKKIT_v1_15;
|
||||||
|
public static final int PAPER_v1_16 = BukkitAdapter.BUKKIT_v1_16;
|
||||||
|
public static final int PAPER_v1_17 = BukkitAdapter.BUKKIT_v1_17;
|
||||||
|
|
||||||
|
public static void loadAdapter() {
|
||||||
|
int PAPER_VERSION = ConfigHandler.SERVER_VERSION;
|
||||||
|
if (!ConfigHandler.isPaper) {
|
||||||
|
PAPER_VERSION = PAPER_UNAVAILABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (PAPER_VERSION) {
|
||||||
|
case PAPER_UNAVAILABLE:
|
||||||
|
PaperAdapter.ADAPTER = new PaperAdapter();
|
||||||
|
break;
|
||||||
|
case PAPER_v1_13:
|
||||||
|
case PAPER_v1_14:
|
||||||
|
case PAPER_v1_15:
|
||||||
|
PaperAdapter.ADAPTER = new PaperHandler();
|
||||||
|
break;
|
||||||
|
case PAPER_v1_16:
|
||||||
|
case PAPER_v1_17:
|
||||||
|
default:
|
||||||
|
PaperAdapter.ADAPTER = new Paper_v1_16();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InventoryHolder getHolder(Inventory holder, boolean useSnapshot) {
|
||||||
|
return holder.getHolder();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
5
src/main/java/net/coreprotect/paper/PaperHandler.java
Normal file
5
src/main/java/net/coreprotect/paper/PaperHandler.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package net.coreprotect.paper;
|
||||||
|
|
||||||
|
public class PaperHandler extends PaperAdapter implements PaperInterface {
|
||||||
|
|
||||||
|
}
|
10
src/main/java/net/coreprotect/paper/PaperInterface.java
Normal file
10
src/main/java/net/coreprotect/paper/PaperInterface.java
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package net.coreprotect.paper;
|
||||||
|
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
|
|
||||||
|
public interface PaperInterface {
|
||||||
|
|
||||||
|
public InventoryHolder getHolder(Inventory holder, boolean useSnapshot);
|
||||||
|
|
||||||
|
}
|
13
src/main/java/net/coreprotect/paper/Paper_v1_16.java
Normal file
13
src/main/java/net/coreprotect/paper/Paper_v1_16.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package net.coreprotect.paper;
|
||||||
|
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
|
|
||||||
|
public class Paper_v1_16 extends PaperHandler implements PaperInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InventoryHolder getHolder(Inventory holder, boolean useSnapshot) {
|
||||||
|
return holder.getHolder(useSnapshot);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user