mirror of
https://github.com/PlayPro/CoreProtect.git
synced 2025-03-02 04:01:25 +01: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.language.Phrase;
|
||||
import net.coreprotect.model.BlockGroup;
|
||||
import net.coreprotect.paper.PaperAdapter;
|
||||
import net.coreprotect.patch.Patch;
|
||||
import net.coreprotect.spigot.SpigotAdapter;
|
||||
import net.coreprotect.utility.Chat;
|
||||
@ -361,6 +362,7 @@ public class ConfigHandler extends Queue {
|
||||
try {
|
||||
BukkitAdapter.loadAdapter();
|
||||
SpigotAdapter.loadAdapter();
|
||||
PaperAdapter.loadAdapter();
|
||||
BlockGroup.initialize();
|
||||
|
||||
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.consumer.Queue;
|
||||
import net.coreprotect.model.BlockGroup;
|
||||
import net.coreprotect.paper.PaperAdapter;
|
||||
import net.coreprotect.utility.Util;
|
||||
import net.coreprotect.utility.Validate;
|
||||
|
||||
@ -315,12 +316,12 @@ public final class InventoryChangeListener extends Queue implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
InventoryHolder sourceHolder = event.getSource().getHolder();
|
||||
InventoryHolder sourceHolder = PaperAdapter.ADAPTER.getHolder(event.getSource(), false);
|
||||
if (sourceHolder == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
InventoryHolder destinationHolder = event.getDestination().getHolder();
|
||||
InventoryHolder destinationHolder = PaperAdapter.ADAPTER.getHolder(event.getDestination(), false);
|
||||
if (destinationHolder == null) {
|
||||
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