CoreProtect integration when using Fill/Empty chest hotkeys

This commit is contained in:
Legoshi 2023-01-16 02:38:15 +08:00
parent fc616c973d
commit 1daf8aa960
4 changed files with 61 additions and 6 deletions

14
pom.xml
View File

@ -9,7 +9,7 @@
<name>ChestSort</name>
<url>https://www.chestsort.de</url>
<description>Allows automatic chest sorting!</description>
<version>13.5.1</version>
<version>13.5.2</version>
<packaging>jar</packaging>
<properties>
@ -186,6 +186,11 @@
<url>https://jitpack.io</url>
</repository>
<repository>
<id>CoreProtect</id>
<url>https://maven.playpro.com/</url>
</repository>
</repositories>
<dependencies>
@ -273,6 +278,13 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.coreprotect</groupId>
<artifactId>coreprotect</artifactId>
<version>21.3</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,40 @@
package de.jeff_media.chestsort.hooks;
import net.coreprotect.CoreProtect;
import net.coreprotect.CoreProtectAPI;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.plugin.Plugin;
public class CoreProtectHook {
public static void logContainerTransaction(String user, Location location) {
CoreProtectAPI api = getCoreProtect();
if (api == null) {
return;
}
api.logContainerTransaction(user, location);
}
private static CoreProtectAPI getCoreProtect() {
Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("CoreProtect");
// Check that CoreProtect is loaded
if (!(plugin instanceof CoreProtect)) {
return null;
}
// Check that the API is enabled
CoreProtectAPI api = ((CoreProtect) plugin).getAPI();
if (!api.isEnabled()) {
return null;
}
// Check that a compatible version of the API is loaded
if (api.APIVersion() < 9) {
return null;
}
return api;
}
}

View File

@ -31,10 +31,7 @@ import org.bukkit.event.inventory.InventoryType.SlotType;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.*;
import java.util.HashMap;
@ -734,6 +731,12 @@ public class ChestSortListener implements org.bukkit.event.Listener {
return;
}
// CoreProtect hook
if (e.getInventory().getHolder() instanceof BlockInventoryHolder) {
Block block = ((BlockInventoryHolder) e.getInventory().getHolder()).getBlock();
CoreProtectHook.logContainerTransaction(p.getName(), block.getLocation());
}
if (e.isLeftClick() && setting.leftClick && p.hasPermission(Hotkey.getPermission(Hotkey.LEFT_CLICK))) {
plugin.getLgr().logSort(p, Logger.SortCause.H_LEFT);
if (setting.getCurrentDoubleClick(plugin, PlayerSetting.DoubleClickType.LEFT_CLICK)

View File

@ -10,7 +10,7 @@ website: ${project.url}
prefix: ${spigot.prefix}
database: false
loadbefore: [InvUnload]
softdepend: [CrackShot,InventoryPages,Minepacks,PlaceholderAPI,AdvancedChests,ShulkerPacks]
softdepend: [CrackShot,InventoryPages,Minepacks,PlaceholderAPI,AdvancedChests,ShulkerPacks,CoreProtect]
commands:
sort:
description: Toggle automatic chest sorting or change your hotkey settings