mirror of
https://github.com/filoghost/ChestCommands.git
synced 2025-02-17 03:51:29 +01:00
Add VIEW-PERMISSION
This commit is contained in:
parent
f1708de4c2
commit
7b32b16cb5
@ -21,8 +21,8 @@ import com.gmail.filoghost.chestcommands.util.Validate;
|
||||
*/
|
||||
public class IconMenu {
|
||||
|
||||
private String title;
|
||||
private Icon[] icons;
|
||||
protected final String title;
|
||||
protected final Icon[] icons;
|
||||
|
||||
|
||||
public IconMenu(String title, int rows) {
|
||||
|
@ -2,12 +2,15 @@ package com.gmail.filoghost.chestcommands.internal;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
import com.gmail.filoghost.chestcommands.ChestCommands;
|
||||
import com.gmail.filoghost.chestcommands.Permissions;
|
||||
import com.gmail.filoghost.chestcommands.api.IconMenu;
|
||||
import com.gmail.filoghost.chestcommands.internal.icon.ExtendedIcon;
|
||||
import com.gmail.filoghost.chestcommands.internal.icon.IconCommand;
|
||||
|
||||
public class ExtendedIconMenu extends IconMenu {
|
||||
@ -46,7 +49,25 @@ public class ExtendedIconMenu extends IconMenu {
|
||||
}
|
||||
}
|
||||
|
||||
super.open(player);
|
||||
|
||||
Inventory inventory = Bukkit.createInventory(new MenuInventoryHolder(this), icons.length, title);
|
||||
|
||||
for (int i = 0; i < icons.length; i++) {
|
||||
if (icons[i] != null) {
|
||||
|
||||
if (icons[i] instanceof ExtendedIcon) {
|
||||
ExtendedIcon extIcon = (ExtendedIcon) icons[i];
|
||||
|
||||
if (extIcon.getViewPermission() != null && !player.hasPermission(extIcon.getViewPermission())) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
inventory.setItem(i, ChestCommands.getAttributeRemover().removeAttributes(icons[i].createItemstack()));
|
||||
}
|
||||
}
|
||||
|
||||
player.openInventory(inventory);
|
||||
}
|
||||
|
||||
public void sendNoPermissionMessage(CommandSender sender) {
|
||||
|
@ -15,6 +15,7 @@ public class ExtendedIcon extends Icon {
|
||||
|
||||
private String permission;
|
||||
private String permissionMessage;
|
||||
private String viewPermission;
|
||||
private double moneyPrice;
|
||||
private int playerPointsPrice;
|
||||
private RequiredItem requiredItem;
|
||||
@ -39,6 +40,14 @@ public class ExtendedIcon extends Icon {
|
||||
this.permissionMessage = permissionMessage;
|
||||
}
|
||||
|
||||
public String getViewPermission() {
|
||||
return viewPermission;
|
||||
}
|
||||
|
||||
public void setViewPermission(String viewPermission) {
|
||||
this.viewPermission = viewPermission;
|
||||
}
|
||||
|
||||
public double getMoneyPrice() {
|
||||
return moneyPrice;
|
||||
}
|
||||
|
@ -41,9 +41,10 @@ public class InventoryListener implements Listener {
|
||||
int slot = event.getRawSlot();
|
||||
|
||||
if (slot >= 0 && slot < menu.getSize()) {
|
||||
|
||||
Icon icon = menu.getIconRaw(slot);
|
||||
|
||||
if (icon != null) {
|
||||
if (icon != null && event.getInventory().getItem(slot) != null) {
|
||||
boolean close = icon.onClick((Player) event.getWhoClicked());
|
||||
|
||||
if (close) {
|
||||
|
@ -35,6 +35,7 @@ public class IconSerializer {
|
||||
REQUIRED_ITEM = "REQUIRED-ITEM",
|
||||
PERMISSION = "PERMISSION",
|
||||
PERMISSION_MESSAGE = "PERMISSION-MESSAGE",
|
||||
VIEW_PERMISSION = "VIEW-PERMISSION",
|
||||
KEEP_OPEN = "KEEP-OPEN",
|
||||
POSITION_X = "POSITION-X",
|
||||
POSITION_Y = "POSITION-Y";
|
||||
@ -108,6 +109,7 @@ public class IconSerializer {
|
||||
|
||||
icon.setPermission(section.getString(Nodes.PERMISSION));
|
||||
icon.setPermissionMessage(Utils.addColors(section.getString(Nodes.PERMISSION_MESSAGE)));
|
||||
icon.setViewPermission(section.getString(Nodes.VIEW_PERMISSION));
|
||||
|
||||
boolean closeOnClick = !section.getBoolean(Nodes.KEEP_OPEN);
|
||||
icon.setCloseOnClick(closeOnClick);
|
||||
|
Loading…
Reference in New Issue
Block a user