fix: Fixed interactions with kit blocks
This commit is contained in:
parent
e018710208
commit
20effd37cb
|
@ -21,6 +21,7 @@ import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.inventory.EquipmentSlot;
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
import org.bukkit.inventory.InventoryHolder;
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import com.songoda.ultimatekits.settings.Settings;
|
||||||
|
|
||||||
public class InteractListeners implements Listener {
|
public class InteractListeners implements Listener {
|
||||||
|
|
||||||
|
@ -48,50 +49,64 @@ public class InteractListeners implements Listener {
|
||||||
Kit kit = kitBlockData.getKit();
|
Kit kit = kitBlockData.getKit();
|
||||||
|
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
Material itemInHand = player.getItemInHand().getType();
|
||||||
|
|
||||||
|
Material keyMaterial = Settings.KEY_MATERIAL.getMaterial().getItem().getType();
|
||||||
|
|
||||||
if (event.getAction() == Action.LEFT_CLICK_BLOCK) {
|
if (event.getAction() == Action.LEFT_CLICK_BLOCK) {
|
||||||
|
|
||||||
if (player.isSneaking()) return;
|
if (player.isSneaking()) {
|
||||||
event.setCancelled(true);
|
|
||||||
|
|
||||||
if (player.getItemInHand().getType() == Material.TRIPWIRE_HOOK) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
kit.processKeyUse(player);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kitBlockData.getType() != KitType.PREVIEW) {
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
if (kitBlockData.getType() == KitType.PREVIEW) {
|
||||||
|
kit.display(player, guiManager, null);
|
||||||
|
|
||||||
|
} else if(kitBlockData.getType() == KitType.CRATE) {
|
||||||
|
|
||||||
|
if (itemInHand == keyMaterial) {
|
||||||
|
kit.processKeyUse(player);
|
||||||
|
} else {
|
||||||
|
plugin.getLocale().getMessage("event.crate.needkey").sendPrefixedMessage(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (kitBlockData.getType() == KitType.CLAIM) {
|
||||||
|
|
||||||
if (!kit.hasPermissionToClaim(player)) {
|
if (!kit.hasPermissionToClaim(player)) {
|
||||||
plugin.getLocale().getMessage("command.general.noperms").sendPrefixedMessage(player);
|
plugin.getLocale().getMessage("command.general.noperms").sendPrefixedMessage(player);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (kit.getNextUse(player) <= 0) {
|
|
||||||
kit.processGenericUse(player, false);
|
if (kit.getNextUse(player) > 0) {
|
||||||
kit.updateDelay(player);
|
|
||||||
} else {
|
|
||||||
long time = kit.getNextUse(player);
|
long time = kit.getNextUse(player);
|
||||||
plugin.getLocale().getMessage("event.crate.notyet").processPlaceholder("time",
|
plugin.getLocale().getMessage("event.crate.notyet").processPlaceholder("time", Methods.makeReadable(time)).sendPrefixedMessage(player);
|
||||||
Methods.makeReadable(time)).sendPrefixedMessage(player);
|
return;
|
||||||
}
|
}
|
||||||
} else if (kit.getLink() != null || kit.getPrice() != 0) {
|
|
||||||
kit.buy(player, guiManager);
|
if (kit.getLink() != null || kit.getPrice() != 0) {
|
||||||
} else {
|
kit.buy(player, guiManager);
|
||||||
kit.display(player, guiManager, null);
|
} else {
|
||||||
}
|
kit.processGenericUse(player, false);
|
||||||
} else if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
}
|
||||||
if (block.getState() instanceof InventoryHolder || block.getType() == Material.ENDER_CHEST) {
|
|
||||||
event.setCancelled(true);
|
kit.updateDelay(player);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
||||||
|
|
||||||
|
event.setCancelled(true);
|
||||||
|
|
||||||
if (player.isSneaking() && player.hasPermission("ultimatekits.admin")) {
|
if (player.isSneaking() && player.hasPermission("ultimatekits.admin")) {
|
||||||
guiManager.showGUI(player, new BlockEditorGui(plugin, kitBlockData));
|
guiManager.showGUI(player, new BlockEditorGui(plugin, kitBlockData));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.getItemInHand().getType() == Material.TRIPWIRE_HOOK) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
kit.processKeyUse(player);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
kit.display(player, guiManager, null);
|
|
||||||
|
|
||||||
|
kit.display(player, guiManager, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue