Fixes WorldGuard interact/use flag getting checked wrong

When trying to open the GUI in a world where `use` is set to allowed,
it just returned and never opened the GUI
This commit is contained in:
Christian Koop 2023-03-31 22:34:29 +02:00
parent 0bb6724378
commit 1e3f72f235
No known key found for this signature in database
GPG Key ID: 89A8181384E010A3

View File

@ -4,10 +4,10 @@ import com.songoda.core.hooks.ProtectionManager;
import com.songoda.core.hooks.WorldGuardHook; import com.songoda.core.hooks.WorldGuardHook;
import com.songoda.epichoppers.EpicHoppers; import com.songoda.epichoppers.EpicHoppers;
import com.songoda.epichoppers.hopper.Hopper; import com.songoda.epichoppers.hopper.Hopper;
import com.songoda.epichoppers.hopper.teleport.TeleportTrigger;
import com.songoda.epichoppers.player.PlayerData; import com.songoda.epichoppers.player.PlayerData;
import com.songoda.epichoppers.player.SyncType; import com.songoda.epichoppers.player.SyncType;
import com.songoda.epichoppers.settings.Settings; import com.songoda.epichoppers.settings.Settings;
import com.songoda.epichoppers.hopper.teleport.TeleportTrigger;
import com.songoda.skyblock.SkyBlock; import com.songoda.skyblock.SkyBlock;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
@ -62,10 +62,7 @@ public class InteractListeners implements Listener {
return; return;
} }
if (WorldGuardHook.isInteractAllowed(event.getClickedBlock().getLocation())) if (Settings.USE_PROTECTION_PLUGINS.getBoolean() && ProtectionManager.canInteract(player, event.getClickedBlock().getLocation()) && WorldGuardHook.isInteractAllowed(event.getClickedBlock().getLocation())) {
return;
if (Settings.USE_PROTECTION_PLUGINS.getBoolean() && !ProtectionManager.canInteract(player, event.getClickedBlock().getLocation())) {
player.sendMessage(plugin.getLocale().getMessage("event.general.protected").getPrefixedMessage()); player.sendMessage(plugin.getLocale().getMessage("event.general.protected").getPrefixedMessage());
return; return;
} }
@ -73,11 +70,9 @@ public class InteractListeners implements Listener {
if (Bukkit.getPluginManager().isPluginEnabled("FabledSkyBlock")) { if (Bukkit.getPluginManager().isPluginEnabled("FabledSkyBlock")) {
SkyBlock skyBlock = SkyBlock.getInstance(); SkyBlock skyBlock = SkyBlock.getInstance();
if (skyBlock.getWorldManager().isIslandWorld(event.getPlayer().getWorld())) if (skyBlock.getWorldManager().isIslandWorld(event.getPlayer().getWorld()) &&
if (!skyBlock.getPermissionManager().hasPermission(event.getPlayer(), !skyBlock.getPermissionManager().hasPermission(event.getPlayer(), skyBlock.getIslandManager().getIslandAtLocation(event.getClickedBlock().getLocation()), "EpicHoppers"))
skyBlock.getIslandManager().getIslandAtLocation(event.getClickedBlock().getLocation()), return;
"EpicHoppers"))
return;
} }
PlayerData playerData = plugin.getPlayerDataManager().getPlayerData(player); PlayerData playerData = plugin.getPlayerDataManager().getPlayerData(player);
@ -108,10 +103,11 @@ public class InteractListeners implements Listener {
&& Settings.ENDERCHESTS.getBoolean())) { && Settings.ENDERCHESTS.getBoolean())) {
Hopper hopper = playerData.getLastHopper(); Hopper hopper = playerData.getLastHopper();
if (event.getClickedBlock().getLocation().equals(playerData.getLastHopper().getLocation())) { if (event.getClickedBlock().getLocation().equals(playerData.getLastHopper().getLocation())) {
if (!hopper.getLinkedBlocks().isEmpty()) if (!hopper.getLinkedBlocks().isEmpty()) {
plugin.getLocale().getMessage("event.hopper.syncfinish").sendPrefixedMessage(player); plugin.getLocale().getMessage("event.hopper.syncfinish").sendPrefixedMessage(player);
else } else {
plugin.getLocale().getMessage("event.hopper.synccanceled").sendPrefixedMessage(player); plugin.getLocale().getMessage("event.hopper.synccanceled").sendPrefixedMessage(player);
}
hopper.cancelSync(player); hopper.cancelSync(player);
} else if (playerData.getSyncType() != null) { } else if (playerData.getSyncType() != null) {
hopper.link(event.getClickedBlock(), playerData.getSyncType() == SyncType.FILTERED, player); hopper.link(event.getClickedBlock(), playerData.getSyncType() == SyncType.FILTERED, player);